Вот элементарная вещь, а никак не работает :angry: Написал наброски авторизации пользователя.
КОД:
if(!$_POST['enter'])После
{
echo "
<form action=\"\" method=\"POST\">
<input type=\"text\" name=\"email\" value=\"E-Mail\"><br>
<input type=\"password\" name=\"pass\" value=\"Pass\"><br>
<input type=\"submit\" name=\"enter\" value=\"Отправить\">
</form>
";
} else {
include("db_conn.php");
mysql_select_db(CMS) or die(mysql_error());
$email=$_POST['email'];
$pass=md5($_POST['pass']);
$sql=mysql_query("SELECT * FROM administration WHERE `email`='".$email."' AND `pass`='".$pass."'") or die(mysql_error());
if($sql==TRUE)
{
$admin=mysql_fetch_array($sql);
echo $admin['email'];
echo "<br>".$admin['pass'];
echo "Вы вошли на сайт!";
} else {
echo "Доступ запрещён!";
}
?>
$admin=mysql_fetch_array($sql);выводится сообщение "Вы вошли на сайт!". Никаких $admin['email'] и $admin['pass'] в помине нет.
Подскажите пожалуйста, почему у меня в массиве пустота?
Спустя 14 минут, 45 секунд (11.01.2012 - 18:22) inpost написал(а):
if(!$_POST['enter']) - проверка на boolean, true or false. При этом в обоих случаях переменная должна существовать, иначе WARNING.
Чтобы не париться с кавычками, используй одинарные: echo '<div style="text">';, не забываем, что свойства аттрибутов тега должны быть в двойных!
Для инклюда скобки не нужны.
Запрос mysql_query вернёт TRUE в случае, если запрос не содержит ошибки. Ответы такие: есть 5 записей, есть 100 записей, есть 0 записей, но всё это есть ответы, и ссылка на ресурс, где ответ хранится. Проверка на то, есть ли указанная запись - mysql_num_rows(), то есть число, сколько таких записей есть в БД.
Чтобы не париться с кавычками, используй одинарные: echo '<div style="text">';, не забываем, что свойства аттрибутов тега должны быть в двойных!
Для инклюда скобки не нужны.
Запрос mysql_query вернёт TRUE в случае, если запрос не содержит ошибки. Ответы такие: есть 5 записей, есть 100 записей, есть 0 записей, но всё это есть ответы, и ссылка на ресурс, где ответ хранится. Проверка на то, есть ли указанная запись - mysql_num_rows(), то есть число, сколько таких записей есть в БД.
Спустя 12 минут, 14 секунд (11.01.2012 - 18:34) -=J@GU@R=- написал(а):
Цитата |
Проверка на то, есть ли указанная запись - mysql_num_rows() |
Исправил условие на mysql_num_rows($sql)==1 - теперь выводит "Доступ запрещён!"
Почему то выводит совсем другой хеш одного и того же пароля Неожиданно...
Спустя 4 минуты, 40 секунд (11.01.2012 - 18:39) inpost написал(а):
echo md5('Пароль');
Сделай и смотри, обновляй страницу. Может пробелы лишние, их убрать надо было через trim
Сделай и смотри, обновляй страницу. Может пробелы лишние, их убрать надо было через trim
Спустя 3 минуты, 33 секунды (11.01.2012 - 18:42) -=J@GU@R=- написал(а):
Цитата |
echo md5('Пароль'); Сделай и смотри, обновляй страницу. |
подставил свой пароль и мне выдал 3ий вариант... бред какой-то...
Спустя 6 минут, 33 секунды (11.01.2012 - 18:49) inpost написал(а):
-=J@GU@R=-
Может ты кодировку не указал на всех 6-и уровнях?
1. Через header().
2. В БД
3. Соединение с БД
4. htaccess
5. в теге <head>
6. Кодировка самого файла.
Чтобы убедиться, что беда в кодировке, протестируй пароль на цифрах или англ.символах.
Может ты кодировку не указал на всех 6-и уровнях?
1. Через header().
2. В БД
3. Соединение с БД
4. htaccess
5. в теге <head>
6. Кодировка самого файла.
Чтобы убедиться, что беда в кодировке, протестируй пароль на цифрах или англ.символах.
Спустя 7 минут, 16 секунд (11.01.2012 - 18:56) johniek_comp написал(а):
Спустя 2 минуты, 35 секунд (11.01.2012 - 18:59) -=J@GU@R=- написал(а):
Цитата |
Может ты кодировку не указал на всех 6-и уровнях? |
В БД cp1251, при выборе БД она же, файл в Windows-1251
Цитата |
Чтобы убедиться, что беда в кодировке, протестируй пароль на цифрах или англ.символах. |
пароль цифровой
Спустя 2 минуты, 48 секунд (11.01.2012 - 19:02) inpost написал(а):
Данные перед md5 обрабатываешь через trim?
Выведи отдельно пароль: echo md5('12345'); и echo md5(trim($_POST['pass']));
Выведи отдельно пароль: echo md5('12345'); и echo md5(trim($_POST['pass']));
Спустя 13 минут, 21 секунда (11.01.2012 - 19:15) -=J@GU@R=- написал(а):
Цитата |
вы наверно по видео урокам учились? |
нет, обошлось без них)
Цитата |
Выведи отдельно пароль: echo md5('12345'); и echo md5(trim($_POST['pass'])); |
Всем спасибо, вопрос решён... вывелись разные кэши... правда не понимаю почему( вводил без ошибок и без лишних символов...