PHP: setcookie("login", "$_POST[name]", time()+60*60*24*30); setcookie("pass", "$_POST[pass]", time()+60*60*24*30); echo "Привет : ".@$_COOKIE['login']."!"; сначало на локалке работало всё прекрасно но как только перенёс на сервер стало писать не "Привет ТЕСТ!" а "Привет !" в чём косяк? PS на локалке PHP5, a на сервере PHP 4
Удивительно, что Вы time()+60*60*24*3 в кавычки еще не заключили. Попробуйте так: PHP: <?php setcookie("login", $_POST["name"], time()+60*60*24*30); setcookie("pass", $_POST["pass"], time()+60*60*24*30); echo "Привет : ".@$_COOKIE['login']."!"; ?>
Kreker извините я не понял в чём различия с моим кодов? если вы про " <?php" и " ?>" то они присуствуют я часть кода выложил простокоторая отвечает за сохранение
HTML: <form method="post" enctype="multipart/form-data"> <tr><td width =100>Имя*:</td><td><input type="text" name="name" maxlength="15" /></td></tr> <tr><td width =100>Пароль*:</td><td><input type="password" name="pass"/></td></tr> <tr><td width =100><input type='submit' name="enter" value='Войти' title='Войти' /></td></tr> </form> всё нормально :roll:
Ваш вариант: PHP: <?php setcookie("login", "$_POST[name]", time()+60*60*24*30); ?> Мой вариант: PHP: <?php setcookie("login", $_POST["name"], time()+60*60*24*30); ?> Смотрите на кавычки у поста. У вас name может определяться как константа, потому что без кавычек. Это зависит от настроек хостинга. Сам пост в кавычки брать не нужно. Используйте мой вариант - он правильный. В начало файла киньте error_reporting(E_ALL);
всё равно не помогает....(( на локалке всё отлично на серваке скрипт авторизировать отказывает на сервере php4 а на локалке php5 может с этим связано? Ещё при авторизации сравнивает получненое постом и БД и БД и сама страница в UTF-8 ЗЫ код PHP: <?php include "header.php"; if (isset($_GET['do'])){ $do = $_GET['do']; } include "left.php"; if ($_POST[enter]){ if(!get_magic_quotes_gpc()) { $password = $_POST['pass']; $name = mysql_escape_string($_POST['name']); } else { $password = stripslashes($_POST['pass']); $name = $_POST['name']; } $password = md5($password); $query = "SELECT * FROM `users` WHERE `name` = '".$name."' AND `pass` = '".$password."'"; $result = mysql_query($query); if(!$result) exit("Ошибка°"); if(mysql_num_rows($result)) { $_POST[pass]=md5($_POST[pass]); setcookie("login", $_POST["name"], time()+60*60*24*30); setcookie("pass", $_POST["pass"], time()+60*60*24*30); echo "Привет : ".@$_COOKIE['login']."!"; echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD><body>"; } else { echo("<span style='margin-left:90px;'>Неверный пароль</span>"); } } if($do = 'exit') { setcookie("login", "", time()+30); setcookie("pass", "", time()+30); } $smarty->display('user_auth.tpl'); include ("footer.php"); ?> в config.php (включён во все файлы) PHP: if (isset($_COOKIE['login'])){ $query = "SELECT * FROM `users` WHERE `name` = '".$_COOKIE['login']."' AND `pass` = '".$_COOKIE['pass']."'"; $result = mysql_query($query); $row = mysql_fetch_array($result); if(!$result) exit("Ошибка"); if(mysql_num_rows($result)) { $user_name= $row["name"]; $user_id= $row["id"]; } посоветуйте как решить проблему....
Посоветовать по твоему случаю конкретно ничего немогу, но. Твой скрипт уязвим для SQL-инъекций. Если в поле name ввести "Professor/*", и get_magic_quotes_gpc() вернёт TRUE, я авторизируюсь с любым паролем, или совсем без него. Я так выиграл в споре 3 бутылки пива)
в одной но хтмл код в другой но тама смарти выводит защита пока мне не особа важна мне счейчас бы сделать так чтобы по кукав авторизировало а потом уже можно и с защитой покапаться