Problem mit ?action=

raphk

Mitglied
Problem mit ?action= + mit setcookie

Ich hab ein Problem. Ich hab hier ein Login Script (is noch nicht ganz fertig). Das Script ansich läuft tadellos. Problem ist nur das
PHP:
datei.php?action=
Also wenn ich bei action nix angebe soll der erste Teil des Scriptes laufen (also der Login). Bei mir kommt das Login Formular und unter dem Formular steht noch "User existiert nicht! Zurück". Das kommt aus den Zeilen mit dem ## davor aber die ist im zweiten Teil des scriptes und dürfte eigentlich gar nicht angezeigt werden!


PHP:
if($action == "")
{
  echo"
       <FORM action=\"$PHP_SELF?action=checklogin\" method=\"post\">
       <TABLE width=\"200\" cellspacing=\"1\" cellpadding=\"2\" border=\"1\">
       <tr>
         <td height=\"40\" valign=\"middle\">Name:</td>
         <td align=\"center\" valign=\"middle\">
          <input type=\"text\" name=\"login\" size=\"10\">
         </td>
       </tr>
       <tr>
         <td height=\"40\" valign=\"middle\">PW:</td>
         <td align=\"center\" valign=\"middle\">
          <input type=\"password\" name=\"pw\" size=\"10\">
         </td>
       </tr>
       <tr>
         <td height=\"40\" colspan=\"2\" align=\"center\" valign=\"middle\">
          <input type=\"submit\" value=\"Login\" class=\"button\">
         </td>
       </tr>
       </TABLE>
  ";
}
//LOGIN Check
if($action = "checklogin")
{
  //DB REGUSER auslesen
  $result = mysql_query("SELECT pw, nick FROM $db WHERE (login=\"$login\")");
  if($result)
  {
    $Anzahl = mysql_num_rows($result);
    if($Anzahl > 0)
    {
      $pwdb  = mysql_result($result, $i, 0);
      $nick  = mysql_result($result, $i, 1);
      //PW überprüfen
      if ($pwdb == $pw)
      {
        echo"Hallo $nick";
      }
      else
      {
        echo"Falsches Passwort<BR>";
        echo"<a href=\"$PHP_SELF\">Zurück</a>";
      }
    }
    else
    {
##    echo"User existiert nicht!";
##    echo"<a href=\"$PHP_SELF\">Zurück</a>";
    }
  }
  else
  {
    echo"Datenbankproblem<BR>";
    echo"Bitte kontaktieren Sie den Webmaster!";
  }
}
?>

Hab schon einiges versucht aber diese Zeile kommt immer wieder. Also ich seh den Fehler nicht. Vielleicht hat ja einer von euch ne Idee woran es liegt!


MFG Raphael
 
Zuletzt bearbeitet:
Und wenn wir dann noch schön sauber arbeiten wollen, machen wir entweder.
PHP:
if() {
}
elseif {
}
.
.
.
else {
}
oder das ganze mit einer switch-Anweisung, aber bitte nicht zwei if() hintereinander. Das geht zwar, aber ist überhauptgarnicht schön :rolleyes:
 
Ok danke es läuft jetzt! War dieses verflixte == ! :mad: Sind bei mir immer diese Kleinigkeiten! :rolleyes:

Thx a lot!
 
nun dasgleiche mit Cookies

Original geschrieben von [23]^5^
ausserdem würd ich mir mal register_globals ansehn... bzw auf on stellen...
??? und was macht das? Bzw wozu ist das register_globals gut?


Ich würde nun gerne mit Cookies arbeiten im oben geposteten Script. Da ich aber noch nie mit Cookies gearbeitet hab weiß ich nicht so recht wie ich das anstellen soll. Also wenn der en Cookie entdeckt braucht der seinen Login nicht einzutippen und wenn kein Cookie da ist soll der nach erfolgreichem Login gesetzt werden. Aber wie mach ich das? Welche Variabeln sollten im Cookie stehen? Reichen Login und PW da die restlichen Angaben in ner MySql Datenbank gespeichert sind? Evtl noch ein Counter der anzeigt wie oft der user schon die Seite besucht hat. Allerdings würd ich diesen Counter auch gerne in der Datenbank haben damit wenn zB der User den Cookie löscht trotzdem die Anzahl Logins erhalten bleiben.

Noch eine Frage: wenn ich eine Anzeige machen will wer gerade online ist (wie mans zB in Foren oft hat) da genügt es doch nen zweiten Cookie setzen zu lassen mit Lebensdauer 0 (dh bei Schließung des Browsers wird dieser gelöscht) nur mit Login als Varible und der Name wird dann angezeit. Oder geht das einfacher?

MFG R@PH
 
dann greiffst du nicht mehr so auf die vars zu $varname sondern $_GET['varname'] - das ganze ist da um ein sicherheitloch von php zu umgehn...

bzgl. sessions, das ist ganz einfach... lies dir einfach mal das manuel durch
http://de.php.net/set_cookie
 
Zurück