чувствую на форуме завтра пирожки бесплатно раздавать будут в честь моей геройской гибели... Пока результатов нет.
Вот код авторизации: PHP: <?php set_magic_quotes_runtime(0); session_start(); $error=false; $_SESSION['mail']=!$_SESSION['mail']?array('group'=>"guest"):$_SESSION['mail']; mysql_connect('localhost','test5','pass') or die(mysql_error()); mysql_select_db('test') or die(mysql_error()); mysql_query('SET NAMES cp1251'); if ($_SESSION['user']['group']=='guest') { $_COOKIE['save']=$_COOKIE['save']?unserialize($_COOKIE['save']):""; $mail=!$_COOKIE['save']['mail'] || isset($_POST['mail'])?$_POST['mail']:$_COOKIE['save']['mail']; $pass=!$_COOKIE['save']['pass'] || isset($_POST['pass'])?$_POST['pass']:$_COOKIE['save']['pass']; if (isset($mail) && isset($pass)) { if (!empty($mail) && !empty($pass)) { if (!$_COOKIE['save']['pass'] || isset($_POST['pass'])) $mail=mysql_real_escape_string(htmlspecialchars($mail)); $sql=mysql_query("SELECT * FROM users WHERE LOWER(mail)='".strtolower($mail)."'"); if (mysql_num_rows($sql)) { $row=mysql_fetch_assoc($sql); if ($row['pass']==$pass) { $_SESSION['user']['group']='user'; $_SESSION['user']['mail']=$row['mail']; if (!headers_sent() && $_POST['save']) { $cook=array(); $cook['pass']=$pass; $cook['mail']=$row['mail']; setcookie("save",serialize($cook),time()+99999,'/'); } }else { $error="Ошибка: Неверный Пароль"; } }else { $error="Ошибка: Такого Пользователя не существует"; } }else { $error="Ошибка: Обязательные поля нужно заполнить"; } } } if ($_SESSION['user']['group']=='guest') { print " ".($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")." <form method=POST> <table width=30% align=center border=1> <tr> <td>mail</td><td><input type='text' name='mail'></td> <tr> <td>Pass</td><td><input type='password' name='pass'></td> <tr> <td>Запомнить?</td><td><input type='checkbox' name='save' value='1'></td> <tr> <td colspan=2><a href='?do=register'>Регистрация</a></td> <tr> <td colspan=2 align=center><input type=submit value='Войти'></td> </table> </form> "; }else { print " <table width=30% align=center border=1> <tr> <td>Вы вошли как</td><td>{$_SESSION['mail']} <a href='2.php?do=out'>Выйти</a></td> </table> "; } ?> Ошибка: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource в 22 строке: if (mysql_num_rows($sql)) { что не так? :?
Sofia Алгоритм работы с БД MySQL такой: PHP: <?php // Подключение к MySQL mysql_connect('host', 'user', 'pass'); // Выбор нужной базы данных mysql_select_db('database'); // Установка кодировки mysql_query('SET NAMES encode'); // Составление запр $sql = 'SELECT * FROM `table`'; // Отправка запроса - получение ресурса с результатом запроса $result = mysql_query($sql); // Извлечение нужных данных из результата запроса $array = mysql_fetch_assoc($result); // Например. У тебя пропущен пятый пункт. Кстати, полезно переводить тексты ошибок: "Внимание: mysql_num_rows(): переданый аргумент это не правильный ресурс результата MySQL.
[vs] да нет, вроде на месте: mysql_select_db('test') or die(mysql_error()); 5 пункт у меня в 9 строке.
Неа, пятный пункт это Если результат запроса неверный, значит в самом запросе ошибка. Вставь после mysql_query PHP: or die(mysql_error);
на $sql=mysql_query("SELECT * FROM users WHERE LOWER(mail)='".strtolower($mail)."'") or die(mysql_error());
Установила на время денвер, ато время жмет :? Открыла страницу, а у меня на странице: Вы вошли как Array Выйти и кнопка выйти не работает, а должна.. как быть?
PHP: <?php $sql=mysql_query("SELECT * FROM {$GLOBALS['cnf']['db_pref']}_auth WHERE LOWER(login)='".strtolower($login)."' LIMIT 1"); if (mysql_num_rows($sql) == 1) {
Elkaz спс, попробовать только не могу... кука застряла выйти не могу из страницы. PHP: <?php set_magic_quotes_runtime(0); session_start(); $error=false; $_SESSION['mail']=!$_SESSION['mail']?array('group'=>"guest"):$_SESSION['mail']; mysql_connect('localhost','test5','pass') or die(mysql_error()); mysql_select_db('test') or die(mysql_error()); mysql_query('SET NAMES cp1251'); switch($do) { case"out": unset($_SESSION['mail']); session_destroy(); if (!headers_sent()) { setcookie("save",'',time()+99999,'/'); } header("Location:".($_SERVER['HTTP_REFERER']?$_SERVER['HTTP_REFERER']:$_SERVER['PHP_SELF'])) ; break; default: if ($_SESSION['user']['group']=='guest') { $_COOKIE['save']=$_COOKIE['save']?unserialize($_COOKIE['save']):""; $mail=!$_COOKIE['save']['mail'] || isset($_POST['mail'])?$_POST['mail']:$_COOKIE['save']['mail']; $pass=!$_COOKIE['save']['pass'] || isset($_POST['pass'])?$_POST['pass']:$_COOKIE['save']['pass']; if (isset($mail) && isset($pass)) { if (!empty($mail) && !empty($pass)) { if (!$_COOKIE['save']['pass'] || isset($_POST['pass'])) $mail=mysql_real_escape_string(htmlspecialchars($mail)); $sql=mysql_query("SELECT * FROM users WHERE LOWER(mail)='".strtolower($mail)."'")or die(mysql_error()); if (mysql_num_rows($sql)) { $row=mysql_fetch_assoc($sql); if ($row['pass']==$pass) { $_SESSION['user']['group']='user'; $_SESSION['user']['mail']=$row['mail']; if (!headers_sent() && $_POST['save']) { $cook=array(); $cook['pass']=$pass; $cook['mail']=$row['mail']; setcookie("save",serialize($cook),time()+99999,'/'); } }else { $error="Ошибка: Неверный Пароль"; } }else { $error="Ошибка: Такого Пользователя не существует"; } }else { $error="Ошибка: Обязательные поля нужно заполнить"; } } } if ($_SESSION['user']['group']=='guest') { print " ".($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")." <form method=POST> <table width=30% align=center border=1> <tr> <td>mail</td><td><input type='text' name='mail'></td> <tr> <td>Pass</td><td><input type='password' name='pass'></td> <tr> <td>Запомнить?</td><td><input type='checkbox' name='save' value='1'></td> <tr> <td colspan=2><a href='?do=register'>Регистрация</a></td> <tr> <td colspan=2 align=center><input type=submit value='Войти'></td> </table> </form> "; }else { print " <table width=30% align=center border=1> <tr> <td>Вы вошли как</td><td>{$_SESSION['mail']} <a href='2.php?do=out'>Выйти</a></td> </table> "; } } ?>
Sofia Чтобы убить куку где-нибудь в начале скрипта напиши (после session_start) unset ($_SESSION['mail']); session_destroy(); setcookie('save', ''); exit; А MrMIT извращенец
СПАСИБО ВАМ ОГРОМНОЕ!!!!!!!!!!!!! Я просто в а.уе!!!!! еб...ся с php регистрацией два месяца, перелопатил, сайтов хеуву тучу, везде пи..дасы у друг дружки пи..дят, сами ни х.я не шарат, и ни..уя толком не работает!!!!! из двух десятков скриптов ваш ВАШ СКРИПТ ЗАРАБОТАЛ С ПЕРВОГО РАЗА ИДЕАЛЬНО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! просто пи.дец, извини за мат, меня просто расперает от счастья у меня теперь будет ах..уенная регистрация!!!!!!!!!!!!!!!!!!!!! СПАСИБО!!!!!!!!!!!