Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Авторизация Пользователя


Автор: anrs 2.2.2009, 22:47
Ребят есть код , вводиш с формы пароль и заходишь ( ну как обычно ) , но проблема в том , что куки не сохроняются ... всё время приходится заного входить ... Подскажите , где ошибка ?
Код

$password = "password2";
if ($_POST['form_password'] == $password ) {
Setcookie("logincookie[pwds]",$password,time() + 86400);
 echo "Hello, "; echo $logincookie[pwds];
 echo "<br><br><a href='user.php?action=logout'>Выйти</a>";
 }
else {
echo "<br><strong>Введите пароль правильно !</strong><br>"; 
} 

if ($action == "logout") {
        Setcookie("logincookie[pwds]",$password,time() - 86400);
        echo "Вы вышли";
}



Автор: NNaarreekk 2.2.2009, 23:15
Цитата(anrs @  3.2.2009,  00:47 Найти цитируемый пост)
logincookie[pwds]

Пробывал название куки нормальное написать, скажем:
Код

Setcookie("password",$password,time() + 86400);

??

Автор: anrs 3.2.2009, 07:31
Вот к примеру так , "Назвал правильно" и всёравно толку ноль , каждый раз заходить надо по новой и в строчке echo $form_password_cookie;  нечего не выводит , хотя должно!
Код

$password = "password3";
//if ($_POST['form_password'] == $password ) {
if ($form_password == $password ) {
        setcookie("form_password_cookie",$password,time() + 86400);
 echo "Hello, "; echo $form_password_cookie;
 echo "<br><br><a href='user.php?action=logout'>Выйти</a>";
 }
if ($form_password == "") {
echo "<br><strong>Введите пароль не правильно !</strong><br>"; 
include "form_login.php";
} 

if ($action == "logout") {
        setcookie("form_password_cookie",$password,time() - 86400);
        echo "Вы вышли";
}

Автор: ksnk 3.2.2009, 08:47
anrs, Куки храняться в массиве $_COOKIE

Автор: anrs 3.2.2009, 09:55
Вот к примеру я сделал так :

Код

$password = "password3";
if ($form_password == $password ) {
setcookie("form_password_cookie",$password,time() + 86400);
 echo "Приветствую , "; echo $_COOKIE['form_password_cookie'];
 }
if ($_COOKIE['form_password_cookie'] == "") {
echo "<br><strong>Введите ваш пароль .</strong><br>"; 
} 
if ($_COOKIE['form_password_cookie'] == $password) {
echo "<br><strong>Ура блин , получилось .</strong><br>"; 
echo $_COOKIE['form_password_cookie'];
} 
//ЛОГ АУТ
if ($action == 'logout') {
setcookie("form_password_cookie",$password,time() - 86400);
echo "<br><strong>Вы вышли , приходите ещё .</strong><br>"; 
} 
//-------


Всё работает , но когда подключаю стиль выдаёт такую ошибку : 

Warning: Cannot modify header information - headers already sent by (output started at /home/host700174/alter4life.ru/htdocs/test/1_alt/header.tpl:8) in /home/host700174/alter4life.ru/htdocs/test/user.php on line 20

... убераю стиль  - всё работает 

Автор: patap 3.2.2009, 10:23
полный код покажи

Автор: lelik133 3.2.2009, 10:26
установка cookies должно происходить ДО любого вывода в браузер.

Автор: anrs 3.2.2009, 10:42
Пасиб всем ребят , я стиль подргузил после куков ... 

Ещё вопросик , как сделать чтобы  пароль проверялся не один : $password = "password3";
а из аррай  $password = array ("password1","password2","password3","password4");
Что надо в проверку написать ? 
if ($form_password == $password ) {



Автор: ksnk 3.2.2009, 10:43
http://php.net/in_array

Автор: anrs 3.2.2009, 11:31
Сделал in_array  ...

if (in_array($form_password, $password)) {

Но теперь кук этого не воспренимает , как сделать и в него этот in_array

Warning: setcookie() expects parameter 2 to be string, array given in /home/host700174/alter4life.ru/htdocs/test/user.php on line 10

Автор: enof 3.2.2009, 11:41
array_search()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)