Hi,
puh, danke erst mal für die infos :-), offenbar ist mein code ja ganz schön unsauber - hab' mir php selber beigebracht per try and error, da schleichen sich solche sachen irgendwie immer ein.
Ich habe jetzt versucht mein Skript etwas zu verbessern.
Das deaktivieren der magic_quotes_gpc funktioniert leider nicht; ich habe versucht es per .htaccess (php_flag magic_quotes_gpc off) auszuschalten aber da kriege ich dann nur noch 500 Server Error. An die php.ini darf ich leider nicht ran. Momentan ist die Konfiguration folgend:
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
Dennoch scheint das umgebaute Skript zu tun was es soll, ich lasse mir die Ergebnisse vorher einzeln anzeigen und das geht alles.
Nur: auch wenn ich die temp.php erst nach dem Ende der While schleife schreibe, kriege ich nur den zuletzt durchlaufenen Wert. 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.
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 ???
Momentan also etwa so:
<?php
// Fehlermeldungen
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
include "connect.php"; // die Verbindung zur Datenbank steht da drin
$abfrage = sprintf("SELECT * FROM dbname WHERE land LIKE '%s'", mysql_real_escape_string($_POST['data']));
$suche = mysql_query($abfrage);
if (!$suche) {
die('Fehler 001 ' . mysql_error());
exit;
}
// ANFANG DER temp.php
$start = "<?php \n\$namen = '";
$fp0 = fopen("temp.php", 'w');
fwrite($fp0, $start, strlen($start));
fclose ($fp0);
while($sdata = mysql_fetch_object($suche))
{
$ergeb1 = $sdata3->vorname;
$ergeb2 = $sdata3->nachname;
$ergeb3 = $sdata3->land;
/**** TEMP DATA EINTRAG --> temp_adr.php ****/
$ganznamen = $ergeb1." ".$ergeb2.",";
$fpA = fopen("temp.php", 'a+b');
fwrite($fpA, $ganznamen, strlen($ganznamen));
fclose ($fpA);
} //ende while
// ENDE der temp.php
$inputB = "';\n ?>";
$fpA2 = fopen("temp.php", 'a+b');
fwrite($fpA2, $inputB, strlen($inputB));
fclose ($fpA2);
mysql_free_result($suche);
?>
Falls es da eine bessere Lösung gibt, wärs' super ... Danke ...