Login Bereich - SQL abfrage

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

  • Login Bereich - SQL abfrage

    Hi an alle, ich versuche einen loginbereich zu erstellen, aber da scheint was nicht richtig zu laufen.

    Ich gebe daten in ein formular ein, die dann via form action an checklogin.php weitergeleitet werden. Dort werden sie dan mit denen in der datenbank verglichen. Obwohl meine eingabe mit den daten in der db übereinstimmen, bekomme ich 0 rows zurück.

    warum frage ich mich.

    PHP-Code:
    $host="localhost"// Host name
    $username="XXXX"// Mysql username
    $password="XXXX"// Mysql password
    $db_name="XXXX"// Database name
    $tbl_name="XXXX"// Table name

    // Connect to server and select databse.
    $connect=mysql_connect("$host""$username""$password")or die("Verbindung zur Datenbank ist fehlgeschlagen !");
    mysql_select_db("$db_name")or die("Verbindung zur Datenbank ist fehlgeschlagen !");

    // username and password sent from form.
    $email=$_POST['email'];
    $pwd=$_POST['pwd'];

    $sql="SELECT * FROM $tbl_name WHERE email='$email' AND pwd='$pwd'";
    $result mysql_query($sql);

    // Mysql_num_row is counting table row.
    $count mysql_num_rows($result);
    echo 
    "$count rows ";
    print 
    mysql_error();


    // If result matched $myusername and $mypassword, table row must be 1 row.

    if($count=="1"){
    // Register $email, $pwd ,$usermod and redirect to file "login_success.php"
    session_register("usermod");
    session_register("email");
    session_register("pwd");
    header("location:login_success.php");
    }
    else {
    echo 
    "Wrong Username or Password";
    }
    ob_end_flush();
    print 
    mysql_error(); 
    kann mir da einer weiter helfen, das wäre ich super, weil das ein abschlusprojekt meiner schule ist. und wenn ich das problem nicht gelöst bekomme, ist eine schlechte note auf mein zeugnis sicher

  • #2
    Hallo,

    führe deinen Query mal so aus:

    mysql_query($sql) OR die(mysql_error());
    Zudem:
    error_reporting(E_ALL); ganz an den Anfang des Scripts...

    Speicherst du das PW wirklich plain in der DB? ALso unverschlüsselt statt mit md5() ?

    Tipp: Überprüfe deine Eingaben auch mal auf SQL-Injection

    Wozu du genau ob_end_flush unten benutzt, ist mir ein Rätsel..

    mfg

    Kommentar


    • #3
      In moment als plain, ich wollte wie gesagt erstmal das problem beiseite schaffen ^^

      ab das script umgestellt, es wird wie vorher kein fehler ausgegeben, nur das es halt immernoch 0 rows sind ^^

      zum haare ausreißen nicht wahr ^^

      edit: ich habe jetz auch injection schutz mit eingebaut.

      leider immernoch 0 rows
      Zuletzt geändert von knobi; 08.03.2008, 13:04.

      Kommentar


      • #4
        schonmal die fertige query mittels
        PHP-Code:
         echo $sql
        ausgeben lassen und in PHPMYAdmin ausgeführt? Desweiteren werden Variablen nicht mit " " augegeben, sondern, so wie hier.
        Zuletzt geändert von krel; 08.03.2008, 13:47.

        Kommentar


        • #5
          das wird ausgegeben


          PHP-Code:
          NoticeUndefined index9003d1df22eb4d3820015070385194c8 in /users/knobi/www/e-movie/checklogin.php on line 16
          SELECT 
          FROM user WHERE email='emg-knobi@web.de' AND pwd=''1rows
          Warning
          session_register() [function.session-register]: Cannot send session cookie headers already sent by (output started at /users/knobi/www/e-movie/index.php:5in /users/knobi/www/e-movie/checklogin.php on line 36

          Warning
          session_register() [function.session-register]: Cannot send session cache limiter headers already sent (output started at /users/knobi/www/e-movie/index.php:5in /users/knobi/www/e-movie/checklogin.php on line 36

          Warning
          Cannot modify header information headers already sent by (output started at /users/knobi/www/e-movie/index.php:5in /users/knobi/www/e-movie/checklogin.php on line 39 
          edit:

          die daten kommen jetz richtig an und er kann auch vergleichen, aber es wird immernoch das ausgegeben

          PHP-Code:
          Warningsession_register() [function.session-register]: Cannot send session cookie headers already sent by (output started at /users/knobi/www/e-movie/index.php:4in /users/knobi/www/e-movie/checklogin.php on line 36

          Warning
          session_register() [function.session-register]: Cannot send session cache limiter headers already sent (output started at /users/knobi/www/e-movie/index.php:4in /users/knobi/www/e-movie/checklogin.php on line 36

          Warning
          Cannot modify header information headers already sent by (output started at /users/knobi/www/e-movie/index.php:4in /users/knobi/www/e-movie/checklogin.php on line 39 
          Zuletzt geändert von knobi; 08.03.2008, 14:31.

          Kommentar


          • #6
            Bitte Mal deine Fehlermeldungen umbrechen...
            Keine Lust horizontal zu scrollen..

            zum Fehler:

            http://php-resource.de/forum/showthr...threadid=62965

            mfg

            Kommentar


            • #7
              das vorher keine ausgabe erzeugt werden darf weiss ich ja.
              aber wie löse ich das jetzt, laut der beschreibung aus dem link, müsste ich alle ausgaben beseitigen die vor dem <br /> erzeugt werden, das ist in meinem fall die komplette index.php

              ich denk einfach mal das tut er weil ich die checklogin.php in die index.php includiere, aber wie bekomme ich das hin, das ich vor dem header keine ausgabe bekomme ohne die index.php zu löschen ;D

              Kommentar


              • #8
                Würd es so lösen

                PHP-Code:

                <?php

                include("../include/include_mysql.inc.php");
                        

                if (isset(
                $_POST["hidden"]) && $_POST["hidden"]==1){
                    
                $user $_POST["username"];
                    
                $pass $_POST["password"];
                    
                $sql "SELECT * FROM cms_user WHERE username='$user' AND password='$pass'";
                    
                $rs mysql_query ($sql);
                    
                $aZeile mysql_fetch_array($rs);
                            
                        
                if (
                $aZeile['username'] !="" && $aZeile['password'] !=""){    
                    
                // Eintritt erlaubt weiterleiten
                        
                header("location:cms_menu.php");
                        }
                    else{
                          
                // Wenn Passeort falsch oder Username falsch   
                            
                $meldung "Fehler beim anmelden!!";
                          }

                }
                So hab ich das bei mir gelöst!!!
                mfg
                Satox

                Kommentar


                • #9
                  und was ist mit den sessions ? weil die brauche ich, damit die seite nicht gleich wieder vergisst das ich angemeldet bin.

                  Kommentar

                  Lädt...
                  X