Я новичок в PHP, и у меня возникла проблема с моим сценарием входа в систему, на который я потратил часы, и не могу понять, где я ошибаюсь.Ошибка входа в систему PHP
Всякий раз, когда я пытаюсь войти в систему, меня приветствует: «Либо введенный адрес электронной почты, ни пароль не совпадают с инструкциями в файле или вы еще не активировали свою учетную запись» в соответствии с моим кодом ниже. Адрес электронной почты и пароль хранятся в базе данных и введены с использованием моего скрипта регистрации и активации, которые работают нормально, а также подключаются к моей базе данных через скрипт подключения MySQL, а также используют сценарий конфигурации.
Я действительно построил этот скрипт, основываясь на курсе, который я принимаю, который сейчас немного касается !!
Если у кого-нибудь есть совет, куда я иду не так, я был бы очень благодарен.
Большое спасибо заранее!
<?php # login.php
include ('./includes1/headerregistration.html');
require_once ('./includes1/config.php');
$page_title = 'Login';
if (isset($_POST['submitted'])) { // Check if the form has been submitted.
require_once ('./mysql_connect.php');
// Validate the email address.
if (!empty($_POST['email'])) {
$e = escape_data($_POST ['email']);
}
else {
echo '<p><font color="red"size="+1"> You forgot to enter your email address!
</font></p>';
$e = FALSE;
}
// Validate the password.
if (!empty($_POST['pass'])) {
$p = escape_data($_POST ['pass']);
}
else {
$p = FALSE;
echo '<p><font color="red"size="+1"> You forgot to enter your password!
</font></p>';
}
if ($e && $p) { // If everything's OK.
// Query the database.
$query = "SELECT id, first_name FROM Jobseekers WHERE (email='$e' AND pass=SHA('$p')) AND active IS NULL";
$result = mysql_query ($query) or trigger_error("Query: $query\n <br />MySQL Error: " . mysql_error());
if (@mysql_num_rows ($result) == 1) { // A match was made.
// Register the values & redirect.
$row = mysql_fetch_array ($result,MYSQL_NUM);
mysql_free_result($result);
mysql_close();
$_SESSION['first_name'] = $row[1];
$_SESSION['id'] = $row[0];
// Start defining the URL.
$url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
// Check for a trailing slash.
if ((substr($url, -1) == '/') OR(substr($url, -1) == '\\')) {
$url = substr ($url, 0, -1); // Chop off the slash.
}
// Add the page.
$url .= '/indexregtest.php';
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}
else { // No match was made.
echo '<p><font color="red"size="+1">Either the email address and password entered do not match those on file or you have not yet activated your account.</font></p>';
}
}
else {
echo '<p><font color="red"size="+1">Please try again.</font></p>';
}
mysql_close();
} // End of SUBMIT conditional.
?>
<h1>Login</h1>
<p>Your browser must allow cookies in order to log in.</p>
<form action="login.php"method="post">
<fieldset>
<p><b>Email Address:</b> <input type="text" name="email" size="20" maxlength="40" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /></p>
<p><b>Password:</b> <input type="password" name="pass" size="20" maxlength="20" /></p>
<div align="center"><input type="submit" name="submit" value="Login" /></div>
<input type="hidden" name="submitted" value="TRUE" />
</fieldset>
</form>
<?php
include ('./includes1/footerregistration.html');
?>
html теги 'font' и библиотека' mysql_ * 'устарели. Вы вообще шифруете данные при регистрации? Если это так, сравните зашифрованные значения при проверке. – julienhaversano
@OP Вы уверены, что ваша база данных okey? У вас может быть двойная запись – Sanoob
'И активная NULL'. Вы имели в виду 'AND active IS NOT NULL'? – Sasha