Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает скрипт авторизации
 
 автор: skazi   (24.11.2006 в 16:24)   письмо автору
 
 

Люди добрые! Ну в чем тут ошибка?

<?
session_start
();
if(isset(
$_SESSION['login']))
{
echo 
"you $_SESSION[login], you online!";
echo 
'<br /><a href="page1.php">page 2</a>';
echo 
'<br><a href="log.php">log.php</a>';    
}
else 
{
$login=$_POST['login'];
$password=$_POST['password'];
include(
'settings.php');
mysql_pconnect("localhost""$dbuser""$dbpass");
mysql_select_db("$db");
$query "SELECT * FROM users where login='$login'";
$result mysql_query($query);
$row mysql_fetch_array($resultMYSQL_ASSOC);
    if (
$login==$row["login"] && $password==$row["password"])
        {
         echo 
"you $login, you online!";
         echo 
'<br /><a href="page1.php">page 2</a>';
         echo 
'<br><a href="log.php">log.php</a>';    
         }
else {
echo 
"Incorrect pass/login";
include(
'vxod.php');
}
$_SESSION['login'] = $login1;

}
?>

ужя дня два бьюсь над этим кодом, а он, зараза не работает! заранее благодарен)

   
 
 автор: valenok   (24.11.2006 в 16:25)   письмо автору
 
   для: skazi   (24.11.2006 в 16:24)
 

А какая часть не работает?
Какие ошибки?
посмотри что у тебя возвращается из базы

   
 
 автор: skazi   (24.11.2006 в 17:02)   письмо автору
 
   для: valenok   (24.11.2006 в 16:25)
 

ничего не возвращается.
Когда гружу скрипт пишет you , you online
а должна форма выйти или you $login,you online

   
 
 автор: AlexelA   (24.11.2006 в 17:08)   письмо автору
 
   для: skazi   (24.11.2006 в 17:02)
 

Я думаю, у вас срабатывают сессии и необходимо подправить код

if(isset($_SESSION['login']))
{
echo "you $_SESSION['login'], you online!"; //Добавлены кавычки для login
echo '<br /><a href="page1.php">page 2</a>';
echo '<br><a href="log.php">log.php</a>';
}

Попробуйте так.

   
 
 автор: valenok   (24.11.2006 в 17:23)   письмо автору
 
   для: AlexelA   (24.11.2006 в 17:08)
 

От этого сессии не обрываются, просто должны всплывать ошибка что неизвестная переменная вместо имени.
Я это решил пропустить. Дело в другом..

--
if(isset($_SESSION['login']) && !empty($_SESSION['login']))

   
 
 автор: skazi   (24.11.2006 в 18:49)   письмо автору
 
   для: valenok   (24.11.2006 в 17:23)
 

всеравно не работает, вот полный скрипт, может в др. месте что то не так, посмотрите пожалуйста:

<?
session_start
();
if(isset(
$_SESSION['login']) && !empty($_SESSION['login']))
{
echo 
"you $_SESSION[login], you online!";
echo 
'<br><a href="log.php">log.php</a>';    
}
else 
{
$login=$_POST['login'];
$password=$_POST['password'];
include(
'settings.php');
mysql_pconnect("localhost""$dbuser""$dbpass");
mysql_select_db("$db");
$query "SELECT * FROM users where login='$login'";
$result mysql_query($query);
$row mysql_fetch_array($resultMYSQL_ASSOC);
    if (
$login==$row["login"] && $password==$row["password"])
        {
         echo 
"you $login, you online!";
         echo 
'<br><a href="log.php">log.php</a>';    
         }
else {
echo 
"Incorrect pass/login";
include(
'vxod.php');
}
$_SESSION['login'] = $login1;

}
?>

а вот log.php :

<?
session_start
();
$_SESSION['login']=$login11;
$_SESSION['password']=$password;
echo 
$_SESSION['login'];
?>
<br>
<?
echo $_SESSION['password'];
// статистика
$ip=getenv("REMOTE_ADDR"); 
$host=getenv("REQUEST_URI"); 
$date date("d.m.y"); 
$timedate("H:i:s"); 
include(
'settings.php');
mysql_pconnect("localhost""$dbuser""$dbpass");
mysql_select_db("$db");
$id=$id+1;
$query "Update users set time=$time,date=$date,ip =$ip,host=$host
where id=
$id and login = $login11 and password = $password";
$result mysql_query($query);
?> 

