E-Mail eintragen (@ Tom)
Stephan
- php
Hallo,
also Tom, Du hast mir ja gestern Scripte geschickt, Danke erstmal. Bevor ich mit dem Forum anfange mache ich mal dashier fertig:
Es soll eine Linkliste werden, die die HTTP-Adresse enthält, die in eine Variable gepackt wird. Diese Variable nimmt dann ein Button auf, der einen bestimmten Teil des Scriptes ausführt.
Das Script (weiss nicht ob es funktioniert) sucht nach Links zu meiner Homepage auf einer anderen Seite, die ich eben in das Formualr eingetragen habe.
Wenn diese Seite auf mich linkt, soll ein grüner Button erscheinen, falls nicht ein roter, falls nicht gecheckt, ein grauer.
Als erstes mal die formualr.html:
----
<HTML>
<HEAD>
<TITLE>Meine erstes Formular</TITLE>
</HEAD>
<BODY bgcolor="#c0c0c0" text="000000">
<FORM action="formresponder.php"
name="form02"
method="post"
enctype="multipart/form-data">
<TABLE align=center "width=60%">
<TR>
<TD valign="top" align="right">HP-Adresse: </TD>
<TD valign="top"><INPUT name="adresse" size="20" maxlength="20"><BR></TD>
</TR>
<TR>
<TD></TD>
<TD valign="top" align="right">
<BR><BR><INPUT type="reset" value="Löschen"><BR><BR>
<INPUT type="submit" value="Abschicken" tabindex="0">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
----
Bei der formresponser hört es bei mir dann schon auf. Wie sage ich ihm, dass er die Variable immer um eins erhöhen soll? Wie sage ich ihm, dass, wenn der eine Button gedrückt wird, dieses Script ausgeführt wird und wie, dass dann der rote, graue, grüne Punkt erscheint?
Die Tabelle soll so aussehen:
URL | Linkt auf meine Seite | Button zum Checken
Hier der PHP Quellcode zum Checken, er gibt bis jetzt nur aus, wieviel mal er auf mich linkt und ich weiss nicht, ob das mit der Angabe meiner Seite so richtig ist...
---
<?
function search4links($URLvariable1)
{
static $URLvariable1Buffer;
if(isset($URLvariable1Buffer[$url])) return 0;
$URLvariable1Buffer[$URLvariable1] = 1;
echo("Durchsuche $URLvariable1<br>\n");
flush();
$meineSeite = @implode("", @file($URLvariable1));
if(!$meineSeite) return 0;
// Links suchen
preg_match_all("/\href=("|')(.*)(\1)/siU", $meineSeite, $ausgabe);
$anzahlLinks = 0;
foreach($ausgabe[2] as $link)
{
if(preg_match("/http/i", $link))
{
$anzahlLinks++;
}
else
{
if(!$link[0] == "/")
{
if(!preg_match("/(http:www.meineseite.de)/(.*).(.*)$/siU", $url, $mUrl))
{
$anzahlLinks += search4links($url."/".$link);
}
else
{
$anzahlLinks += search4links($mUrl[1]."/".$link);
}
}
else
{
preg_match("/(http:www.meineseite.de)//siU", $url, $mUrl);
$anzahlLinks += search4links($mUrl[1]."/".$link);
}
}
}
return $anzahlLinks;
}
if(isset($_POST[url]))
echo "\n\n<br><br>Links gefunden: ".search4links($_POST[URLvariable1]);
?>
---
Also:
Die URLvariable1 ist die Variable für die erste URL. Es soll bei jedem Neueintrag dann eine URLvariable2, URLvariable3 usw. geben. Diese soll dann auch in dem Button stehen...
Wäre coll, wenn jemand mir helfen könnte, bin für alles offen
Danke schon jetzt
Stephan
Hallo Stephan,
dein Thread ist hier: [pref:t=61477&m=346716].
Warum das so ist, steht hier: </faq/#Q-11>.
Falls du die Email-Korrespondenz mit Tom weiterführen möchtest, tust du das bitte auch per Email. Hier im Forum finden Diskussionen statt, nicht etwa Privatgespräche.
File Griese,
Stonie
Ups?! Sorry! Ich dachte ich spreche Tom mal an, das nicht verstehe, was er mir geschickt hat?
Kann mir einer von euch weiterhelfen?
Ich habe nur keine Ahnung, wie ich den Quelltext so verändern kann, dass die Variable immer +1 genommen wird:
---<html><head><title>Test</title><body>
<?php ### formresponder.php ### für HTML-Kurs
define ("CRLF",chr(13).chr(10));
define ("CR",chr(13));
define ("LF",chr(10));
define ("WS",chr(32));
define ("N","<br />");
define ("SEP",chr(8));
define ("RET",chr(127));
define ("THUMBWIDTH",100);
//-----------------------------------------------------------------------------
function get_img_type($no)
{
$img = array("","GIF","JPG","PNG","WBMP","XMP");
return $img[$no];
}
//-----------------------------------------------------------------------------
function makethumb($picname,$thumbname,$thumbwidth)
{
$imgdata=getimagesize($picname);
### hier müssen noch die anderen unterstützten Formate
### eingebaut werden.
if ($imgdata[2]==2) //fragen, ob es jpg ist
{
$src_img=ImageCreatefromjpeg($picname);//Quellbild i Speicher auspacken
$qx=imagesx($src_img); //Maße des Quellbides bestimmen
$qy=imagesy($src_img);
$tx=$thumbwidth; //Breite des Zielbildes festlegen
$ty=($thumbwidth/$qx)*$qy; //Höhe des Zielbildes berechnen
#$dst_img=imagecreate($tx,$ty); //Zielbild im Speicher vorbereiten
$dst_img=imagecreateTrueColor($tx,$ty); //neue Funktion benutzen
//Zielbild erzeugen
imagecopyresized($dst_img,$src_img,0,0,0,0,$tx,$ty,$qx,$qy);
//Zielbild speichern
imagejpeg($dst_img,$thumbname);
imagedestroy($src_img); //Arbeitsspeicher für Arbeits-
imagedestroy($dst_img); //kopien der Bilder freigeben.
return $imgdata;
}
return false;
}
//-----------------------------------------------------------------------------
function clean($var)
{
$var = str_replace(CRLF,RET,$var); // kommt vom Windows-Client
$var = str_replace(CR,RET,$var); // kommt vom MAC-Client
$var = str_replace(LF,RET,$var); // kommt vom Unix-Client
$var = str_replace(SEP,WS,$var); // Variablen-Seperator entfernen
return $var;
}
//-----------------------------------------------------------------------------
function restore($var)
{
$var = str_replace(RET,"\n",$var); // Umbruch wiederherstellen
$var = htmlentities($var);
$var = stripslashes($var); // Magic-Quotes entfernen
return $var;
}
//-----------------------------------------------------------------------------
function file2html($var)
{
$var = str_replace(RET,"\n",$var); // Umbruch wiederherstellen
$var = htmlentities($var);
$var = stripslashes($var); // Magic-Quotes entfernen
$var = nl2br($var);
return $var;
}
//-----------------------------------------------------------------------------
function savepicture($picpostdata)
{
$picinfo = false;
// filename für Original besorgen
$picname = tempnam("../~images","pic_");
// filename für Thumb besorgen
$thumbname = tempnam("../~images","min_");
// ist es ein Bild?
// Daten in Return-Array eintragen
$pictype=makethumb($picpostdata["tmp_name"],$thumbname,THUMBWIDTH);
if ($pictype[2] == 2) // hier müssen alle verfügbaren erfragt werden
{
$picinfo["picname"] = $picpostdata["name"]; // Klarschriftname des Bildes
$picinfo["pictype"] = get_img_type($pictype[2]); // siehe get_img_type()
$picinfo["imgattrib"] = $pictype[3]; // Größenangabe
$picinfo["thumbfile"] = $thumbname;
$picinfo["picfile"] = $picname;
copy ($picpostdata["tmp_name"],$picname);
}
// sonst temp-Dateien wieder löschen ???
return $picinfo;
}
//-----------------------------------------------------------------------------
function savevars($daten)
{
$fh=fopen('daten.dat','a+');
if ($fh)
{
$escape=array();
foreach($daten as $key => $value)
{
if (is_array($value))
{
$value=implode(",",$value);
}
$escape[$key]=clean($value);
}
if ($_FILES) // Bild berechnen und speichern
{
$picinfo=savepicture($_FILES["bild"]);
if ($picinfo)
{
$escape["picdata"]=$picinfo; // das Array mit Bildnamen
// $picinfo["picname"] Klarschriftname des Bildes
// $picinfo["pictype"] siehe get_img_type()
// $picinfo["imgstr"] Größenangabe
// $picinfo["thumbfile"]
// $picinfo["picfile"]
}
}
$rec=(serialize($escape))."\n";
fwrite($fh,$rec,strlen($rec));
fclose($fh);
}
}
//#############################################################################
echo "<html>\n<head>\n<title>Datenausgabe</title>\n</head>\n\n<body>\n";
if ($_POST)
{
echo "<h3>Postvariablen</h3>\n";
echo "<table>\n<th bgcolor="#AAAAC0">Variable</th><th bgcolor="#AAAAC0">Wert</th>";
$z=0;
foreach($_POST as $key => $value)
{
if (is_array($value))
{
$value=implode(",",$value);
}
$z++;
if ($z % 2 == 1)
{
$color="#CCFFCC";
}
else
{
$color="#AAE0AA";
}
echo "<tr><td bgcolor="$color">$key</td><td bgcolor="$color">".
nl2br(htmlspecialchars(stripslashes($value)))."</td></tr>\n";
}
echo "</table>\n";
savevars($_POST);
}
if ($_GET)
{
echo "<h3>Getvariablen</h3>\n";
echo "<table>\n<th bgcolor="#AAAAC0">Variable</th><th bgcolor="#AAAAC0">Wert</th>";
$z=0;
foreach($_GET as $key => $value)
{
if (is_array($value))
{
$value=implode(",",$value);
}
$z++;
if ($z % 2 == 1)
{
$color="#CCFFCC";
}
else
{
$color="#AAE0AA";
}
echo "<tr><td bgcolor=$color>$key</td><td bgcolor=$color>".
nl2br(htmlspecialchars(stripslashes($value)))."</td></tr>\n";
}
echo "</table>\n";
savevars($_GET);
}
echo "<p><a href="datenlesen.php">Gespeicherte Daten lesen</a></p>\n";
if (is_uploaded_file($_FILES["bild"]["tmp_name"]))
{
//check image
$imgdata = getimagesize($_FILES["bild"]["tmp_name"]);
echo "Datei: ".htmlentities($_FILES["bild"]["name"])." wurde übertragen<br />";
echo "Breite: ".$imgdata[0].N;
echo "Höhe: ".$imgdata[1].N;
echo "Format: ".get_img_type($imgdata[2]).N;
echo "Maßattribute: ".$imgdata[3].N;
}
echo "\n</body>\n</html>\n";
?>
--
Oder hat jemand eine andere Möglichkeit?
Sorry nochmal, hoffe der Quelltext ist nicht zu viel?
Danke schon jetzt
Stephan
Hallo Stephan, Hi @ all,
(bin wieder da)
Ich habe nur keine Ahnung, wie ich den Quelltext so verändern kann, dass die Variable immer +1 genommen wird:
Welche Variable willst Du immer +1 nehmen. Erzähl bitte nochmal gaaanz langsam, was die beweirken soll.
---<html><head><title>Test</title><body>
<?php ### formresponder.php ### für HTML-Kurs
Das <html> ... gehört hier aber noch nicht rein.
Das kommt erst im "Hauptprogramm" unter der ######-Linie
Also, ich fasse Deine Aufgabe nochmals zusammen:
Du möchtest Dir ein Verwaltungswerkzeug erstellen, mit dessen Hilfe Du im Web veröffentlichte Seiten auf einen Rücklink auf Deine Seiten überwachen kannst.
1. Aufgabe
Führen eine Datei,
-um die URL zur Fremdseite zu speichern.
-um sich zu merken, ob die Seite schon geprüft wurde
-um das Ergebnis der Prüfung zu speichern
2. Aufgabe
Anzeige einer Liste
-um den Inhalt der Datei zu sehen
-um die Prüffunktion für einen Satz (Link) aus der
Liste aufrufen zu können
-um den Status der Prüfung anzeigen zu können
3. Aufgabe
Prüffunktion
...
4. Aufgabe
Editierfunktion für die gespeicherten Datensätze
-Einzelanzeige
-bearbeiten
-zurückspeichern
...
Bitte um Deine Ergänzung.
Tom
Genau, hasts voll gerafft. :-)
Ich dachte man macht das mit der Variable, damit das dann so aussieht:
Link mit Varuable1 | Status ob Link gefunden wurde | Button
Ich dachte, nur wenn ich im Button definiere, was gecheckt werden soll, checkt er das, am Anfag wollte ich noch zu einem bestimmten Datum alle durchchecken lassen, das wurde mir dann aber zu schwer.
Danke schon jetzt Tausend mal
Stephan
Hi Stephan,
Genau, hasts voll gerafft. :-)
das freut mich jetzt. Hatt heute nämlich nen Matschkopf, als hätte ich die letzte nacht durchgesoffen. War aber ganz artig.
Link mit Variable1 | Status ob Link gefunden wurde | Button
Ich dachte, nur wenn ich im Button definiere, was gecheckt werden soll, checkt er das, am Anfag wollte ich noch zu einem bestimmten Datum alle durchchecken lassen, das wurde mir dann aber zu schwer.
Du solltest Dir von vornherein einen Stil angewöhnen:
Immer Datenerfasseung, Datenverwaltung, Datendarstellung und Datenverarbeitung sauber voneinander trennen. Jede Funktion sollte einen sinnvollen Rückgabewert geben, der es Dir ermöglicht, festzustellen, ob sie erfolgreich war. Allegemeine Daten sollte man immer als Arrays an die Funktionen übergeben, da diese dann später auch noch erweitert werden können, ohne dass alte Programme mit der neuen Funktion nicht mehr laufen. Außerdem lassen sich die Datengruppen so dynamisch während der Laufzeit zusammenstellen.
Du solltest darauf verzichten, mit GLOBAL zu arbeiten, sondern lieber die Adresse der Variablen an die "Funktion" übergeben, wenn diese den übergebenen Wert verändern soll.
Du solltest zudammengehörige Daten (Records, Strukturen) auch immer in Arrays zusammenfassen, da sie dann oft mit ganz wenig Zeilen mit der gleichen Funktion behandelt werden können (siehe Thread zu den addslashes() und mysql_escape_string() Überlegungen).
Daten sollten immer in einem neutralen Format gespeichert werden, wenn dies möglich ist, also ohne Spezialcodierungen (htmlspecialchars()) oder Maskierungen.
Man sollte immer versuchen, fertige PHP-Funktionen zu nutzen und nicht aus fünf oder mehr "kleinen Funktionen" eine große eigene zusammenzubauen. Die eigene wird in Bezug auf die Performance meistens verlieren.
Und Du solltest eine Vorstellung davon bekommen, dass speziell bei HTML im Vordergrund immer andere Daten angezeigt werden, als im Hintergrund vorhanden sind. Das einfachste Beispiel hierfür sind Hyperreferenzen. Das was angezeigt wird ist nicht unbedingt das, was im Hintergrund die URi kennzeichnet.
Wenn Du also Links abspeichern willst, musst Du mindestens zwei Datenfelder dafür bereit halten:
- URi
- Linktext
- CSS-String
- Title - Text
- Alt - Text
Die CSS-Anqweisung kann man natürlich auch global festlegen.
Du solltest Variablen immer mit "sprechenden Namen" bezeichnen, also nicht "Variable1", sondern "URi" und "Linktext".
Ich kann gut nachvollziehen, was in Deinem Kopf vorgeht, denn ich ahbe vor ca. 20 Jahren dbase erfunden und musste dann feststellen, dass es das schon fast 2 Jahre gab. Allerdings kannte das noch keiner, selbst mein Prof nicht. Und so habe ich eben immer weiterentwickelt, bis ich dann einen eigenen (gebrauchten) PC von einem Freund bekam, der das Programm auch gekauft hatte, aber nie benutzt hatte.
Ich glaube, dass vielen hier im Forum die Erinnerung an die eignen Anfänge verloren gegangen ist. Nochmal: Schade!
Liebe Grüße
Tom
Und wie meinst Du soll ich jetzt anfangen? Ich möchte das machen, habe aber keine Ahnung wie...
Kannst Du mir eine Anleitung geben (wenn es nicht zu viel Abrbeit ist)
Ein Tut dazu gibt es nicht? Oder?
Danke schon jetzt!!!!!
Stephan
PS: Bin noch ein blutiger Anfänger, also sei bitte für mein Unverständnis nicht böse, habe aber trotz Deiner Erläuterung keinen Plan :-(
Hi Stepan und alle, die mit PHP Daten speichern wollen,
fangen wir irgendwo vorne an:
Weißt Du, wie man eine HTML-Seite aufbaut?
Ok, das steht in http://selfhtml.teamone.de/navigation/html.htm#grundgeruest
Weißt Du, wie man eine PHP-Datei aufbaut?
Das steht z.B. in http://de.php.net/manual/en/introduction.php
PHP ist eine "embedded script language" das bedeutet, dass man mitten in einer HTML-Datei plötzlich PHP-Code unterbringen kann. Damit der dann aber nicht an den Browser des Clients ausgeliefert wirs, sonder nur sein Ergebnis, muss der Webserver sissen, dass er diese HTML-Datei vorher genau durchlesen muss. Das sagt man ihm im einfachsten Fall durch die Dateiendung *.php
Für diesen Moment belassen wirt es bei dieser vereinfachten Darstellung. Wir merken uns nur, dass es dazu noch viel zu sagen gibt.
Hat die Datei also eine Endung *.php, dan lässt der Webserver diese Datei nicht einfach ungelesen aud em Haus, sondern gibt sie vorher an den PHP-Parser, der sich genauer mit den eingebettenen PHP-Codes beschäftigt.
Wenn er alles verstanden hat, dann ersetzt er die PHP-Codes durch die Ergebnisse seiner Arbeit und gibt die bearbeitete Datei an den Webserver (APACHE) zurück. Der liefert sie dann an den Cleint aus.
Bisher alles klar?
Irgendwelche kurzen Anmerkungen und Berichtigungen des Forums?
--------------------
Tom
Ok, und was mache ich jetzt?
Hi Stephan,
Ok, und was mache ich jetzt?
Na, wenn das alles klar ist, baust Du Dir ein eigenes Formular auf.
Am besten malt man sich kleine Zettel mit den Bildschirmdarstellungen und ordnet die erst einmal. Dazwischen kommen dann die Scripte; auch immer ein Zettel. Nimm zwei verschiedene Farben, dann kannst Du besser unterscheiden, was auf dem Server und was auf dem Client stattfindet.
Daraus ergibt sich dann Deine Programmstruktur (soweit man bei verteilten Anwendungen noch davon sprechen kann).
Vorher aber noch das Grobkonzept:
Um die logischen Abläufe besser zu verstehen, solltest Du doch
meinen Entwurf mit eigenen Worten vervollständigen. Beschreib also mit Deinen eigenen Worten, was da passieren soll. Tu das, so genau es geht. Schreib auch die Ideen auf, die noch nicht fertig durchdacht sind. Darum nennt man das "Programmentwicklung" und nicht "Programmhinschreibung".
Wenn dieser Schritt fertig ist, kanns weitergehen.
Übrigens: Design und Farben kommen ganz zum Schluss. (obwohl die auch nicht unwichtig sind)
Viel Erfolg
Tom
Hallo Stonie,
dein Thread ist hier: [pref:t=61477&m=346716].
Warum das so ist, steht hier: </faq/#Q-11>.
Falls du die Email-Korrespondenz mit Tom weiterführen möchtest, tust du das bitte auch per Email. Hier im Forum finden Diskussionen statt, nicht etwa Privatgespräche.
Mal abgesehen von der Richtigkeit Deiner Aussage, dass er in seinem Thread bleiben solle.
So privat fand ich das nicht. Ich spreche Dich jetzt auch direkt an.
Und in seinem Posting hat er recht weit unten gefragt ob Ihm eventuell jemand anderer dabei helfen könne.
[pref:t=61515&m=346989]
Ich zitiere:
Wäre coll, wenn jemand mir helfen könnte, bin für alles offen
Danke schon jetzt
Von daher sehe ich das nicht so.
Grus Matze
Hallo Stonie,
Falls du die Email-Korrespondenz mit Tom weiterführen möchtest, tust du das bitte auch per Email. Hier im Forum finden Diskussionen statt, nicht etwa Privatgespräche.
Du musst bitte entschuldigen. Ich habe Stephan dazu aufgefodert, die Fragen zu einzelnen Problemen aus den Scripten HIER zu stellen, damit alle etwas davon haben. Es gab nämlich hier in den letzten zwei Tagen mindestens sechs ähnliche Problemstellungen. Du wirst hoffentlich Verständnis dafür haben, wenn ich nicht alles sechs Mal erklären möchte.
Also Vorgehensweise:
Ich habe den Leuten Lösungswege gemailt, da 4*2k hier eben nicht reingehören und dann angeboten, zu den einzelnen Fragen (die dann natürlich hier substantieiert gestellt werden wollten, Antworten zu geben. Selbstverständlich kann jeder andere Forumsteilnehmer auch auf die Fragen antworten, wenn sie denn das Problem verständlich machen. Aber davon habe ich bisher nicht viel gemerkt.
Es sollten ja neue Lösungen aus dem Muster entstehen, und die haben auch neue Probleme. Und diese gehören dann meiner Meinung nach hier rein.
Ich erwarte also Deine Verbesserungsvorschläge.
Liebe Grüße
Tom
Guten abend, gnädiger Herr,
Zunächst möchte ich untertänigst dafür danken, dass Ihr euch bereitgefunden habt, mir eine Antwort zuteil werden zu lassen.
Du musst bitte entschuldigen. Ich habe Stephan dazu aufgefodert, die Fragen zu einzelnen Problemen aus den Scripten HIER zu stellen, damit alle etwas davon haben. Es gab nämlich hier in den letzten zwei Tagen mindestens sechs ähnliche Problemstellungen. Du wirst hoffentlich Verständnis dafür haben, wenn ich nicht alles sechs Mal erklären möchte.
Die Tonart solltest du meiner Ansicht nach noch einmal überdenken.
Was du möchtest oder nicht, wäre in einem Forum, das du dein eigen nennst und in dem du die entsprechenden Kommunikationsregeln aufstellst wichtig. Hier ist wichtig, dass alle wissen, wovon die Rede ist und das ist auf diese Weise nicht in vollem Umfang möglich. Folglicherweise ist es Teil der Regeln in _diesem_ Forum, dass man
Kannst du mir erklären, warum ihr nicht im entsprechenden Ursprungsthread bleiben könnt? Kannst du mir erklären, welchen Nutzen es haben soll, wenn ihr _hier_ Scripte diskutiert, die ausser euch keiner kennt - weil du sie nämlich per Email verschickt hast? Ihr entzieht dem Forum die Basis der Diskussion.
Du kannst
und wirst damit leben müssen, dass sie von allen diskutiert werden.
Wenn ihr nicht in dem Thread bleibt, in dem ihr angefangen habt und gleichzeitig die Grundlage euerer Diskussion nicht bekannt macht, sehe ich absolut nicht, wie irgendjemand hier etwas davon haben soll.
Ich erwarte also Deine Verbesserungsvorschläge.
Gnä' Herr finden sie weiter oben.
Liebe Grüße
Jajajaja...
File Griese,
Stonie
Hi Stonie,
was wolltest Du mir nun eigentlich mit Deinem Posting sagen?
Sortier doch bitte nochmal und fang dann von vorne an ;-)
Dankeschön.
Tom
Hallo Tom,
Sortier doch bitte nochmal und fang dann von vorne an ;-)
Nein. Mit ein bisschen gutem Willen wirst du verstehen, was ich meine.
File Griese,
Stonie
Hallo ihr beiden,
Sortier doch bitte nochmal und fang dann von vorne an ;-)
Nein. Mit ein bisschen gutem Willen wirst du verstehen, was ich meine.
... und du, was Tom dir sagen möchte.
Kann es vielleicht sein, dass ihr beiden ein kleines Bisschen Unrecht, und ein kleines Bisschen Recht habt?
Ich sehe es im Moment so: Tom antwortet auf einen Thread, der eigentlich nicht hätte geffönet werden müssen. Und zwar, weil er weiß, wie es sich damit verhält. Du schaltetst darauhin dein FAQ-Poch-Modul an, und antwortest schon (wie ich finde) etwas unfreundlich, und einem unkooperativen Ton. Dass Tom sich das nicht gefallen lassen möchte kann ich nachvollziehen, denn der Punkt, der ihn meiner Meinung nach stört, ist nicht, dass er "FAQ-unkonform" postet, und du es ihm sagst, sondern _wie_ du das sagst. Daraufhin fühlst auch du dich "an's Bein gesch****n", was ebenso dein gutes Recht ist.
Mein Vorschlag wäre im Moment, dass Tom sich die Mühe macht, für alle das, was er weiß, aber in seinem ersten Posting nicht so rübergekommen ist, wie du sagst (und worin ich dir teilweise Recht gebe) nochmal so zusammenfasst, dass man versteht, worum es geht. Und dass du dich einmal fragst, ob du nicht wirklich _dieses Mal_ ein wenig reflexartig die FAQ-Keule 'rausgeholt hast.
So... *g* Jetzt dürft ihr beide auf mich einschlagen, wenn ich möchtete... ach nein, das geht ja nicht, weil dann wärt ihr euch ja einig... ;-)
Grüße aus Barsinghausen,
Fabian
Hallöle!
Ich sehe es im Moment so: Tom antwortet auf einen Thread, der eigentlich nicht hätte geffönet werden müssen. Und zwar, weil er weiß, wie es sich damit verhält. Du schaltetst darauhin dein FAQ-Poch-Modul an, und antwortest schon (wie ich finde) etwas unfreundlich, und einem unkooperativen Ton.
Nein. In [pref:t=61515&m=346998] habe ich Stephan geantwortet, nicht Tom.
Dass Tom sich das nicht gefallen lassen möchte kann ich nachvollziehen, [...]
Unsinn! Du kannst es verstehen, das ist etwas anderes. Abgesehen davon wüsste ich gern, was Tom sich hier gefallen lassen muss - wie gesagt, ich habe ja noch nicht einmal ihm geantwortet. Oder sollte es sich so verhalten, dass er jetzt die Verteidigung übernimmt, weil er Stephan den tollen Rat gegeben hat, seine (Toms) Mail hier im Forum zu beantworten?
denn der Punkt, der ihn meiner Meinung nach stört, ist nicht, dass er "FAQ-unkonform" postet, und du es ihm sagst, sondern _wie_ du das sagst. Daraufhin fühlst auch du dich "an's Bein gesch****n", was ebenso dein gutes Recht ist.
Um mich dazu zu kriegen, mich ans Bein geschissen zu fühlen, muss weit mehr passieren. Ich bin der Ansicht, dass er sich mir gegenüber im Ton vergriffen hat, ja. Ich bin auch der Ansicht, dass er sich absolut falsch verhalten hat, indem er den Rat erteilt hat, eine seiner Mails hier im Forum zu beantworten; da kann nur Unsinn herauskommen.
Mein Vorschlag wäre im Moment, dass Tom sich die Mühe macht, für alle das, was er weiß, aber in seinem ersten Posting nicht so rübergekommen ist, wie du sagst (und worin ich dir teilweise Recht gebe) nochmal so zusammenfasst, dass man versteht, worum es geht. Und dass du dich einmal fragst, ob du nicht wirklich _dieses Mal_ ein wenig reflexartig die FAQ-Keule 'rausgeholt hast.
Schätzelein, ich habe sehr genau und sehr lange überlegt, ob ich überhaupt antworten soll und wie ich das tue. Wenn du Gründe möchtest, kannst du die gern per Email bekommen (das würde nämlich doch den Rahmen des Forums sprengen).
So... *g* Jetzt dürft ihr beide auf mich einschlagen, wenn ich möchtete... ach nein, das geht ja nicht, weil dann wärt ihr euch ja einig... ;-)
Ich hoffe doch stark, dass es nicht gar so weh getan hat. ;o)
File Griese nach Baschehusen,
Stonie
So, also ich denke jedenfalls nach meinem zweiten Posting sollte allen klar sein, was ich machen will. Ich denke, der Rest hier, wie auch DU kann verstehen, wenn auch mit ein bisschen Mühe, vor welchem Problem ich stehe und nicht weiter weiß.
Tom hat mir sehr geholfen und ich kann seine Aktion verstehen, da ich nicht riesig viel Quelltext hier ins Forum posten kann, habe ich versucht, gaht aber nicht, nach einer bestimmten Zahl von Zeichen spuckt das Forum ne Fehlermeldung.
Niemandem nützt es ausserdem, wenn ich hier einen Haufen Quellcode reinstelle, der mit dem ganzen nichts zu tun hat. Die wichtigen Stellen aus dem Quellcode sind ja in meinem zweiten Posting.
Gruß
Stephan
Holla, das ist der Beweis...
Nein. In [pref:t=61515&m=346998] habe ich Stephan geantwortet, nicht Tom.
Antworten sind doch immer an das gesamte Forum gerichtet, auch wenn man höflichkeitshalber eine direkte Anrede wählt. Wir haben hier doch keine private Mailbox *gnicker*
Dass Tom sich das nicht gefallen lassen möchte kann ich nachvollziehen, [...]
Unsinn! Du kannst es verstehen, das ist etwas anderes. Abgesehen davon wüsste ich gern, was Tom sich hier gefallen lassen muss - wie gesagt, ich habe ja noch nicht einmal ihm geantwortet. Oder sollte es sich so verhalten, dass er jetzt die Verteidigung übernimmt, weil er Stephan den tollen Rat gegeben hat, seine (Toms) Mail hier im Forum zu beantworten?
Hoppla, schon wieder verraten. Lieber Stonie (und natürlich auch alle anderen Leser, falls Ihr noch nicht vor Lachen unter dem Tisch liegt), ich habe Stephan geraten, seine Detailfragen zu den übersandten Scripten wieder hier zu stellen, da ich kein Einzeltraining mit ihm absolvieren wollte. Erstens gab es noch fünf weitere Kandidaten mit ähnlichen Problemen und zweitens maße ich mir nicht an, die Weisheit mit Löffeln gefressen zu haben. Zugegeben, ich habe immer tolle Ideen und schaue etwas genauer hin als manche Andere, aber ich mache auch viele Fehler. Wenn die Mitleser dann darauf reagieren, habe ich auch etwas davon.
denn der Punkt, der ihn meiner Meinung nach stört, ist nicht, dass er "FAQ-unkonform" postet, und du es ihm sagst, sondern _wie_ du das sagst. Daraufhin fühlst auch du dich "an's Bein gesch****n", was ebenso dein gutes Recht ist.
Um mich dazu zu kriegen, mich ans Bein geschissen zu fühlen, muss weit mehr passieren. Ich bin der Ansicht, dass er sich mir gegenüber im Ton vergriffen hat, ja. Ich bin auch der Ansicht, dass er sich absolut falsch verhalten hat, indem er den Rat erteilt hat, eine seiner Mails hier im Forum zu beantworten; da kann nur Unsinn herauskommen.
...
Mein Vorschlag wäre im Moment, dass Tom sich die Mühe macht, für alle das, was er weiß, aber in seinem ersten Posting nicht so rübergekommen ist, wie du sagst (und worin ich dir teilweise Recht gebe) nochmal so zusammenfasst, dass man versteht, worum es geht. Und dass du dich einmal fragst, ob du nicht wirklich _dieses Mal_ ein wenig reflexartig die FAQ-Keule 'rausgeholt hast.
Schätzelein, ich habe sehr genau und sehr lange überlegt, ob ich überhaupt antworten soll und wie ich das tue. Wenn du Gründe möchtest, kannst du die gern per Email bekommen (das würde nämlich doch den Rahmen des Forums sprengen).
Das hast Du schon geschafft.
Ich liebe Dich trotzdem, denn was wären wir ohne Diskussionen?
Nur ein Haufen von reproduziertem Müll der Vergangenheit!
Grüße
Tom
PS: ZUR INFO war das aber nicht, was wir hier veranstalten. Das ist eindeutig eine MENSCHELEI
Hallo,
Lieber Stonie
ob sie sich davon angesprochen fühlt? Ich würde den 50:50-Joker benutzen.
Gruß,
_Dirk
Hallo Schür,
ob sie sich davon angesprochen fühlt? Ich würde den 50:50-Joker benutzen.
Hast du 'ne Antwort gesehen? ;o)
File Griese,
Stonie
Hi Stonie,
das ist mir aber peinlich. Ist nen bisschen Weit, um Dich auif ein Weinchen einzuladen. Na schaun wir mal, wie ich es anderweitig wieder gutmachen kann.
Allerdings verstoße ich ja schon wieder gegen die "Antimailboxregel". Tut mir leid Leute, aber ich wollte Stonie doch noch mal antworten. :-)
Grüße
Tom
Hi Fabi,
So... *g* Jetzt dürft ihr beide auf mich einschlagen, wenn ich möchtete... ach nein, das geht ja nicht, weil dann wärt ihr euch ja einig... ;-)
Nö, ich würde dich doch nicht schlagen, das weißt Du hoffentlich. Und besonders deshalb nicht, weil Du es ja nochmal zusammengefasst hast. Stephan hat nun wohl inzwischen verstanden, dass er im alten Thread hätte bleiben sollen und ich weiß, dass ich nächstes Mal erst dreihundert Entschuldigungen schreiben muss, bevor ich zur eigentlichen Beantwortung der Frage komme. Das ist dann ungefähr so mit dem unnötigen Geschäftsordnungskram des Forums, wie es bei Windows Overhead an Bildern und Quietschen und fliegenden Ordnern und "sind Sie sicher?" "sind Sie wirklich Sicher?" " sind Sie sich übner den Inhalt der beiden letzten Fragen im Klaren und wollen Sie wirklich den Vorgang fortsetzenß" ...
na Du weißt schon.
Selbstr Stefan hat hier heute an manchen Stellen zu etwas mehr Pragmatismus aufgerufen. Ich weiß natürlich, dass ich gegen die Regeln schwer gefgehlt habe, aber doch nur zur Erlangung eines höheres Gutes (einen Neuen User zu werben - wegen der Rente *gg*)
Nimm mich jetzt bloß nicht zu Ernst (oder ernst ?)
Grüße
Tom
Hi Tom,
So... *g* Jetzt dürft ihr beide auf mich einschlagen, wenn ich möchtete... ach nein, das geht ja nicht, weil dann wärt ihr euch ja einig... ;-)
Nö, ich würde dich doch nicht schlagen, das weißt Du hoffentlich. Und besonders deshalb nicht, weil Du es ja nochmal zusammengefasst hast. Stephan hat nun wohl inzwischen verstanden, dass er im alten Thread hätte bleiben sollen und ich weiß, dass ich nächstes Mal erst dreihundert Entschuldigungen schreiben muss, bevor ich zur eigentlichen Beantwortung der Frage komme. Das ist dann ungefähr so mit dem unnötigen Geschäftsordnungskram des Forums, wie es bei Windows Overhead an Bildern und Quietschen und fliegenden Ordnern und "sind Sie sicher?" "sind Sie wirklich Sicher?" " sind Sie sich übner den Inhalt der beiden letzten Fragen im Klaren und wollen Sie wirklich den Vorgang fortsetzenß" ...
na Du weißt schon.
Das weiß ich gut als Linuxxer. Obwohl ich zugeben muss, dass (auch) mein Desktop im Moment quietschblau ist. Ich bin hochzufrieden damit, vor allem weil es nicht Windoof ist, und die Shortcuts _sofort_ und nicht nach Nachfrage das tun, was sie sollen. ;-)
Selbstr Stefan hat hier heute an manchen Stellen zu etwas mehr Pragmatismus aufgerufen. Ich weiß natürlich, dass ich gegen die Regeln schwer gefgehlt habe, aber doch nur zur Erlangung eines höheres Gutes (einen Neuen User zu werben - wegen der Rente *gg*)
Oh, ich bin ganz sicher, dass er wiederkommt. =)
Nimm mich jetzt bloß nicht zu Ernst (oder ernst ?)
Hör damit bloß auf, der Monsterthread dazu ist immernoch in der Hauptdatei... (Ganz unten, aber für soviel Input wirst du weder Zeit noch Muße haben.)
Grüße aus Barsinghausen,
Fabian
Hallo Stephan,
nur ganz kurz, weil ich jetzt außer Haus bin. Schaue aber heute Abend nochmal rein hier.
Du solltest Dir dazu auch das Script für die Datenansicht anschauen.
Der "formresponder" ist ja nur ein Script, dass alle über das Formular übertragenen Werte Typgerecht abspeichert in einem Flat-File, und zwar immer als Datensatz. Jede "Zeile" in der Datei daten.dat (die müsste automatisch entstanden sein) ist ein Datensatz. Die kannst Du Dir auch mit einem vernünftigen ASCII-Editor (z.B. Textpad) anschauen.
Um die Datei bearbeiten zu können, musst Du Dir noch ein Edit-Tool schreiben. Da es eine Serielle Datei ist, musst Du sie leider komplett einlesen. Schau Dir an, wie datenlesen.php das macht. Dann kannst Du in den Sätzen Werte verändern oder hinzufügen, anschließend wieder verpacken, so wie formresponder.php das macht und abspeichern.
Es soll eine Linkliste werden, die die HTTP-Adresse enthält, die in eine Variable gepackt wird. Diese Variable nimmt dann ein Button auf, der einen bestimmten Teil des Scriptes ausführt.
Das Script (weiss nicht ob es funktioniert) sucht nach Links zu meiner Homepage auf einer anderen Seite, die ich eben in das Formualr eingetragen habe.
Wenn diese Seite auf mich linkt, soll ein grüner Button erscheinen, falls nicht ein roter, falls nicht gecheckt, ein grauer.
Dazu solltest Du datenlesen.php entsprechend umbauen. Fang doch erstmal damit an, dass Du aus den vielen einzelnen Datensatztabellen mit unterschiedlichem Satzaufbau eine einzige machst mit einheitlichem Satzaufbau. Du willst ja keine varianten Sätze abspeichern, sondern immer die gleichen Daten pro Satz registrieren.
Und dann hängst Du einfach eine berechnete Spalte mit dem Link und eine ausgelesene mit dem Check-Status dran.
Ich werd jetzt abheholt
Tschüss
Tom
OK, Danke aber (Hä) lerne doch noch, Du kannst mich doch nicht so zuballern :-( habe nix kapiert, kannst Du mir das erklären *verzweifel*