Проблема заключается в том, что при отправке из формы авторизации на файл - обработчик не создаются куки. Как я сам выяснил - проблема в том что перед созданием их проходят какие-то манипуляции с базами или что-то подобное. Если поместить занос куков в начало страницы, то все работает. Вот код: registration.php Код (Text): <form action="save_user.php" method="post" enctype="multipart/form-data"> <h2 align="center">Регистрация</h2><hr /><br /> <p><input style="float:left;" name="login" type="text" maxlength="25" placeholder="Логин"></p> <p><input style="margin-left:40px;" name="email" type="email" maxlength="40" placeholder="Почтовый адрес"></p> <p><input style="float:left;" name="password" type="password" maxlength="15" placeholder="Пароль"></p> <p><input style="margin-left:40px;" name="password2" type="password" maxlength="15" placeholder="Повтор пароля"> <p><label>Выберите аватар (Не обязательно)<br></label> <input type="FILE" name="fupload"></p> <div id="button"><input type="submit" name="submit" value="ЗАРЕГЕСТРИРОВАТЬСЯ"></div> </form> save_user.php Код (Text): <?php if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} } if (empty($login) or empty($password)) { exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); } $login = stripslashes($login); $login = htmlspecialchars($login); $password = stripslashes($password); $password = htmlspecialchars($password); $login = trim($login); $password = trim($password); include ("connect.php"); $ip=getenv("HTTP_X_FORWARDED_FOR"); if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); } mysql_query ("DELETE FROM wrong WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900"); $result = mysql_query("SELECT col FROM wrong WHERE ip='$ip'",$db); $myrow = mysql_fetch_array($result); if ($myrow['col'] > 2) { exit("Вы набрали логин или пароль неверно 3 раза. Подождите 15 минут до следующей попытки."); } $login = md5($login); $login = strrev($login); $login = $login."*******"; $password = md5($password); $password = strrev($password); $password = $password."*******"; $result123 = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); $myrow123 = mysql_fetch_array($result123); if (empty($myrow123['login'])){ $select = mysql_query ("SELECT ip FROM wrong WHERE ip='$ip'"); $tmp = mysql_fetch_row ($select); if ($ip == $tmp[0]) { $result52 = mysql_query("SELECT col FROM wrong WHERE ip='$ip'",$db); $myrow52 = mysql_fetch_array($result52); $col = $myrow52[0] + 1; mysql_query ("UPDATE wrong SET col=$col,date=NOW() WHERE ip='$ip'"); } else { mysql_query ("INSERT INTO wrong (ip,date,col) VALUES ('$ip',NOW(),'1')"); } exit ("Извините, введённый вами логин или пароль неверный."); } else { $_SESSION['password']=$password; $_SESSION['login']=$login; $_SESSION['id']=$myrow123['id']; if ($_POST['save'] = "1"){ setcookie("login", $login, time()+9999999); setcookie("password", $password, time()+9999999); setcookie("id", $myrow123['id'], time()+9999999); } } ?> Простите, если не правельно описал ситуацию. Cookies работают, допутим если setcookie("login", $_POST["login"], time()+9999999); поместить в начало (случай 1), то он занесётся. Случай 1 <?php session_start(); define( '_JEXEC', 1 ); if ($_POST['save'] == "1"){ setcookie("save", $_POST['save'], time()+9999999); setcookie("login", $_POST["login"], time()+9999999); setcookie("password", $_POST["password"], time()+9999999); } include ("connect.php"); if (isset($_COOKIE['login']) and isset($_COOKIE['password'])){ $_SESSION['password'] = strrev (md5($_COOKIE['password']))."hrma4j"; $_SESSION['login'] = strrev (md5($_COOKIE['login']))."f9ksb5"; $_SESSION['id']=$_COOKIE['id']; } if (!empty($_SESSION['login']) and !empty($_SESSION['password'])){ $login = $_SESSION['login']; $password = $_SESSION['password']; $result = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); $myrow = mysql_fetch_array($result); } $page = mysql_query("SELECT * FROM settings WHERE page='auth'",$db); $settings = mysql_fetch_array($page); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Но если втавить после include ("connect.php"); , то не заносятся, но ведь надо же шифровать пароль и еще и узнавать id пользователя и другое прежде чем заносить в куки!!! В начало текста вставлять не вариант, в начале топика есть пример обработчика и пример формы регистрации опираясь на них можете подсказать как решить данную проблему!!!
Для объективности следует устранить, по крайней мере, первое из противоречий: 1. противоречит Или имелось в виду "Все рОвно! Не работает.", тогда вопрос снимается. 2. "Регистрация" противоречит "ЗАРЕГЕСТРИРОВАТЬСЯ" (могу предположить, что это два разных действия, так как названия у них разные) А вообще, посмотреть надо приходят ли куки в браузер? Можно сделать это, например Firefox'ом, Chrome тоже умеет.
Ну я в описании написал, что пытался впересатвить занос куков в начало, помогло, но им там не место - иначе пароль будет не зашифрован! Сорри за ламерский вопрос, можешь подсказать как их смотреть и какой прогой.
Куки работают, вы читайте Надо понять как занести куки только после шифровки пароля и получения значения id пользователя
slavagoreev Если Вы хотите, чтоб Вам помогли, потрудитесь, для начала, научиться отвечать на вопросы, которые Вам задают, заметьте - не из праздного любопытства. 5 часов времени могут стоить больших денег, которых с Вас не просят. У Вас есть готовые предложения на этот счет? Или это надо лично мне? Добавлено спустя 1 минуту 51 секунду: 1. А что в "connect.php"? 2. И как именно Вы определяете, работают куки или нет?