2011-01-11 15 views
1
arbeiten
<body> 
<?php 
    session_start(); 

    function salt($pw) { 
     $salt = "This comment should suffice as salt."; 
     return sha1($salt.$pw); 
    } 

    if (isset($_POST['submit'])) { 
      $link = mysql_connect('localhost', 'codekadiya', 'pass'); 
     if (!$link) { 
      die('Could not connect: ' . mysql_error()); 
     } 

     echo 'Connected successfully'; 
     mysql_close($link); 

     $username = mysql_real_escape_string($_POST['username']); 
     $password = mysql_real_escape_string($_POST['password']); 
     $password = salt($password); 

     $query = mysql_query("SELECT * FROM test WHERE username='$username' AND password='$password'"); 

     if (mysql_num_rows($query)== 0) { 
      header("location:register.php"); 
      exit; 
     } 
     else { 
      $_SESSION['user'] = $username; 
      header("location: register.php"); 
     } 
    } 
?> 
</body> 

Ich habe auf meine Verbindung. Es sagt Verbindung erfolgreich, aber ich kann nicht herausfinden, was der andere Fehler ist. Kann mir jemand den Fehler erklären, den ich begangen habe? Ich kann es nicht finden.Login-Seite in PHP nicht

+0

Können Sie die HTML- und die Tabellenstruktur mit den Datentypen bitte posten? :) –

Antwort

8
echo 'Connected successfully'; 
mysql_close($link); 

Sie schließen also die Verbindung und versuchen dann, Abfragen auszuführen? Wie soll das funktionieren?

Sie sollten die Verbindung (mysql_close($link);) schließen, nachdem Sie Sie sind Abfrage in der Datenbank vorgenommen (dh nach $query = mysql_query("SEL.....)

+0

auch wenn ich mache, dass die $ query keine Zeilen nehmen. Warum das. kannst du mir helfen. es ist nicht auf die register.php seite – Nubkadiya

+0

richtend kann mich jemand führen. Ich konnte das Problem noch nicht finden. Dies wird nicht in die Datei register.php geleitet. und es wird nicht den Benutzernamen der Sitzung angezeigt. – Nubkadiya

+1

Wie speichern Sie das Passwort in der Datenbank? Umwandeln Sie es in 'sha1 ($ salt. $ pw);' bevor Sie es zur Datenbank hinzufügen? Grundsätzlich ändern Sie das Passwort, das der Benutzer übergibt, und passen es an das an, das Sie in der Datenbank haben, aber Sie müssen es zuerst in Ihrer Datenbank konvertieren. –

0

Sie haben uns wirklich nicht gesagt, was nicht genau funktioniert, aber es scheint, Sie sind Schließen der MySQL-Verknüpfung vor der Authentifizierungsabfrage.

0

i neigen nicht isset stattdessen verwenden ich, wenn nur verwenden ($ _ POST [ „etwas“]) auf diese Weise erhalte ich weitere relevante Fehler

auch - sind Sie die $ Link schließen, bevor Sie es verwenden - ???

+0

Wie können Sie relevantere Fehler mit if ($ var) erhalten? , isset() gibt es (in php) aus einem Grund, richtig? sollten wir es nicht benutzen? –

+0

Bei einigen Server-Setups müssen Sie isset verwenden. Andernfalls generieren sie eine Fehlermeldung, die angibt, dass die Variable nicht definiert ist (oder etwas in diesen Zeilen). –

+0

verdammt. aber der zweite Punkt war fraglos gültig. – tekknolagi