2015-04-21 7 views
-1

так я написал этот код для страницы входа в PHPPHP код Логин не работает

<?php 
function SignIn() { 
    session_start(); //starting the session for user profile page 
    if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
     $query = mysql_query("SELECT * FROM register where Username = '$_POST[username]' AND Password = '$_POST[password]'") or die(mysql_error()); 
     $row = mysql_fetch_array($query) or die(mysql_error()); 
     if(!empty($row['Username']) AND !empty($row['Password'])) { 
      if($password = $row['Password']) { 
       $_SESSION['Username'] = $row['Password']; 
       echo "welcome ".$row['Name']; 
      } 
      if ($password != $row['Password']) { 
       echo "Something went wrong!" ; 
      } 
     } 
    } 
} 

if(isset($_POST['submit'])) { 
     SignIn(); 
} 
?> 

Моя проблема заключается в том, что в то время как Логин часть работает отлично (когда я дать правильный пароль), когда я даю неправильный пароль он не показывает сообщение, которое я установил для эха, но вместо этого показывает пустую страницу .... я много раз пытался, но результата не мог ... может кто-то, пожалуйста, помогите мне?

ответ

2

Вашего первого IF заявления устанавливают $password к значению $row['password']:

if($password = $row['Password']) 

Когда ваши вторым, если начинается заявление, $password таким же, как $row['password'] и условие равно false:

if($password != $row['Password']) 

Решение состоит в том, чтобы изменить первое, если утверждение сравнительному равна:

if($password == $row['Password']) 

Примечания Есть два = символов? Это говорит PHP, чтобы проверить, что они имеют одинаковое значение.

+0

Я думаю, что Ричард прав. Просто попробуйте – SINGH

1

Вы, кажется, пропустил знак =:

if($password = $row['Password']) 

как таковой вы не делаете сравнение, но назначение. Я ожидаю, что это должно быть:

if($password == $row['Password']) 
1

попробовать этот

function SignIn() { 
session_start(); //starting the session for user profile page 
    if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
    $query = mysql_query("SELECT * FROM register where Username = '$_POST[username]' AND Password = '$_POST[password]'") or die(mysql_error()); 
    $row = mysql_fetch_array($query) or die(mysql_error()); 
    if(!empty($row['Username']) && !empty($row['Password'])) { 
     if($password == $row['Password']) 
     { 
      $_SESSION['Username'] = $row['Password']; 
      echo "welcome ".$row['Name']; 

     } 
     else 
      echo "Something went wrong!" ; 
    } 

    } 

    } 
1

второе, если условие должно быть вне первого, если условие ..

вы также назначая пароль для $_SESSION['Username'] вместо $row['Username']. я редактировал код .. смотрите ниже

<?php 
    function SignIn() { 
     session_start(); //starting the session for user profile page 
     if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
     { 
      $query = mysql_query("SELECT * FROM register where Username = '$_POST[username]' AND Password = '$_POST[password]'") or die(mysql_error()); 
      $row = mysql_fetch_array($query) or die(mysql_error()); 

      if(!empty($row['Username']) AND !empty($row['Password'])) { 
      if($_POST['password'] = $row['Password']) 
      $_SESSION['Username'] = $row['Username']; 
      echo "welcome ".$row['Username']; 
      } 

      if ($_POST['password'] != $row['Password']) { 
       echo "Something went wrong!" ; 
      } 
     } 
    } 

    if(isset($_POST['submit'])) { 
      SignIn(); 
    } 


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