avatar_DangeR

Помощь по PHP: как правильно настроить авторизацию

Автор DangeR, 2012 Авг. 09, 09:40

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

Ключевые слова [SEO] phpавторизациявеб-разработка

DangeR

Всем привет.
С не давних пор занялся изучением Php и вот возникли первые проблемы
Я решился обратиться к вам уважаемые форумчане X-MU

Сеичас пытаюсь закончить написание авторизации ну не установить выход с панели управления

Вот собственно весь код:

connect.php


<?php
$db 
mssql_connect ("127.0.0.1","sa","4165969");
mssql_select_db ("muonline",$db);
?>



login.php
<?php
session_start
();


if(
$_GET['do'] == 'logout'){
unset(
$_SESSION['memb___id']);
session_destroy();
}

if(!
$_SESSION['memb___id']){
header("Location: login.php");
exit;
}
?>

<?
$login = $_SESSION['memb___id']
?>
<?php

if (empty($_SESSION['memb___id']))
{
print 
"
<html>
<head>
<title>Наша первая авторизация</title>
</head>
<body>
<form action='enter.php' method='post'>
<p>
Ваш логин:<br>
<input name='memb___id' type='text' size='15' maxlength='15'>
</p>
<p>
Ваш пароль:<br>
<input name='memb__pwd' type='password' size='15' maxlength='15'>
</p>
<p>
<input type='submit' name='submit' value='Войти'>
<br>
</p>
</form>
<br>
Незарегистрирован? <a href='reg.php'>жмакай сюда</a>
"
;

}
else
{

print 
"
Привет, 
$login ты авторизован
"
;


}
?>

<a href="admin.php?do=logout">Выход</a>
</body>
</html>


enter.php

<?php
session_start
();

if (isset(
$_POST['memb___id'])) { $login $_POST['memb___id']; if ($login == '') { unset($login);} }
if (isset(
$_POST['memb__pwd'])) { $password=$_POST['memb__pwd']; if ($password =='') { unset($password);} }



if (empty(
$login) or empty($password))
{
exit (
"Введена не вся информация, вернитесь и исправьте");
}

$login stripslashes($login);

$login htmlspecialchars($login);

$password stripslashes($password);

$password htmlspecialchars($password);


$login trim($login);
$password trim($password);


include (
"connect.php");

$result mssql_query("SELECT * FROM MEMB_INFO WHERE memb___id = '$login'",$db);
$myrow mssql_fetch_array($result);
if (empty(
$myrow['memb__pwd']))
{

exit (
"Извините, введённый вами логин или пароль неверный.");
}
else {

if (
$myrow['memb__pwd']==$password) {

$_SESSION['memb___id']=$myrow['memb___id'];

echo 
"Вы успешно зашли на сайт, сейчас вы будете перенаправлены на главную страницу. <a href='index.php'>Нажмите если нет сил ждать</a>";
}

else {

exit (
"Извините, введённый вами логин или пароль неверный.");
}
}
?>

epmak

1.
if (isset($_POST['memb___id'])) { $login = $_POST['memb___id']; if ($login == '') { unset($login);} }
if (isset($_POST['memb__pwd'])) { $password=$_POST['memb__pwd']; if ($password =='') { unset($password);} }
данные надо фильтровать. и логика странная на мой взгляд: для чего удалять то, чего нету и ты точно знаешь, что его нету?
зачем так растягивать валидацию данных? если пост пустой, то дальше идти не зачем, сразу в ошибку, а ты идешь как лесоруб, до победного конца, даже если топора нету :)


в общем, я тее рекомендую сесть и самому подумать, что делает твой скрипт и как можно его оптимизировать. рассмотри разные варианты логики проверки и подумай как следует как и что. И еще очень рекомендую начинать с хелло ворд, а не с панели авторизации. По коду видно, что ты еще совсем не знаешь пхп и не представляешь как и что делать.
мое имхо.

Похожие темы (5)