заране спс

   
 
 автор: AlexelA   (24.11.2006 в 20:15)   письмо автору
 
   для: skazi   (24.11.2006 в 18:49)
 

Уточняющий вопрос, а что выводится в log.php после строк
... echo $_SESSION['login'];
... echo $_SESSION['password']; ?

И снова возвращаясь к запросу по добавлению записей в БД.
Небольшая поправочка:
запрос необходимо подправить, добавляя переменные php
методом объединения строк:
$query = "Update users set time='".$time."',date=' ".$date." ',ip =' ".$ip." ',host=' ".$host ." '
where id=' ".$id." ' and login = ' ".$login11." ' and password = ' ".$password." ' ";
И еще, если поле id в ваше таблице - ключевое или уникальное, то
в запросе строку условия можно упростить до
where id= ' ".$id." ' ";

   
 
 автор: skazi   (24.11.2006 в 23:59)   письмо автору
 
   для: AlexelA   (24.11.2006 в 20:15)
 

это просто я делал для себя вывод данных...

но меня интересует больше что не так в index.php!

Не могли бы вы посмотреть что там не так...

   
 
 автор: AlexelA   (25.11.2006 в 10:33)   письмо автору
 
   для: skazi   (24.11.2006 в 23:59)
 

Тогда поясните, какой скрипт загружается первым: log.php или index.php
Соответственно и вопрос, откуда появляются переменные
$loginll, $password в log.php и $loginl в первом скрипте?

   
 
 автор: skazi   (25.11.2006 в 13:45)   письмо автору
 
   для: AlexelA   (25.11.2006 в 10:33)
 

первым загружается index.php
давайте рассмотрим только пока его, а log.php отложим, суть проблемы в том что index.php не авторизирует пользователя, вот я и попросил помощи исправить мой код...

Даже самый упрощенный вариант не работает :

Логин <br><input name=login maxlength=20><br>
Пароль <br><input type=password name=password maxlength=20><br>
<input type=submit value=Войти></form>
<?
$_POST
['login']=$login;
$_POST['password']=$password;
include(
'settings.php');
mysql_pconnect("localhost""$dbuser""$dbpass");
mysql_select_db("$db");
$query "SELECT * FROM users where login='$login'";
$result mysql_query($query);
$row mysql_fetch_array($resultMYSQL_ASSOC);
    if (
$login==$row["login"] && $password==$row["password"])
        {
         echo 
"$login, you online!";
         }
else {
echo 
"Incorrect pass/login";
}
?>

   
 
 автор: AlexelA   (25.11.2006 в 14:34)   письмо автору
 
   для: skazi   (25.11.2006 в 13:45)
 


$_POST['login']=$login;
$_POST['password']=$password;

А каким образом вы получаете значения переменных $login и $password?
Исходя из вашего скрипта они пустые.

Может наоборот
$login = $_POST['login'];
$password = $_POST['password'];

   
 
 автор: skazi   (25.11.2006 в 15:21)   письмо автору
 
   для: AlexelA   (25.11.2006 в 14:34)
 

оп-па, ну вот и заработало, просто я не придавал этому большое значение, теперь буду придавать)))

Спасибо большое!

   
 
 автор: skazi   (25.11.2006 в 15:34)   письмо автору
 
   для: AlexelA   (25.11.2006 в 14:34)
 

А как сделать logout:
В сессии 2 переменные логин и пароль, как сделать выход из сессии?

   
 
 автор: AlexelA   (25.11.2006 в 18:39)   письмо автору
 
   для: skazi   (25.11.2006 в 15:34)
 

Завершите сессию уничтожением переменных:
session_destroy();

   
 
 автор: skazi   (25.11.2006 в 18:48)   письмо автору
 
   для: AlexelA   (25.11.2006 в 18:39)
 

спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования