Ankündigung

Einklappen
Keine Ankündigung bisher.

problem mit login

Einklappen

Neue Werbung 2019

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

  • problem mit login

    wunderschönen guten tag...

    ...ich bin noch nicht all zu lang dabei mit php und mysql zu arbeiten...so als voraus..

    nun zu meinem problem: ich will ein login für einen geschützten bereich machen, habe dazu auch schon mein script entwickelt. datenbank verbindung funzt auch (sehe ich bei der Usernamen-Auswahl). ich gebe mein passwort richtig ein und dücke login....alle angaben korrekt...doch nun das problem - er springt immer direkt in die "else-schleife" und gibt "Die Eingabe war falsch! Bitte den Namen und das Passwort überprüfen!" aus...woran mag das liegen, ich finde leider nix! könntet ihr mir bitte weiterhelfen...ich find das script soweit eigentlich (mit meinen noch ungeschulten augen) ganz okay!

    Code:
    <html>
    <head>
    <title>LogIn</title>
    </head>
    
    <body>
    <div align="center">
    <?php
    // Datenbankverbindung
    $db=mysql_connect("***","****","***") or die ("Verbindung fehlgeschlagen");
    mysql_select_db("***",$db);
    $user_sql="SELECT * FROM user ORDER BY user_name ASC";
    $user_result=mysql_query($user_sql,$db);
    
    
    if($login)
    {		
    	// PW des gewählten Users einlesen
    	$userpw_sql="SELECT user_pw FROM user WHERE user_name=$name";
    	$userpw_result=mysql_query($userpw_sql,$db);
    	
    	// Vergleich pw-Eingabe mit pw-Datenbank
    	if($pw==$userpw_result['user_pw'])
    	{
    		echo "<a href=index.php></a>";
    	}
    	else
    	{
    		echo "Die Eingabe war falsch! Bitte den Namen und das Passwort überprüfen!";
    	}
    }
    else
    {
    ?>
    
    <form action="login.php" method="post">
    	<table>
    		<tr>
    			<div align="center">
    			<select name="name">
    				<?php
    					//Dieser Teil sorgt für die Ausgabe der Namen 
    					while($user=mysql_fetch_array($user_result))
    				{ ?>
    					<option><?php echo $user['user_name'];
    					$name=$user['user_name'];
    					?></option>
    				<?php 
    				}
    				?> 
    			</select>
    			</div>
    		</tr>
    		<tr>
    			<div align="center">
    			<input type="password" name="pw">
    			</div>
    		</tr>
    		<tr>
    			<div align="center">
    			<input type="submit" name="login" value="Anmelden">
    			</div>
    		</tr>
    	</table>
    </form>
    <?php
    }
    mysql_close();
    ?>
    
    </div>
    </body>
    </html>


  • #2
    Überprüf mal ob der SQL Befehl mit deiner Tabelle übereinstimmt, gib am besten das eingegebene Passwort und das Passwort in der Datenbank per echo aus, wenn das in der Datenbank leer ist, dann ist es sicher der SQL Befehl.

    Kommentar


    • #3
      Loginsystem mit PHP und Sessions
      http://www.developers-guide.net/foru...es-loginsystem
      privater Blog

      Kommentar


      • #4
        Naja, ich glaube nicht dass es ihm was nutzt, er will ja aus seinen Fehlern lernen und selbst ein Loginsystem schreiben, und ich glaube er hat noch keine Erfahrungen mit Sessions gemacht.

        Kommentar


        • #5
          deblu hat recht...in beiden dingen....

          das andere werde ich ausprobieren

          Kommentar


          • #6
            Zitat von Deblu
            Naja, ich glaube nicht dass es ihm was nutzt, er will ja aus seinen Fehlern lernen und selbst ein Loginsystem schreiben
            Schon mal was von "Ideen sammeln" gehört?

            Zitat von Deblu
            ich glaube er hat noch keine Erfahrungen mit Sessions gemacht.
            http://www.developers-guide.net/foru...ion-uebergeben
            privater Blog

            Kommentar


            • #7
              er gibt mir ein leeres passwort von seiten der datenbank aus....was ist denn bei dem sql-befehl falsch?

              Kommentar


              • #8
                Tjoa. Das kann man selbst rausfinden.
                mysql_error()

                EOT.
                privater Blog

                Kommentar


                • #9
                  Welcher SQL-Befehl? Lern mal deine Fragen gezielt zu stellen, dann kriegste auch gute Antworten

                  Code:
                  SELECT * FROM user ORDER BY user_name ASC
                  Den kannst du nämlich kaum meinen, denn wenn ein Passwort-Feld darin ist und du angeblich ein leeres empfängst, dann gibts es nur 3 Möglichkeiten:

                  a) es gibt keine Passwortspalte in dieser Tabelle
                  b) eine Passwortspalte ist vorhanden, aber das Feld ist wirklich leer
                  c) du verarbeitest den Rückgabewert des Queries falsch

                  Kommentar


                  • #10
                    wenn denn muss es dieser code sein, der falsch ist....denn dort holt er sich ja das passwort für den entsprechenden user:

                    Code:
                    $userpw_sql="SELECT user_pw FROM user WHERE user_name=$name";
                    a) pw-spalte gibt es
                    b) felder sind alle gefüllt
                    c) kann sein?!?!

                    Kommentar


                    • #11
                      var_dump(mysql_result(mysql_query("SELECT user_pw FROM user WHERE user_name = '$name' LIMIT 1"),0));

                      Führ das mal aus und zeig uns das Ergebnis.

                      user_name = $name ist Absicht? Ohne Anführungszeichen? Außerdem solltest du ein LIMIT 1 machen, kann erheblich schneller sein und du erwartest ja sowieso nur ein Ergebnis.

                      Kommentar


                      • #12
                        ich werde das am wochenende ausfürhen und sonntag posten...danke vorerst erstmal

                        Kommentar

                        Lädt...
                        X