Login-Script Problem

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

  • Login-Script Problem

    hi leute,

    ich bin noch relativ neu in php und hab versucht, mir ein login-script zu erstellen. Nur leider, bekomme ich beim einloggen immer einen Fehler. . ich hab auch schon gegoogelt, aber bis jetzt nichts brauchbares gefunden

    hier die datei wo die login abfrage stattfindet:

    PHP-Code:
    <?php

    session_start
    ();

    include 
    "config.php";
    include 
    "functions.php";
    @
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
        die(
    "Fehler beim Verbinden zur Datenbank\n");
    @
    mysql_select_db(MYSQL_DATABASE) OR
        die(
    "Fehler beim auswählen der Datenbank\n");

    //Login überprüfen
    if (isset($_POST['username'], $_POST['password'])) {
      
    //Wurden alle Felder ausgefüllt
      
    if (empty($_POST['username']) || empty($_POST['password'])) {
        die(
    "Bitte alle Felder ausfüllen");
      }

      
    //Stimmen die Zugangsdaten
      
    if (login_right($_POST['username'], $_POST['password'])) {
        
    $sql "SELECT
                    *
                FROM
                    us_er
                WHERE
                    username = '"
    .$_POST['username']."' AND
                    password = '"
    .MD5($_POST['password'])."'
                "
    ;
        
    $result mysql_query($sql);
        
    $row mysql_fetch_assoc($result);

        
    $_SESSION['ID']         = $row['ID'];
        
    $_SESSION['username']   = $row['username'];
        
    $_SESSION['password']   = $row['password'];
        
    $_SESSION['email']      = $row['email'];

        
    header ("Location: add_user.php");
      }
    }

    //Login Formular
    echo "<form action = \"login.php\" method = \"post\">\n";
    echo 
    "Username:<br>\n";
    echo 
    "  <input type = \"text\" name = \"username\"></input><br>\n";
    echo 
    "Passwort:<br>\n";
    echo 
    "  <input type = \"password\" name = \"password\"></input><br>\n";
    echo 
    "  <input type = \"submit\" value = \"Einloggen\"></input>\n";
    echo 
    "  <input type = \"reset\" value = \"Zurücksetzen\"></input>\n";

    ?>

    und hier die datei, auf die verlinkt werden soll:

    PHP-Code:
    <?php

    if (isset($_SESSION['ID'], $_SESSION['username'], $_SESSION['password'],
                
    $_SESSION['email'])) {
        include 
    "config.php";
        @
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
            die(
    "Fehler beim verbinden zur Datenbank");
        @
    mysql_select_db(MYSQL_DATABASE) OR
            die(
    "Fehler beim auswählen der Datenbank");

        
    //Eingabe überprüfen
        
    if (isset($_POST['username'], $_POST['password'], $_POST['email'])) {
          
    //Wurde alles ausgefüllt?
          
    if(empty($_POST['username']) || empty($_POST['password']) ||
                empty(
    $_POST['email'])) {
            die(
    "Bitte Alle Felder ausfüllen");
          }

          
    //User in Datenbank eintragen
          
    $sql "INSERT INTO us_er
                    (username, password, email)
                  VALUES
                    ('"
    .$_POST['username']."', '".MD5($_POST['password'])."',
                        '"
    .$_POST['email']."');";
          @
    mysql_query($sql) OR
            die(
    "Fehler beim anlegend des Benutzers\n");
          die(
    "Benutzer wurde erfolgreich hinzugefügt\n");
        }

        
    //Formular zum eintragen
        
    echo "<form action = \"add_user.php\" method = \"post\">";
        echo 
    "Username:<br>\n";
        echo 
    "  <input type = \"text\" name = \"username\"></input><br>\n";
        echo 
    "Passwort:<br>\n";
        echo 
    "  <input type = \"password\" name = \"password\"></input><br>\n";
        echo 
    "Email:<br>\n";
        echo 
    "  <input type = \"text\" name = \"email\"></input><br>\n";
        echo 
    "  <input type = \"submit\" value = \"Erstellen\"></input>\n";
        echo 
    "  <input type = \"reset\" value = \"Zurücksetzen\"></input>\n";
        echo 
    "</form>\n";
        } else echo 
    "Fehler beim einloggen";
    ?>
    so und ich bekomme immer die fehlermeldung: "Fehler beim einloggen"

    achja nochwas .. ich weiß das noch diverse sicherheitslücken bestehen, die man z.B. beheben könnte, indem man noch die IP in der session abspeichert und dann hinterher wieder vergleicht, aber ich wollte das script ansich erstmal zum laufen bekommen und alle nätigen sicherheitseinstellungen bzw. programmierungen dann später vornehmen, wenn das script läuft. .

    Mfg. b0unc3

  • #2
    ja mai,

    der fehler kommt, weil die bedingung in

    if (isset($_SESSION['ID'], $_SESSION['username'], $_SESSION['password'],
    $_SESSION['email'])) {

    nicht zutreffen. also debuggen...

    Kommentar


    • #3
      ja das ist mir klar, aber warum treffen sie nicht zu? wie müsste es denn richtig aussehen?

      //EDIT:

      wenn ich allerdings anstatt von dem header(), den include befehl verwende, dann bekomm ich das formular zum hinzufügen von benutzern angezeigt, aber dann leider auch noch das formular von der login.php . . .
      Zuletzt geändert von b0unc3; 22.07.2006, 14:13.

      Kommentar


      • #4
        also debuggen...

        Kommentar


        • #5
          ok, ich bin neu. . könntest du den begriff debuggen vielleicht etwas genauer definieren, bitte

          Kommentar


          • #6
            nee, sorry. danach kann man suchen. das sind absolute grundlagen.

            anonsten probier es mal mit testausgaben.

            Kommentar


            • #7
              naja meinen ersten eindruck von dem board hier hab ich ja jetz . . jeder war mal neu und fragen ist auch nicht verkehrt so kann man sich auch vieles aneignen . .aber naja . . was soll man auch anderes erwarten

              Kommentar


              • #8
                OffTopic:
                Du hast einen Eindruck von mir. Das Board kann nichts für seine User. Auch nicht für die, die keinerlei ...

                Kommentar


                • #9
                  teilweise stimm ich dir zu, aber wenn ich neu in eine community komme und dann sofort so nette bekanntschaften mache, dann kann ich mir auch gut vorstellen, dass es mehrere so leute hier gibt. . wär ja auch nix neues. . (will hier jetzt wirklich keinen beleidigen) . .

                  achja nochwas. . hab das jetzt mit dem php designer debuggt. . dann steht in meiner debug konsole aber auch nur "Fehler beim einloggen" . . hab ich da beim debuggen was verkehrt gemacht? oder steht da dann auch nicht mehr?

                  Kommentar


                  • #10
                    wie ich schon sagte, mach testausgaben. am besten von hand. gib mal die entsprechenden vars aus und gucke, welche davon existieren und welche nicht.

                    ein error_reporting auf E_ALL unterstützt dich dabei. (http://www.php-resource.de/forum/sho...threadid=50454)

                    Kommentar


                    • #11
                      ok, also ich hab jetzt schonmal hereusgefunden, dass die Inhalte der Session nicht übergeben werden, warum weiß ich bis jetzt noch nicht. . hab meinen code jetzt allerdings etwas "erweitert"

                      die weiterleitung lautet jetzt so:

                      PHP-Code:
                      header ("Location: add_user.php?".session_name()."=".session_id()); 
                      jetzt wird zwar die Session id hinten dran gehängt, aber trotzdem kommen die inhalte irgendwie nicht mit. .

                      weißt du da vielleicht rat? hab ich irgendwas vergessen?. . also muss ja eigentlich aber was?

                      Kommentar


                      • #12
                        session_id ist auf allen seiten die selbe?

                        wo werden die daten in die session eingetragen? werden sie wirklich eingetragen?

                        Kommentar


                        • #13
                          hier werden sie eingetragen:

                          PHP-Code:
                          $_SESSION['ID']         = $row['ID'];
                          $_SESSION['username']   = $row['username'];
                          $_SESSION['password']   = $row['password'];
                          $_SESSION['email']      = $row['email']; 
                          und ich kann sie auch gleich danach wieder ausgeben mit:

                          PHP-Code:
                          echo "ID: ".$_SESSION['ID']."<br>\n";
                          echo 
                          "Username: ".$_SESSION['username']."<br>\n";
                          echo 
                          "Passwort: ".$_SESSION['password']."<br>\n";
                          echo 
                          "Email: ".$_SESSION['email']."<br>\n"
                          //EDIT:

                          was muss ich denn anstatt von session_id() dahin schreiben?

                          Kommentar


                          • #14
                            PHP-Code:
                            <?php

                            session_start
                            ();
                            include 
                            "config.php";
                            include 
                            "functions.php";
                            in

                            PHP-Code:
                            <?php

                            session_start
                            ();
                            $sid session_id();

                            include 
                            "config.php";
                            include 
                            "functions.php";
                            PHP-Code:
                            header ("Location: add_user.php?sid=".$sid); 
                            probiers mal so...

                            Kommentar


                            • #15
                              nee, das geht leider auch nicht

                              //Edit:

                              hehe ich habs geschafft. . ich musste einfach in der 2ten datei oben auch noch die session starten und dann werden die werte auch richtig übergeben

                              Aber eine frage noch TobiaZ. . wusstest du das??
                              Zuletzt geändert von b0unc3; 22.07.2006, 17:56.

                              Kommentar

                              Lädt...
                              X