echo $begrüßung;
Ich habe ien Loginscript. Wenn ich dort meinen Namen und Pw eingebe erscheint immer fehler.php obwohl das pw und der name _richtig 100%__nicht falsch__ _ eingegeben wurde.
Solche Fehler sucht man, indem man sich die Inhalte der Variablen ausgibt. Ebenso kann man sich die Ergebnisse von Ausdrücken ausgeben lassen. Geeignete Funktionen sind neben echo und print() vor allem var_dump(). var_dump() gibt neben dem Wert auch noch den Typ aus und ist bei der Anzeige boolscher Werte genauer (true/false statt 1/nix). Für Arrays und Objekte ist auch noch print_r() geeignet.
Okay.
Ansonsten vermisse ich das Reagieren auf Fehlerzustände in deinem Script.
Sind drin ;) Hab ich hier nur rausgemacht.
$query="SELECT user FROM xxx1 WHERE user='$name' OR userid='$name' AND pwd='$pwd'";
$sql=mysql_query($query);
if(mysql_num_rows($sql)==1){Ebenso ist es bei mysql_query().
Ebenso.
Den OR-Ausdruck willst du sicherlich in Klammern setzen. Da das AND eine höhere Priorität hat als das OR, wird zuerst userid und pwd ausgewertet und das Ergebnis dessen anschließend noch mit dem user-Vergleich "geORt". Wenn user gleich $name ist, wird damit dein Ausdruck schon wahr.
Wie in Klammern setzen? Wie genau?
Nehmen wir mal an, dass du nun die Klammern richtig gesetzt hast. Was passiert eigentlich mit deinem Loginvorgang, wenn jemand in dein Passwortfeld ' OR 1 OR ' (inklusive der ' ) eingibt?
Das PW wird vorher verschlüsselt. Es ist also nicht möglich das so ein Fall eintrifft.
Wenn das steht if($akt1=1&&$akt2=1&&$akt3=1) {Anweisung},
dann heißt das doch das _nur_ wenn
$akt1 _und_ $akt2 _und_ $akt3 den Wert 1 haben, die Anweisung passiert oder?Nein, heißt es nicht. Du solltest dir nochmal den Unterschied zwischen Zuweisungs- und Vergleichsoperatoren unter PHP anschauen.
Ouh *vorn Kopg schlag*. Danke.
Es gibt einen kleinen Trick, wie man den Parser nutzen kann, einem solche Fehler zu zeigen. Wenn man den konstanten Ausdruck links vom versehentlich verwendeten Zuweisungsoperator notiert und die Variable rechts davon ergibt das eine ungültige Zuweisung, die der Parser ankreidet. Aber wenn man schon daran denkt, das so zu notieren, denkt man sicher auch daran, den richtigen Operator zu verwenden.
$verabschiedung ="<p>mfg</p>";
$name="<p>Phil Z.</p>";
echo "$verabschiedung $name";