echo $begrüßung;
Das deaktivieren der magic_quotes_gpc funktioniert leider nicht;
Für diesen Fall gab es auf der verlinkten Seite einen Codeschnipsel, den man am Anfang des Scripts einbauen kann. Der macht die Auswirkungen der Magic Quotes zur Laufzeit rückgängig.
Dennoch scheint das umgebaute Skript zu tun was es soll, ich lasse mir die Ergebnisse vorher einzeln anzeigen und das geht alles.
Die Magic Quotes sind zwar für die Entschärfung einiger Zeichen vorgesehen, aber die Maskierungen für SQL-Statements sind in anderen Zusammenhängen unbrauchbar. Ein Affenformular beispielsweise wirft die Daten dem Anwender so lange wieder vor die Füße, bis der keine Fehler mehr drin hat. Eine Datenbank ist dabei nicht im Spiel, die Magic Quotes also nicht brauchbar, sie kommen aber in die HTML-Ausgabe, wenn man sie nicht entfernt.
Nur: auch wenn ich die temp.php erst nach dem Ende der While schleife schreibe, kriege ich nur den zuletzt durchlaufenen Wert.
Das wäre auch eine Möglichkeit. Setzt zuerst die auszugebenden Daten in einem String zusammen und schreibe den dann in einem Rutsch. Das verbraucht aber Speicher, je länger der String wird desto mehr. Die Daten gleich wegzuschreiben ist ressourcenschonender.
Offenbar wird bei jedem durchlauf der while-Schleife der vorige Wert in der $ganznamen überschrieben, so dass man nur den letzten Wert erhält - eigentlich logisch.
Kontrollausgabe helfen, Licht ins Dunkle zu bringen. Spekulieren muss man bei Programmieren normalerweise nicht.
Ich habe das Problem jetzt nur auf eine etwas umständlich-riskante Art lösen können indem ich einmal vor der while-Schleife den Anfang der temp.php schreibe, dann in der while-schleife die Daten einfüge und nach der while-Schleife das Ende der temp.php einfüge. Man schreibt dann bei 100 Personen also 102 mal in die Datei ... ob das wohl gut ist ???
Es ist kein Problem, mehrfach in eine Datei zu schreiben. Sie muss dazu aber nicht jedes Mal geöffnet und wieder geschlossen werden. Einmal vor bzw. nach dem die Daten zusammensuchenden Teil reicht.
$suche = mysql_query($abfrage);
if (!$suche) {
die('Fehler 001 ' . mysql_error());
exit;
Ein die() beendet bereits das Script. Ein exit danach wird nie ausgeführt werden. Allerdings ist die() keine Fehlerbehandlung, oder wie es Cheatah trefflicher formulieren konnte: http://community.de.selfhtml.org/zitatesammlung/zitat1282
Der Anwender kann mit einem MySQL-Fehlermeldungstext nichts anfangen. Wenn er es doch kann, will man nicht, dass dieser Anwender damit was zum Nachteil meiner Datenbank anfangen kann. Fehlermeldungen sollte man so behandeln, dass nur der Administrator sie zu Gesciht bekommt. Der Anwender sollte eine für ihn sinnvolle Meldung vorgesetzt bekommen. Die sollte sich im restlichen Layout der Seite befinden und nicht am Ende einer halben, abgebrochenen Seite stehen.
echo "$verabschiedung $name";