Сделал авторизацыю для форума,она авторизирует но авторизация сразу слетает...Надо сделать чтоб хранило сессию...Как это сделать?Делаю через Curl.Если можна добавте к моему коду. PHP: $url="http://sitename.ru/login.php?do=login"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "do=login&vb_login_username=$login&vb_login_password=$pass&s&securitytoken=guest"); curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0.' .'(compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)'); $referer="http://sitename.ru/forum.php"; curl_setopt($ch, CURLOPT_REFERER, $referer); $result = curl_exec($ch); $url="http://sitename.ru/forum.php"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0.' .'(compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)'); curl_setopt($ch, CURLOPT_REFERER, $referer); $result = curl_exec($ch); curl_close($ch); echo $result
Тем же сейчас занимаюсь правада для вк, сделал ввиде 2-х функций, в первой мы авторизуемся и сохраняем икуки в файл что то в таком виде затем cookie.txt на запись разреши рядышком положи login(); send('cookie.txt'); Понимаю что как то глупо передовать такие параметры но все же работает
Для этого можно использевать очень простой вариант: Создаем таблицу бд с пользевателями: Code: id smallint(8) unsigned NOT NULL auto_increment, login varchar(50) NOT NULL default '', password varchar(32) NOT NULL default '' 2. Авторизация и сам вход: лучше всего юзать POST запросы, т.к. они безопастнее. собственно простая форма для авторизации: PHP: <form action="login.php" method="post"> <table> <tr> <td>Логин:</td> <td><input type="text" name="login" /></td> </tr> <tr> <td>Пароль:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Войти" /></td> </tr> </table> </form> Пароль в чистов виде не будем хранить, лучше всего его хешировать: PHP: if (isset($_POST['login']) && isset($_POST['password'])) { $login = mysql_real_escape_string($_POST['login']); $password = md5($_POST['password']); // делаем запрос к БД // и ищем юзера с таким логином и паролем $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' AND `password`='{$password}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); // если такой пользователь нашелся if (mysql_num_rows($sql) == 1) { // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя) $row = mysql_fetch_assoc($sql); $_SESSION['user_id'] = $row['id']; // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start(); } else { die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию.'); } } 3. Кто авторизован, а кто нет? Итак мы определились, что авторизованные пользователи — те, у которых указан $_SESSION['user_id'] Те, у кого нет $_SESSION['user_id'], мы будем считать гостями. Пример использования: PHP: if (isset($_SESSION['user_id'])) { // показываем защищенные от гостей данные. } else { die('Доступ закрыт, даём ссылку на авторизацию.'); } 4. Реализовать "запомнить меня на этом компьютере"? Здесь, помимо сессий, мы будем использовать куки. PHP: // если пользователь не авторизован if (!isset($_SESSION['user_id'])) { // то проверяем его куки // вдруг там есть логин и пароль к нашему скрипту if (isset($_COOKIE['login']) && isset($_COOKIE['password'])) { // если же такие имеются // то пробуем авторизовать пользователя по этим логину и паролю $login = mysql_real_escape_string($_COOKIE['login']); $password = mysql_real_escape_string($_COOKIE['password']); // и по аналогии с авторизацией через форму: // делаем запрос к БД // и ищем юзера с таким логином и паролем $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' AND `password`='{$password}' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error()); // если такой пользователь нашелся if (mysql_num_rows($sql) == 1) { // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя) $row = mysql_fetch_assoc($sql); $_SESSION['user_id'] = $row['id']; // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start(); } else { // только мы не будем давай ссылку на форму авторизации // вдруг человек и не хочет был авторизованым // а пришел просто поглядеть на наши страницы как гость } } } Если что пиши в пм дам уже готовый скрипт для авторизации.