Всем, добрый день!
Помогите, никак не могу определить проблему. 3-ий день знакомства с PHP, задача следующая: со странички с формой login'а информация передается этому скрипту. Когда он ее обработает, либо данные записываются в cookie либо возвращается сообщение об ошибке на предыдущей странице. Главная странице находится в каталоге ниже уровнем, и она в упор не хочет видеть эти cookie. Соединение с базой есть, сookie, вроде, тоже записываются.
Похоже тут есть какая-то фишка которой я просто не понимаю или не знаю...
Здесь обрабатываем информацию
PHP |
if($_POST['username'] == "" or $_POST['password'] == "") { $login_message = "Заполните оба поля, пожалуйста!"; header("Location:http://localhost/achievments/login/loginform.php?mesg=".$login_message); } else { $query = "select * from users where user_name='".$_POST['username']."';"; $usrrow = mysql_query($query); if($usrrow) { $usrarr = mysql_fetch_array($usrrow); if($_POST['password'] == $usrarr['passwrd']) { setcookie("current_user", $_POST['username'], time() + 3600*24*2, "http://localhost/achievments/index.php"); setcookie("current_pass", $_POST['password'], time() + 3600*24*2,"http://localhost/achievments/index.php"); header("Location:http://localhost/achievments/index.php?bul1=".$bul1."&bul2=".$bul2); } else { $login_message = "Неверный пароль!"; header("Location:http://localhost/achievments/login/loginform.php?mesg=".$login_message); } } else { $login_message = "Такого пользователя не зарегистрировано!"; header("Location:http://localhost/achievments/login/loginform.php?mesg=".$login_message); } } |
Здесь требуется обратиться к cookie
PHP |
<?php if($_COOKIE['current_user'] != "") { echo " Привет, ".$_COOKIE['current_user']." | <a href=\"logout.php\">Выйти</a> "; } else { echo " <a href=\"http://localhost/achievments/register/registrationform.php\">Регистрация</a> | <a href=\"http://localhost/achievments/login/loginform.php\">Войти под логином</a> "; } |
Спустя 32 минуты, 21 секунда (11.06.2009 - 18:29) twin написал(а):
Попробуй так:
PHP |
setcookie("current_pass", $_POST['password'], time() + 600*24*2,"/"); |
Только учти, что пароль в куках, да еще в явном виде - это подстава юзера с твоей стороны.
Спустя 35 минут, 12 секунд (11.06.2009 - 19:04) Дима написал(а):
Спасибо! Работает... гениально.
Про безопасность учту=)