2011-01-11 3 views
1
<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> 

я проверил на моем Connection. Это говорит о успешной связи, но я не могу понять, что это за ошибка. Может ли кто-нибудь вести меня с моей ошибкой? Я не могу найти его.Войти Страница в PHP не работает

+0

Можете ли вы разместить HTML и структуру таблицы с типами данных, пожалуйста? :) –

ответ

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

Итак, вы закрываете соединение, а затем пытаетесь запустить запросы? как это должно получиться?

Вы должны закрыть соединение (mysql_close($link);) после того, как вы сделали вы будете запрос к базе данных (т.е. после $query = mysql_query("SEL.....)

+0

, даже если я делаю, что $ query не берет никаких строк. почему это. можешь мне помочь. его не направляя на страницу register.php – Nubkadiya

+0

может кто-нибудь мне навестить. Я все еще не смог найти проблему еще. это не связано с файлом register.php. и он не будет показывать имя пользователя сеанса. – Nubkadiya

+1

как вы храните пароль в базе данных? вы конвертируете его в 'sha1 ($ salt. $ pw);' перед добавлением его в базу данных? в основном вы меняете пароль, который вы передаете пользователю, затем вы сопоставляете его с тем, который у вас есть в базе данных, но вам нужно сначала преобразовать его внутри вашей базы данных. –

0

Вы на самом деле не сказал нам, что не работает точно, но, кажется, вы закрывая ссылку MySQL перед запросом проверки подлинности.

0

я не склонен использовать isset вместо я просто использовать, если ($ _ POST [ «что-то»]), что путь я получить более релевантную ошибку позиционирования

также - вы закрываете $ ссылку, прежде чем использовать его - ???

+0

как вы можете получить более релевантные ошибки с if ($ var)? , isset() есть (в php) по какой-то причине? разве мы не должны его использовать? –

+0

Некоторые настройки сервера требуют использования isset, иначе они генерируют сообщение об ошибке, указывающее, что переменная не определена (или что-то в этом ряду). –

+0

darn. но второй пункт был, несомненно, действительным. – tekknolagi

Смежные вопросы