Session über automatische Weiterleitung geht nicht!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session über automatische Weiterleitung geht nicht!

    Moin,

    Ich hab da mal wieder ein Problem, dessen Fehler ich mir nicht so recht erklären kann!
    Ich benutze für meine Seite ein Session basiertes Login Script! Allerdings will das nicht ganz so funktionieren wie es soll!

    In dem Script ist eine Automatische Weiterleitung nach ein paar Sekunden eingebaut, wartet ein User auf die Automatsche weiterleitung, schlägt der Login fehl!
    Klickt er aber auf den Link um die Automatische weiterleitung zu überspringen wird er erfolgreich eingeloggt!
    Nun weiß ich aber nicht wo in meinem Script dafür ein fehler vorliegen könnte!
    Jemande ne idee?

    Hier der Quellcode
    PHP-Code:
    <?php
    session_start
    ();
    //Datenbankverbindung
    require("../../control/access/sqldaten.php");

    $username $_POST["username"];
    $password md5($_POST["password"]);//Verschlüssltes Passwort
    //Datenbankabfrage
    $abfrage "SELECT username, password FROM login WHERE username LIKE '$username' LIMIT 1";
    $ergebnis mysql_query($abfrage); 
    $row mysql_fetch_object($ergebnis);
    //Passwortkontrolle
    if($row->password == $password)
        {
        
    $_SESSION['username'] = $username;
        
    $_SESSION['email'] = $email;
        echo 
    "Login erfolgreich. <br> <a href=\"../haupt.php\">Falls die automatische weiterleitung (5sek) nicht funktioniert, klicken sie hier!</a>";
        echo 
    "<meta http-equiv='refresh' content='5; URL='../haupt.php'>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href='./login.htm'>Login</a>";
        echo 
    "<meta http-equiv='refresh' content='10; URL=../index.php'>";
        }
    ?>

  • #2
    Vermutlich wird bei der automatischen Weiterleitung die Session-ID nicht übergeben (und Cookies sind deaktiviert).

    Beim Link hat PHP die SID selber eingefügt (mit session.use_trans_sid auf on), beim META-Element jedoch nicht.


    Btw.: Dass deine Datenbankabfrage anfällig für SQL Injection ist, ist dir hoffentlich klar. Gerade bei einem Login fatal.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      <meta> muss in den <head>!

      Kommentar


      • #4
        Und ist außerdem das völig falsche Forum. Daher * verschieb *.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          PHP-Code:
          if($row->password == $password
          Den Vergleich sollte man im SQL machen.

          Statt der Weiterleitung sollte doch ein include reichen...
          Das spart einen kompletten Requestzyklus.
          Wir werden alle sterben

          Kommentar


          • #6
            ok mit

            PHP-Code:
            echo "<meta http-equiv=\"refresh\" content=\"5; URL=../haupt.php?".sid."\">"
            hat es geklappt...
            Aber mal zum Thema SQL Injection, da ich mich ja erst seit kurzem mit SQL und so beschäftige, bi ich mir bei dessem nicht so sicher wie man es beser machen könnte! Mich hat schonmal jemand darauf aufmerksam gemacht dann ahb ich mir das auf Wiki mal näher angeschaut. Grundlegend habe ich die Beispiele verstanden (glaube ich) nur bin ich mir icht wirklich sicher wie ich es besser machen könnte?

            Ziel wäre es ja glaube ich so wenig Parameter wie möglich in einer Abfrage zu haben oder?

            Eidt: Ok Post über mir zu spät gelesen xD

            Kommentar


            • #7
              Zitat von Sonork Beitrag anzeigen
              Aber mal zum Thema SQL Injection, da ich mich ja erst seit kurzem mit SQL und so beschäftige, bi ich mir bei dessem nicht so sicher wie man es beser machen könnte!
              Lies erst mal das, um die grundsätzliche Problematik zu verstehen:
              Kontextwechsel erkennen und behandeln

              Ziel wäre es ja glaube ich so wenig Parameter wie möglich in einer Abfrage zu haben oder?
              Nein, das ist Quatsch.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Zitat von Sonork Beitrag anzeigen
                Grundlegend habe ich die Beispiele verstanden (glaube ich) nur bin ich mir icht wirklich sicher wie ich es besser machen könnte?
                PHP: mysql_real_escape_string - Manual
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar

                Lädt...
                X