Problem mit Login-Script

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

  • Problem mit Login-Script

    Hallo

    Ich möchte folgendes realisieren: ich habe drei Seiten (index.php, login.php und admi.php). Von index.php gibt es einen Link zu login.php, auf der man
    sich einloggen soll. Dazu habe ich eine SQL Datenbank erstellt, in der mehrere User ($user) und Passwörter ($pw) eingetragen sind. Bei erfolgreichem Login soll man zur Seite admin.php kommen; falls der login fehlschlägt, dann soll sich die Login-Seite nochmal selbst aufrufen.

    Ich dachte, dass dies ganz einfach ist, aber irgendwie komme ich nicht weiter.

    Mein Formular für das Login lauet in Auszügen:

    PHP-Code:
    <form method='post' action="<?php echo basename($PHP_SELF);?>"
        onSubmit="return chk_loginform()"   //chk_loginform prüft nur, ob PW und Name eingegeben wurden
                  method="POST"
                  name="loginform">
    .....

    <input
                 type="password"
                 name="pw_login"
                 value=""
                 size="20"
                 maxlength="20">
    <input
                 type="hidden"
                 name="proof"
                 value="true">
    ....

    <input
                 type="submit"
                 value="<?php echo $btn_login?>">
    <input
                 type="button"
                 value="<?php echo $btn_close?>"
                 onClick="back()">
    Ganz oben im Script steht nach den ganzen includes dann:

    PHP-Code:

    ...

      if (!empty($_GET['proof'])) {                     //habe es auch schon mit (!empty($proof)) probiert
        $query  = "SELECT * FROM $tbl_admin";
        $query .= "WHERE user = '$user_login'";
        $query .= "AND pw = '$pw_login'";

        $admin = mysql_query($query) or die("$tbl_msg");

        $number = mysql_num_rows($admin);

        if ($number == 1) {
          ?>

          <SCRIPT LANGUAGE="JavaScript">
            window.location.href="admi.php";
          </SCRIPT>

          <?php
          
    exit;
        }
      }
    Mein Problem ist nun, dass dieser Teil anscheinend nicht funktioniert. Ich glaube, die Datenbankabfrage startet erst gar nicht, denn egal, was ich eingebe, es baut sich die loginseite wieder auf.

    Sieht jemand den Fehler??


  • #2
    vielleicht solltest Du auch mal das $_POST array benutzen wenn das deine REQUEST_METHOD ist und $PHP_SELF is veraltet nimm das superglobal array $_SERVER

    Ausserdem musst Du in admi.php noch einen schutz einbauen sonst rufe ich sie direkt auf und bin drin also schau dir mal sessions an
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Was ist ein $_POST Array und wie nutze ich das?

      Kommentar


      • #4
        du hast in deinem formular method="post" stehen

        die daten, die der benutzer eintippt stehen daher in $_POST und nicht in $_GET

        $_POST kannst du genauso nutzen wie $_GET
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Wo wird deine MySQL Connection aufgebaut?

          Kommentar


          • #6
            Danke, jetzt habe ich es begriffen.
            Ok, ich habe den Teil jetzt geändert und so startet jetzt auch die Datenbankabfrage

            PHP-Code:
            $pw_login $_POST['pw_login'];
            $user_login $_POST['user_login'];

              if (!empty(
            $_POST['proof'])) {
                
            $query  "SELECT * FROM $tbl_admin";
                
            $query .= "WHERE user = '$user_login'";
                
            $query .= "AND pw = '$pw_login'";

                
            $admin mysql_query($query) or die("$tbl_msg"); 
            Findet ihr vielleicht noch einen Fehler? Ich bekomme jetzt meine $tbl_msg angezeigt, also stimmt vielleicht etwas mit meiner SQL Abfrage noch nicht

            Kommentar


            • #7
              wwas sagt denn mysql_error() ?
              wo ist deine db connection?
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Meine Verbindung ist in einer Datei connect.inc.php die included wird:

                PHP-Code:
                  //  Verbindung zu Datenbank-Server herstellen
                  
                $cnx = @mysql_connect($host$user$pw)
                         or die(
                $cnx_msg);

                  
                //  Verbindung mit Datenbank herstellen
                  
                @mysql_select_db($dbname$cnx)
                    or die(
                $db_msg); 
                aber das scheint zu funktionieren, denn da bekomme ich keine Fehlermeldiungen (nicht $cnx_msg und nicht $db_msg)

                Meine Meldung muß aus dieser Zeile kommen:
                PHP-Code:
                 $admin mysql_query($query) or die("$tbl_msg"); 
                denn als Fehlermeldung bekomme ich den Text, den ich unter der Variablen $tbl_msg gespeichert habe.

                @MelloPie: Kann ich mir mysql_error() irgendwie anzeigen lassen?

                Kommentar


                • #9
                  mysql_error kannst du so ausgeben:
                  ...or die(mysql_error());

                  Forumregeln!

                  Gute PHP-(tutorial-)Seiten

                  Kommentar


                  • #10
                    Leute, ihr seid echt prima - ich habe so einiges dazugelernt
                    Ich hatte in meiner SQL Query ein Leerzeichen vergessen,
                    aber jetzt klappt mein Script.
                    Vielen Dank für die Hilfe!!!!!!!!

                    Kommentar

                    Lädt...
                    X