Привет, пишу авторизацию для чата, как правильно отсечь доступ к функции show_chat без авторизации?
за одно оцените правильно ли я делаю, может что то неправильно.
PHP:
скопировать код в буфер обмена
<?PHP
include ( 'config.php' ) ;
// Указываем тип и кодировку
Header ( "Content-Type: text/html; charset=utf-8" ) ;
if ( ! isset ( $_GET [ "chat" ] ) ) $_GET [ "chat" ] = "form" ; $chat = $_GET [ "chat" ] ;
switch ( $chat )
{
case "form" :
form_login( ) ; break ;
case "login" :
login_to_chat( ) ; break ;
case "chat" :
show_chat( ) ; break ;
case "logout" :
logout_chat( ) ;
form_login( ) ; break ;
default :
form_login( ) ;
}
function form_login( )
{
echo '<table align="center" width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">' . "\n " ;
echo '<tr>' . "\n " ;
echo '<td align="center">' . "\n " ;
// форма входа
echo '<table align="center" width="250" height="100" cellspacing="2" cellpadding="2" border="0">' . "\n " ;
echo '<tr>' . "\n " ;
echo '<td colspan="2">Вход</td>' . "\n " ;
echo '</tr>' . "\n " ;
echo '<tr>' . "\n " ;
echo '<form action="' . $_SERVER [ "PHP_SELF" ] . '?chat=login" method="POST">' . "\n " ;
echo '<td>name:</td>' . "\n " ;
echo '<td><input type="text" name="name" class="r4" value=""></td>' . "\n " ;
echo '</tr>' . "\n " ;
echo '<tr>' . "\n " ;
echo '<td>pass:</td>' . "\n " ;
echo '<td><input type="password" name="pass" class="r4" value=""></td>' . "\n " ;
echo '</tr>' . "\n " ;
echo '<tr>' . "\n " ;
echo '<td> </td>' . "\n " ;
echo '<td><input type="submit" value="войти"></td>' . "\n " ;
echo '</tr>' . "\n " ;
echo '<tr>' . "\n " ;
echo '<td colspan="2" align="center">регистрация / забыл пароль</td>' . "\n " ;
echo '</tr>' . "\n " ;
echo '</table>' . "\n " ;
echo '</td>' . "\n " ;
echo '</tr>' . "\n " ;
echo '</table>' . "\n " ;
}
function login_to_chat( )
{
//Проверяем данные
$name = $_POST [ 'name' ] ;
$pass = $_POST [ 'pass' ] ;
if ( $name != '' AND $pass != '' )
{
//Создаем запрос
$sql = mysql_query ( "SELECT * FROM users WHERE name='" . $name . "' AND pass='" . md5 ( $pass ) . "'" ) ;
//Проверяем существует ли хоть одна запись
{
//Если есть, то создаем сессии и перенаправляем на эту страницу
$_SESSION [ 'name' ] = $login [ 'name' ] ;
$_SESSION [ 'pass' ] = $login [ 'pass' ] ;
$_SESSION [ 'SID' ] = md5 ( crypt ( $login [ 'name' ] , $login [ 'pass' ] ) ) ;
@ Header ( "Location: " . $_SERVER [ "PHP_SELF" ] . "?chat=chat" ) ; }
else
{
echo 'Неверный логин/пароль' ;
}
}
else
{
echo 'Введите данные' ;
}
}
function show_chat( )
{
echo 'Имя: ' . $_SESSION [ 'name' ] . '<br>' ;
echo 'Пасс: ' . $_SESSION [ 'pass' ] . '<br>' ;
echo '<a href="' . $_SERVER [ "PHP_SELF" ] . '?chat=logout">выход</a>' ;
}
function logout_chat( )
{
}
?>
(Отредактировано автором: 15 Октября, 2009 - 13:26:48)
-----Лень - двигатель прогресса, имхо
Работаю над проектами в сфере информационного сайтостроения.