Во-первых, проверьте на ошибки ...
«Предоставленный аргумент не является допустимым ресурсом результатов MySQL», поскольку в вашем SQL-файле произошла ошибка, но вы не упростили себе жизнь, игнорируя неудачный запрос. Используйте mysql_error , чтобы получить сообщение об ошибке.
Во-вторых, правильно экранировать строки в SQL ...
Как только вы увидите ошибку, вы увидите, что вы пропустили некоторые кавычки в вашем запросе, но вы также должны экранировать строки, введенные в запрос, иначе вы уязвимы для атак SQL-инъекцией ...
$query = "SELECT username,password,id FROM login ".
"WHERE username='".mysql_real_escape_string($username)."' ".
"AND password='".mysql_real_escape_string($password)."' LIMIT 1";
$result = mysql_query($query);
if ($result)
{
$count = mysql_num_rows($result);
// if 1 then login them in set cookie and redirect
if($count==1){
setcookie("password", "".$password."", time()+3600);
setcookie("username", "".$username."", time()+3600);
header("Location:admin.php");
}else{
echo "Wrong Username or password combination";
}
}
else
{
echo "Error:".mysql_error()."<br>;
}
Всегда используйте mysql_real_escape_string при построении запроса или используйте библиотеку классов-оболочек, которая делает это для вас с параметризованными запросами, например PDO или ADODb
Наконец, слово об этих печеньках ...
Кроме того, вход в систему с помощью файла cookie с именем пользователя и паролем - не очень хороший способ для входа в систему. Помимо передачи пароля в открытом виде при каждом запросе, он очень уязвим для попытки кражи cookie. Учитывая ваш наивный подход к безопасности SQL, вы, вероятно, также оставите себя уязвимым для XSS атак, упрощая кому-то сбор этих куки:)