Правильный отчет об ошибках для переполнения стека

Я работаю над сценарием php, который проверяет пользователей, которые вошли в систему, включая проверку того, что они ввели адрес электронной почты и пароль, подключение к sql и проверку данных, регистрацию сеанса и обновление времени входа в систему.

Скрипт не работает, когда пользователь заполняет форму и направляется на эту страницу, он переходит прямо к сообщению об ошибке внизу после инструкции ELSE. Это не обновляет last_login в sql.

Мне было интересно, как я начинаю устранять неполадки этого сценария, где я могу разместить обработку ошибок?

session_start();
include 'dbconuser.php';
//post var
$email_address = $_POST['email_address'];
$password = $_POST['password'];
//check both fields completed
if((!$email_address) || (!$password))
{
echo "Please enter ALL of the information!<br/>";
include 'login.htm';
exit();
}

$password = md5($password);
//connect and check data
$sql = mysqli_query($connection, "SELECT * FROM users WHERE email_address='$email_address' AND password='$password' AND activated='1'");
$login_check = mysqli_num_rows($sql);

if($login_check > 0)
{
while($row = mysqli_fetch_array($sql))
{
foreach( $row AS $key => $val )
{
$key = stripslashes( $val );
}

// register session
$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['email_address'] = $email_address;
$_SESSION['user_level'] = $user_level;

mysqli_query($connection, "UPDATE users SET last_login=now() WHERE userid='$userid'");
header("Location: index.php");
}
}
//error
else
{
include 'login_error.htm';
echo "You could not be logged in! Either the email_address and password do not match or you have not validated your membership!<br />
Please try again!<br />";
}

-1

Решение

смешивание mysql а также mysqli Сначала измените ваш запрос на mysql (устарело), ​​потому что вы используете, остаются все mysql_*

$sql = mysql_query("SELECT * FROM users WHERE email_address='$email_address' AND password='$password' AND activated='1'");

session_register() а также mysql_* устарел, так что используйте $_SESSION скорее session_register и использовать mysqli_* скорее mysql_*

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]