Login über mysql Abfrage und Session ! Problem

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

  • Login über mysql Abfrage und Session ! Problem

    Hi Boardies,

    komme momentan einfach nicht weiter, ich bastel gerade an einem Login Script, bevor Ihr jetzt sagt ja kennen wir wurde schon 1000 mal hier im Forum besprochen etc. Ich möchte es von Grund auf selber machen ohne Codeschnipsel usw.

    Also mein Code:

    PHP-Code:
    <?php
    include ("../include/db_connect.inc.php");

    $form_username=$_POST[username];
    $form_userpw=$_POST[userpw];

    $sql mysql_query("SELECT username, userpw FROM tbl_user WHERE `username` AND `userpw` LIKE '$form_username' AND '$form_userpw'"); 

    $result mysql_query($sql) or die(mysql_error()); 
    while(
    $row mysql_fetch_array($result))


    if (  (
    $form_username == $row['username']) && ($form_userpw == $row['userpw'])  )
            
                {
                echo (
    "OK");
                
    session_start();
                
    session_register("username");
                
    header ("location: profil.php");            
                }
            
            else         
                {
                echo (
    "Login failed");
                }

    }

    /
    ?>
    Wenn ich dann Username und PW eingebe bekomme ich folgende fehlermeldung:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1

    Habt ihr eine Ahnung was ich falsch mache ?

    Danke im Vorraus


    Tom

  • #2
    Re: Login über mysql Abfrage und Session ! Problem

    PHP-Code:
    $sql mysql_query("SELECT ..."); 
    $result mysql_query($sql) or die(mysql_error()); 
    Das geht so nicht. mysql_query() erwartet einen String, beim zweiten Aufruf übergibst du der Funktion aber eine Resource, nämlich den Zeiger aufs Ergebnis des ersten Aufrufs.

    So wirds was:
    PHP-Code:
    $sql "SELECT ..."
    $result mysql_query($sql) or die(mysql_error()); 

    Kommentar


    • #3
      Danke für die schnelle Antwort ! Jetzt bin ich schonmal ein Stück weiter ...

      Kommentar


      • #4
        mmh leider bekomme ich keine Ausgabe bzw. funktioniert es nicht. Ist meine abfrage den so richtig ?

        PHP-Code:
        while($row mysql_fetch_array($result))


        if (  (
        $form_username == $row['username']) && ($form_userpw == $row['userpw'])  )
                
                    {
                    echo (
        "OK");
                    }
                
                else         
                    {
                    echo (
        "Login failed");
                    }


        Kommentar


        • #5
          Das ist Blödsinn, aber der geht schon weiter oben mit deinem SQL-Statement los.

          Ich empfehle dringend
          http://ffm.junetz.de/members/reeg/DSP/
          http://www.schattenbaum.net/php/

          Kommentar


          • #6
            Benutze bitte mysql_error(), so wie es auch in den Regeln erwähnt wird.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              @wahsaga: Das tut er bereits, doch seine Query ist scheinbar syntaktisch korrekt.

              Kommentar


              • #8
                Ähm hab ich was verbrochen ? Verstehe euch gerade nicht ?!

                Kommentar


                • #9
                  Original geschrieben von onemorenerd
                  @wahsaga: Das tut er bereits, doch seine Query ist scheinbar syntaktisch korrekt.
                  Stimmt - aber logisch ziemlicher Unfug (WHERE-Bedingung).
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Also hab meinen Code nun so verändert:

                    PHP-Code:
                    <?php
                    include ("../include/db_connect.inc.php");

                    // Deklarationen
                    $form_username=$_POST[username];
                    $form_userpw=$_POST[userpw];


                    //Abfrage

                    $sql ="SELECT vorname,username,userpw FROM tbl_user"

                    $result mysql_query($sql) or die(mysql_error()); 

                    while(
                    $row mysql_fetch_array($result))

                    echo 
                    $row['vorname'];
                    echo 
                    '<br>';
                    echo 
                    $row['username'];
                    echo 
                    '<br>';
                    echo 
                    $row['userpw'];
                    echo 
                    '<br>';
                    }
                    $checkuser=( ($form_username == $row['username']) && ($form_userpw == $row['userpw']) );


                    if (
                    $checkuser)
                            
                                {
                                echo (
                    "OK");
                                }        
                    else         
                                {
                                echo (
                    "FAILED");
                                }




                    /* Session 
                    <?php
                        session_start();
                        session_unregister("username");
                        ?>
                        
                        <?php
                        session_start();
                        ?>

                    ?>
                    */

                    ?>
                    Die abfrage liefert die richtigen Attribute, nur leider werden meine Formulareingaben nicht richtig mit den DB Attributen verglichen.

                    Die Username-Passowort Kombination test,test funktioniert nicht und liefert immer Login Failed. Ohne Username und PW liefert es immer Login OK.

                    Was ist daran falsch ?

                    Kommentar


                    • #11
                      Damit die Suche eingeschränkt wird würde ich folgendes Suchkriterium benutzen:
                      PHP-Code:
                      $sql ="SELECT vorname,username,userpw FROM tbl_user where username=".$_POST['username']; 
                      MfG
                      Bauer

                      Kommentar

                      Lädt...
                      X