Moin!
Ich mache das ganze gleich mal "sicher".
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ausgabe.php on line 128
dort steht in Zeile 128
while ($row = mysql_fetch_row ($result))
stelle ich register_globals = On
läuft die abfrage und ich bekomme meine Datensaetze angezeigt.
Das ist ein Hinweis darauf, dass Deine Datenbankabfrage aus Benutzereingaben zusammengebaut wird. Der eigentliche Fehler ist weiter oben.
Was kann das sein, bzw. wie kann ich das Script ändern damit ich register_globals = off stehen lassen kann ...
Du hast ein Formular:
<form method="GET" action="datei.php" ><!-- oder method="POST" //-->
<input type="text" name="intWert">
<input type="text" name="strWert">
<input type="submit">
</form>
In Deinem Skript übernimmst Du den Wert mit
wird bei register_globals = On der value aus dem Inputfeld direkt in die Variable $wert übernommen.
Ohne diese gefähliche Einstellung übernimmst Du im Idealfall: (Sollten Dein Formular die Versandmethode POST unterstützen: s/GET/POST/g)
So werden Zahlen-Werte übernommen
if (! isset ($_GET['intWert'])) {
# was willst Du tun, wenn das Skript direkt aufgerufen wurde
die ("Kein Wert übergeben.");
} else {
$intWert=$_GET['intWert']*1; # Multiplizieren von Text mit Zahl führt zu Ergebnis 0
}
So werden Texteingaben übernommen:
if (! isset ($_GET['strWert'])) {
# was willst Du tun, wenn das Skript direkt aufgerufen wurde?
die ("Kein Wert übergeben.");
} else {
# Hier gibt es wieder zwei Möglichkeiten:
# magic_quotes_gpc = On sorgt dafür, das bestimmte Zeichen maskiert werden werden
# Leider stimmt das oft nicht nicht mit Deinen Wünschen überein
# Das ist unabhängig von register_globals = On/Off
if (ini_get('magic_quotes_gpc')) {
# magic_quotes_gpc = On
$strWert=stripslashes($_GET['strWert']);
} else {
# magic_quotes_gpc = Off
$strWert=($_GET['strWert']);
}
}
...
ich muss befürchten, auch daran wurde nicht gedacht: Du musst einige Sonderzeichen maskieren.
$sql="SELECT spalte1, spalte2 from table where spalte3=$intWert AND spalte4="".mysql_real_escape($strWert).'"';
...
Auch an das Abfangen des Fehlers wurde wohl nicht gedacht:
$result=mysql_query($sql; $DB) or die("$sql<br>".mysql_error();)
...
http://de3.php.net/manual/de/function.stripslashes.php
http://de3.php.net/manual/de/function.ini-get.php
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development