Здравствуйте! Помогите пожалуйста решить проблему с программой. Я тут занялся созданием авторизации, все сделал, но только нельзя задать значение куки переменными. Может я как-то криво делаю, что не получается или есть какой-либо другой способ ?
файл login.php
<?php
header('Content-Type: text/html; charset=utf-8');
$login = trim($_POST['login']);
$password = trim($_POST['password']);
$db = @mysql_connect("mysql.hostinger.ru","u530094385_dc", "FktrctqPetd");
mysql_select_db("u530094385_sqldc", $db);
$query = mysql_query("SELECT * FROM `tab` WHERE login='$login'");
$query2 = mysql_query("SELECT * FROM `tab` WHERE login='$password'");
while($row = mysql_fetch_array($query)){
$arr[0] = trim($row['login']);
$arr[1] = trim($row['password']);
}
if($arr[1] == $password) {
echo "Вы успешно авторизовались!";
setcookie('auth', 'login', time() + 60);
echo " - " . $_COOKIE['auth'] . " - ";
} else {
echo "Неверный логин или пароль!";
}
mysql_close($db);
?>
главный файл
Справочник по программированию
171120
C |
C# |
C++ |
PHP |
SQL |
CSS |
Java |
Perl |
Ruby |
HTML |
AJAX |
jQuery |
Pascal |
Delphi |
Python |
JavaScript
<?php
$cookie = $_COOKIE["auth"];
if(!$cookie){
echo '
Вход
Логин:
Пароль:
Регистрация
Логин:
Пароль:
';
} else {
echo "Вы авторизованы как $cookie ";
}
echo "$cookie";
?>
PHP
Пишу авторизацию (php). Куки не работают
слушайте, а кто вас в 2017-ом году все еще учит работать с функциями mysql? Отказывайтесь немедленно. Они устарели, они будут удалены. Переходите на mysqlI или PDO
и логика немного другая.
Словами примерно так
обрабатываем запросы по GET - из $_SERVER['REQUEST_METHOD']
то бишь,
if ($_SERVER['REQUEST_METHOD']=='GET') ...
1. если установлена кука - показываем главную страницу. конечно, здесь, имеет смысл сделать дополнительную проверку: есть ли такой пользователь, имеет ли он право просматривать контент в соответствии со своими правами. но в учебном примере, можно и без этого.
2. если куки нет - показываем форму логина
обрабатываем запросы по POST
if ($_SERVER['REQUEST_METHOD']=='POST') .
1. считываем $_POST
2. проверяем есть ли в базе логин, пароль
запрос тоже неправильный, кстати SELECT * FROM `tab` WHERE login='$login' AND password='$password'; - сразу два условия: совпадать должны и пароль, и логин.
Кстати, хранение в базе паролей в виде текста, дурной тон. лучше использовать простейшую шифрацию по md5() - это php-функция.
3. если есть в базе - выставляем куку и переадресуем на главную
4. если нет в базе - просто переадресуем на главную
Вместо куки можно использовать и сессии. Сессионная переменная активна до закрытия браузера, куки - можно сделать вечными.
и логика немного другая.
Словами примерно так
обрабатываем запросы по GET - из $_SERVER['REQUEST_METHOD']
то бишь,
if ($_SERVER['REQUEST_METHOD']=='GET') ...
1. если установлена кука - показываем главную страницу. конечно, здесь, имеет смысл сделать дополнительную проверку: есть ли такой пользователь, имеет ли он право просматривать контент в соответствии со своими правами. но в учебном примере, можно и без этого.
2. если куки нет - показываем форму логина
обрабатываем запросы по POST
if ($_SERVER['REQUEST_METHOD']=='POST') .
1. считываем $_POST
2. проверяем есть ли в базе логин, пароль
запрос тоже неправильный, кстати SELECT * FROM `tab` WHERE login='$login' AND password='$password'; - сразу два условия: совпадать должны и пароль, и логин.
Кстати, хранение в базе паролей в виде текста, дурной тон. лучше использовать простейшую шифрацию по md5() - это php-функция.
3. если есть в базе - выставляем куку и переадресуем на главную
4. если нет в базе - просто переадресуем на главную
Вместо куки можно использовать и сессии. Сессионная переменная активна до закрытия браузера, куки - можно сделать вечными.
СНАЧАЛА делаешь всю работу с куками, а только ПОТОМ отправляешь контент браузеру. Как только ты передал бразузеру хотя бы один байт - всё, об установке кук (и передаче прочих заголовков) можешь забыть.
1) пароли звёздочками религия не позволяет зацензурить ?
2) Сей код есть древний древний говнркод ну тоесть так писали но в 2007 а когда пхп только очухивался Тако лучше не надо учится писать так
3) mysql_connect - будет ругаться на новых пхп из за того что эта функция объявлена устаревшей
4) ты упорно записываешь в куку строчку login несмотря на то что авторизоваться мог конкретный юзернейм
5)писать в куки без секрет кея не круто
6 ) а лазить в базу без презерватива вообще нельзя поэтому либо делай подготовленный запрос либо фигач mysql_real_escape_string()
7) setcookie создаёт заголовок а делать это после любого вывода на страницу нельзя т к запись заголовков заканчивается когда начинается тело страницы
И это я только по диагонали посмотрел код ))
2) Сей код есть древний древний говнркод ну тоесть так писали но в 2007 а когда пхп только очухивался Тако лучше не надо учится писать так
3) mysql_connect - будет ругаться на новых пхп из за того что эта функция объявлена устаревшей
4) ты упорно записываешь в куку строчку login несмотря на то что авторизоваться мог конкретный юзернейм
5)писать в куки без секрет кея не круто
6 ) а лазить в базу без презерватива вообще нельзя поэтому либо делай подготовленный запрос либо фигач mysql_real_escape_string()
7) setcookie создаёт заголовок а делать это после любого вывода на страницу нельзя т к запись заголовков заканчивается когда начинается тело страницы
И это я только по диагонали посмотрел код ))
Александр Кравченко
Пароль от phpMyAdmin локального хоста, чего его цензурить, ты локалхост не взломаешь
Похожие вопросы
- Авторизация php и регистрация проблемы с хэшэм
- Объясните прицеп работы php как он работает ?
- Не работает авторизация на php
- PHP - Сойдёт ли авторизация, или менять?
- Почему код авторизации и регистрации на PHP, написанный 3 года назад в видео на ютубе, сейчас не работает? И как быть?
- Как вывести имя и фамилию пользователя из куки? (PHP setcookie)
- Не работает PHP include на хостинге
- Как сделать регистрацию и авторизацию на php без mysql. Напишите пример записи
- какой функционал делают на сайтах с помощью php? вообще не пойму что конкретно пишут на этом языке на сайтах..
- Хочу работать php программистом. Но как узнать - готов я или нет? На php же можно очень много написать, в отличие от JS.
вот это мне возвращает либо 0, если значение куки 'auth' передано через переменную setcookie('auth', '$login', time() + 60) либо ничего, но работает, если я создам куки без присваивания значения 'auth' переменной: setcookie('auth', 'login', time() + 60), то все работает замечательно, при чтении этих куки, все выдает верно, пишет 'login'