[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Автологин
DeeKeiD
Вобщем пытаюсь сделать автологин. Вот что получается
login.php - обработчик
Свернутый текст


<?php
/* DeeCMS - DeeKeiD'z Content Managment System
File Version : 1.0
Files Author : DeeKeiD /
deekeid@hotmail.com

This File is protected by the intelectual property law.
You are not allowed to change anything!
*/

include ('blocks/main_left.php');

/* Принимаем данные из формы */
$login = isset($_POST['login'])?$_POST['login']:NULL;
$passw = isset($_POST['password'])?$_POST['password']:NULL;
$remem = isset($_POST['remember'])?$_POST['remember']:NULL;
$pwd = md5($passw);

$ue_check1 = mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `login` = '". mysql_real_escape_string($login) ."' && `password` = '". $pwd ."'"));
$ue_info = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `login` = '". mysql_real_escape_string($login) ."' && `password` = '". $pwd ."'"));
$uID = $ue_info['id'];
/* Проверка пустых полей */
if(empty($login) && empty($passw))
{
error_msg('Заполните все поля');
}
/* Проверка сущестования пользователя */
elseif($ue_check1 > 0)
{
/* Авто-логин */
if($remem == 1)
{
setAutologin($uID);
session_start();
$_SESSION['d_usr'] = $login;
if (!empty( $_SERVER['HTTP_REFERER'] ))
{
header( 'Location: '.$_SERVER['HTTP_REFERER'] );
}
else
{
header ('Location: index.php');
}
}

/* Простой вход */
else
{
session_start();
$_SESSION['d_usr'] = $login;
if (!empty( $_SERVER['HTTP_REFERER'] ))
{
header( 'Location: '.$_SERVER['HTTP_REFERER'] );
}
else
{
header ('Location: index.php');
}
}
}

/* Вывод ошибки о не нахождении пользователя в базе */
else
{
error_msg('Пользователь не найден');
}

include ('blocks/main_right.php');


user_panel.php - Форма входа \ Меню пользователя
Свернутый текст


/* Меню пользователя */
if($loggedin)
{
/* Checking for new PM's */
$pm_check1 = mysql_num_rows(mysql_query("SELECT * FROM `pm_inbox` WHERE `pm_to` = '". $user['id'] ."' && `read` = '0'"));
if($pm_check1 > 0)
{
$new_pm_img = '<img src="/images/icons/pm_new.gif">';
$total_pm = mysql_num_rows(mysql_query("SELECT * FROM `pm_inbox` WHERE `pm_to` = '". $user['id'] ."'"));
$new_pm_count = '<b>[</b> '. $pm_check1 .' \ '. $total_pm .' <b>]</b>';
}
else
{
$new_pm_img = '<img src="/images/icons/pm.gif">';
}

echo '<table width="100%" class="blockhead1">';
echo '<tr>';
echo '<td><b>»  Пользователь</b></td>';
echo '</tr>';
echo '</table>';
echo '<table width="100%">';
echo '<tr>';
echo '<td width="50%" align="center"><img src="'. $user['photo'] .'" width="100%"></td>';
echo '<td width="50%" valign="top">Привет, <b>'. $user['login'] .'</b></td>';
echo '</tr>';
echo '</table>';
echo '<table width="100%">';
echo '<tr>';
echo '<td colspan="2"><hr align="center" width="90%"</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="70%">   <img src="/images/icons/epoints.gif"> ePoints</td>';
echo '<td width="30%">0</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="70%">   <img src="/images/icons/egold.gif"> eGold</td>';
echo '<td width="30%">0</td>';
echo '</tr>';
echo '<tr>';
echo '<td width="70%">   <img src="/images/icons/warn.gif"> Варны</td>';
echo '<td width="30%">0</td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2"><hr align="center" width="90%"</td>';
echo '</tr>';
echo '</table>';
echo '<table width="100%" class="blockbody2">';
echo '<tr>';
echo '<td>   <img src="/images/icons/user.gif"> <a href="/users/'. $user['id'] .'">Профиль</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td>   <img src="/images/icons/settings.gif"> <a href="/usersettings">Настройки</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td>   '. $new_pm_img .' <a href="/pm">Сообщения</a>  '. $new_pm_count .'</td>';
echo '</tr>';
echo '<tr>';
echo '<td>   <img src="/images/icons/logout.gif"> <a href="/logout">Выход</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td><hr align="center" width="90%"</td>';
echo '</tr>';
echo '<tr>';
echo '<td align="center">';
echo '<a href="/friends" title="Друзья"><img src="/images/icons/friends.gif"></a>';
echo '    <a href="#" title="Команда"><img src="/images/icons/team.gif"></a>';
echo '    <a href="/usergallery" title="Галерея"><img src="/images/icons/gallery.gif"></a>';
echo '    <a href="#" title="Видео"><img src="/images/icons/video.gif"></a>';
echo '    <a href="#" title="Блоги"><img src="/images/icons/blog.gif"></a>';
echo '</td>';
echo '</tr>';
echo '</table>';
}
/* Форма входа */
else
{
echo '<form action="/login" method="POST">';
echo '<table width="100%" class="blockhead1">';
echo '<tr>';
echo '<td><b>»  Пользователь</b></td>';
echo '</tr>';
echo '</table>';
echo '<table width="100%" class="blockbody1">';
echo '<tr>';
echo '<td width="80%">';
echo ' <input type="text" name="login" size="19"><br />';
echo ' <input type="password" name="password" size="19">';
echo '</td>';
echo '<td width="20%" align="center"><input type="image" id="submit" src="/images/style/login_button.gif" width="42" height="32"/>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td> <input type="checkbox" name="remember" value="1"> Запомнить меня</td>';
echo '</tr>';
echo '<tr>';
echo '<td><hr align="center" width="90%"></td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo ' » <a href="/register">Регистрация</a><br />';
echo ' » <a href="#">Забыл пароль</a>';
echo '</td>';
echo '</tr>';
echo '</table>';
}


Теперь ломаю голову как сделать сам автологин, столкнулся с проблемой -
если использовать в форме входа

$uinfo = mysql_fetch_assoc(mysql_query("SELECT `login` FROM `users` WHERE `hash` = '". $_COOKIE['hash'] ."'"));
if(isset($_COOKIE['hash'])
{
session_start();
$_SESSION['d_usr'] = $uinfo['login'];
}
То даже если пользователь выдет с сайта то он всёравно автоматичкски авторизуется после перезагрузки страницы. Как исправить?



Спустя 26 минут, 9 секунд (23.06.2011 - 13:54) T1grOK написал(а):
Добавить поле которое будет содержать состояние пользователя, "залогинен" или "не залогинен".


_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.