Я уже говорил одному человеку тут, что нельзя так делать
$result = mysql_query("SELECT * FROM Clients WHERE login='$login'",$db); /
$myrow = mysql_fetch_array($result);
if(empty($myrow['password'])){
}
У вас в принципе не правильно всё сделано, вам достаточно посчитать количество совпадений в базе, и не надо тянуть данные из неё. Вот пример на PDO используйте его:
/*Подключение к бд разумеется в отдельном файле, а лучше вообще освоить ООП*/
$dsn = "mysql:host=".$host.";dbname=".$db.";charset=".$charset."";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn, $user, $pass, $opt);
/*Ваш запрос*/
$query = $pdo->prepare('SELECT COUNT(*) FROM users WHERE login = :login AND password = :password');
$query->execute(array(':login'=>$login, ':password' =>$password));
if($query->fetchColumn() == 1){
}
Учите то, что актуально, а не то, что мертво:
PDO официальная документация
А теперь к сути вопроса. Вот такой вариант у меня заработал в итоге:
session_start();
include ("BD_for_users.php");
if(isset($_POST['login']) && isset($_POST['password'])) {
$login = $_POST['login'];
$password = $_POST['password'];
if(empty($login) OR empty($password)){
exit ('<script>alert("Дла начала заполните поля!");</script>');
}
$login = trim(stripslashes(htmlspecialchars($login)));
$password = trim(stripslashes(htmlspecialchars($password))); // надо хранить хеш пароля, а не в чистом виде
$result = mysql_query("SELECT * FROM Clients WHERE login='".$login."' AND password='".$password."'");
$row = mysql_fetch_array($result);
$myrow = mysql_num_rows($result);
if ($myrow == 1){
$_SESSION['login'] = $row['login'];
$_SESSION['id'] = $row['id'];
echo "Вы успешно вошли на сайт! <a href='For_users.php'>Личный кабинет</a>";
}else{
exit ('<script>alert("Извините, введённый вами логин или пароль неверный.");</script>');
}
}
?>