Nick: Login php

Hallo,

ich möchte gern ein login mit php machen.

$a = mysql_query("select email,passwort from datenbanktabelle where email = '".$_GET['login']."'");
$b = mysql_fetch_assoc($a);
if($_GET['login']) == $b['email'])
header('Location:http://www.krankenpflegevermittlung.de/login.php');

Leider bekomm ich hier die Fehlermeldung

Parse error: syntax error, unexpected T_IS_EQUAL in /index.php on line 6

darf ich vor dem header keinen vergleich machen?

wie kann ich sonst noch nach erfolgreichem Vergleich weiterleiten?

Welche login variante ist empfehlenswert?

mfg nick

  1. Hello,

    if($_GET['login']) == $b['email'])

    ^

    Du hast dort eine überflüssige Klammer stehen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo,

      danke für en Hinweis, mal wieder nur den Wald gesehen.

      Nun habe ich auch schon das nächste Problem, und zwar kommt er jetzt sofort auf die login Seite.

      Woran könnte das liegen.

      Ich mache doch ein Abfrage.

      mbg Nick

  2. Hi!

    $a = mysql_query("select email,passwort from datenbanktabelle where email = '".$_GET['login']."'");

    Kontextwechsel nicht missachten! Und das Auswerten von Fehlerzuständen wäre auch sinnvoll, bevor man mit dem Programmablauf fortfährt.

    if($_GET['login']) == $b['email'])
    darf ich vor dem header keinen vergleich machen?

    Doch schon, du musst nur die Klammern richtig setzen.

    Lo!

    1. Ok, danke.

      Leider habe ich jetzt das Problem das ich sofort auf die login seite wechsel.

      mfg Nick

      1. Hi!

        Leider habe ich jetzt das Problem das ich sofort auf die login seite wechsel.

        Dann hast du irgendwas verkehrt gemacht. Wenn du den Code nicht gerade so notiert hast, dass das header() unbedingt aufgerufen wird, dann wird Wunsch und Wirklichkeit nicht übereinstimmen. Prüfe das mit Kontrollausgaben der Inhalte deiner Variablen (var_dump()). Ein auf E_ALL stehendes error_reporting (und eingeschaltetes display_errors) können ebenfalls auf Fehler hinweisen.

        Lo!

  3. Hallo

    probiers mal so,

    $a = mysql_query("select email, passwort from datenbanktabelle where email = '".$_GET['login']."'");
    $b = mysql_fetch_assoc($a);

    if($_GET['login']) == $b['email'])
    {
    header('Location:http://www.krankenpflegevermittlung.de/login.php');
    }

    siehe klammern {}

    Gruß Jonny F.

    1. Anhang

      Loginsystem von selfhtml

      http://aktuell.de.selfhtml.org/artikel/php/loginsystem/

    2. Hello Jonny,

      probiers mal so,

      besser nicht!

      $a = mysql_query("select email, passwort from datenbanktabelle where email = '".$_GET['login']."'");

      versuch es mal so:

      $sqlstr = "select email, passwort from datenbanktabelle "
              . "where email = '" . mysqli_escape_string($con, $_GET['login']) . "'";
      $res    = mysqli_query($sqlstr);

      Wozu die folgenden Zeilen gut sein sollen, ist mir nicht klar, aber...

      $b = mysql_fetch_assoc($a);

      #> if($_GET['login']) == $b['email'])
        if($_GET['login'] == $b['email'])

      {
          header('Location:http://www.krankenpflegevermittlung.de/login.php');
      }

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  4. Mahlzeit Nick,

    Auf die üblichen Verdächtigen (Kontextwechsel, Syntaxfehler usw.) wurdest Du ja bereits hingewiesen.

    $a = mysql_query("select email,passwort from datenbanktabelle where email = '".$_GET['login']."'");

    Du suchst hier in der Datenbank alle Datensätze, bei denen im Feld "email" das gleiche drin steht wie das, was das Skript per GET-Parameter "login" bekommen hat ...

    if($_GET['login']) == $b['email'])

    ... also ist dieser Vergleich ziemlich überflüssig - er wird *IMMER* wahr sein, da die Gleichheit doch Kriterium Deiner SQL-Abfrage und damit Grundvoraussetzung für alle in der Ergebnismenge enthaltenen Daten ist.

    header('Location:http://www.krankenpflegevermittlung.de/login.php');

    Aus diesem Grund bekommst Du *natürlich* auch *immer* die Login-Seite zu sehen. Du kannst nicht ersthaft etwas Anderes erwarten, solange Du genau das programmierst.

    Works as designed.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|