Top-tompak, потому что $user['name'] и $user['password'] глобальные переменные, а внутри функции локальные переменные с теми же именами и их не существует. Прям безысходность XD
- 07.05.2013 18:14
Спасибо сказали:
Top-tompak(07.05.2013), - 07.05.2013 19:01
brainix, как как? Не понял
Можете подробней!
---------- Сообщение добавлено 14:00 ---------- Предыдущее 13:19 ----------
Проверил через print_r: $_POST['name'] показывает пустое поля почему?
---------- Сообщение добавлено 14:01 ---------- Предыдущее 14:00 ----------
Хотя я его передаю - 07.05.2013 19:02
Top-tompak, а $name и $password - это строки?
Если да, попробуйте через strcmp. - 07.05.2013 19:14
Top-tompak, не знал что global $user; передает в функцию переменную извне, пардонте. Если print_r внутри функции выводит $user, то с этой темой все норм.
А чтобы понять почему print_r: $_POST['name'] показывает пустое поле, нужен код html в котором висит эта форма. Начиная с тега <form>.Спасибо сказали:
Top-tompak(08.05.2013), - 07.05.2013 23:01
Top-tompak,
Маленький отрывок кода конечно
в общем введите перед globalКод:Если массив содержит переменные, то... ошиблись в самих переменных массива... Может быть у вас какой-нибудь $_POST['form_name'] или чет в этом духе.echo "Массив: <pre>"; print_r($_POST); echo "</pre>";
Если массив пустой, это значит что никакого POST вы не передаете, может быть GET? А может быть не там вызываете функцию, потеряли post из-за какой-нибудь переадресации...
Вы через ajax, или на прямую передаете POST?
и что это даст?Спасибо сказали:
Top-tompak(08.05.2013), - 08.05.2013 11:13
Оказывается я изменил form на get и обратно поставить забыл. Сейчас заново есть $_POST['name']. То что прикол if не работает.
PHP код:От кодировки зависит? ==if($name == $user['name'] and $password == $user['password'])
---------- Сообщение добавлено 06:00 ---------- Предыдущее 05:58 ----------
Код HTML:<!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html" /> <meta name="author" content="tompak" /> <meta name="robots" content="noindex, nofollow" /> <title>Login Admin</title> </head> <body> <form action="/admin/login" method="post"> <input name="name" type="text" size="80" /> Логин<br /> <input name="password" type="password" size="80" /> Пароль<br /> <input name="captcha" type="text" /> Код на картинке<br /> <img src="/admin/images/captcha" /><br /> <input name="submit" type="submit" /> </form> </body> </html>
---------- Сообщение добавлено 06:01 ---------- Предыдущее 06:00 ----------
сам /admin/login:/admin/login
PHP код:function loginAction() {
global $mysqli;
global $user;
$success = 'Ошибка! Вы не авторизованы.';
$name = $_POST['name'];
$password = $_POST['password'];
if($name == $user['name'] and $password == $user['password']) {
$hash = generateString(25);
$_SESSION['hash'] = $hash;
$query = "UPDATE `table`.`users` SET `hash` = '{$hash}' WHERE `users`.`id` = 1";
$result = mysqli_query($mysqli, $query);
if($result) {
$success = 'Успешно! Вы авторизованы.';
}
mysqli_free_result($result);
}
echo "
<script language = 'javascript'>
var delay = 5000;
setTimeout(\"document.location.href='/", delay);
</script>p>{$success} Через 5 секунд Вы будете перенаправлены...</p>
";
}
[свернуть]
---------- Сообщение добавлено 06:08 ---------- Предыдущее 06:01 ----------
Всем спасибо! Все решил оказывается == от кодировки все зависит
---------- Сообщение добавлено 06:13 ---------- Предыдущее 06:08 ----------
И еще вопрос. Хэш куда хранить? В базе или в файле? - 08.05.2013 11:26
Спасибо сказали:
Top-tompak(08.05.2013), - 08.05.2013 11:30
kik11, Можете показать пример?
- 08.05.2013 14:55
Top-tompak, вместо
PHP код:используйте$str1 == $str2
PHP код:А вообще, вот: _http://www.php.su/functions/?strcmpstrcmp($str1,$str2) == 0
- 08.05.2013 17:18
Если строки полностью идентичны, то == даст true, если нет, то false. Очень даже предсказуемо. Не знаю где там могут быть проблемы.
Когда спросил я, зачем это, то имел в виду: если POST отдает пустое значение, зачем сравнивать другим способом?
Хотя сути не меняет. Strcmp использовать для идентичности имхо глупо. Т.к. == нам даст boolean значение, нынче strcmp() отдает integer.
А вы с базой работаете? Логин то где храните? :)
Я вот все в базе храню, зачем лишний геморрой) Для чего еще же базу придумали?Спасибо сказали:
OKyJIucT(08.05.2013), Top-tompak(13.05.2013),
Тэги топика:
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Веб программирование на Php, MySQL, Ajax. Программирование на C# | Создание сайтов | 3 | 31.05.2011 01:53 |
Веб программирование на Php, MySQL, Ajax. Программирование на C# | Реклама партнерских программ | 3 | 31.05.2011 01:53 |
Качественное программирование на заказ | Создание сайтов | 2 | 13.09.2010 16:02 |
Веб-программирование [php, Xhtml, Css, Javascript] | Другая работа | 0 | 28.02.2010 23:10 |




