Vinzenz Mai: Ein Problem mit der Fehlerbehandlung

Beitrag lesen

Hallo Phil,

Mich plagen 2 Probleme:

ich komme nur auf eines :-) Ist das nicht ein Trost?

Quelltext:
$query="SELECT COUNT(*) FROM $table WHERE user=$nick";
$dummy=mysql_query($query);
$num=mysql_result($dummy,0);

produziert aus Gründen, die Du mittels der Tipps von wahsaga herausfinden solltest

Folgende Fehlermeldung:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in

Ist Dir klar, was das bedeutet? Es wird eine Fehlermeldung an den Browser geschickt. Damit wird eine Ausgabe erzeugt. Damit diese gemacht werden kann, werden dem Browser Header geschickt - und da Du im weiteren Skriptverlauf in _jedem_ Fall versuchst, weitere Header zu versenden, ...

if($num==0){
   if($pwd==$pwd2){
header('Location: index.php?show=blank&action=regdone');
   } elseif ($pwd!=$pwd2) {
header('Location: index.php?show=new&err=notsamepwd');//Zeile
   }
} else {
  header('Location: index.php?show=new&err=nameexists');
}

... muss bei Deinem Code ganz zwangsläufig

Folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at...//Zeile

kommen. Wie sollte es anders sein?
Wie wahsaga Dir bereits gesagt hat: Vermeide jede Ausgabe. In Deinem Fall heißt dies: Eliminiere den Grund für die Warnmeldung. Es bedeutet aber auch: Rechne damit, dass MySQL Dir eine Fehlermeldung sendet. Behandele diesen Fall vernünftig.

Freundliche Grüße

Vinzenz