Просмотр полной версии : Как правильно организовать аторизацию на php
Доброго времени суток.. Вопрос который меня мучает очень давно, как правильно организовать аторизацию на пхп.. Написал скрипт для аудита сайта и хочу к нему привязать доступ через пароль.Как?
Сделай авторизацию как в шелле rst например:
$name='ec371748dc2da624b35a4f8f685dd122'; // логин пользователя (user login)
$pass='ec371748dc2da624b35a4f8f685dd122'; // пароль пользователя (user password)
if (!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER'])!==$name || md5($_SERVER['PHP_AUTH_PW'])!==$pass)
{
header('WWW-Authenticate: Basic realm="r57shell"');
header('HTTP/1.0 401 Unauthorized');
exit("<b>Access Denied</b>");
}
А по другому можно с использованием формы авторизации... Вот скрипт титульник для ввода пароля и логина...
<html>
<head>
<title>Авторизация</title>
<style>
body
{
padding-left:350px;
font-family:tahoma, verdana, arial;
font-size:11px;
text-align:center;
color:#000000;
}
table
{
border:1px solid #D1D1E1;
margin:50px;
padding:10px;
}
tr
{
text-align:center;
}
input
{
text-align:center;
pargin:2px 0;
padding-right:10px;
padding-left:20px;
border:1px solid #D1D1E1;
background:#ffffff;
padding:2px;
}
</style>
</head>
<body>
<table>
<form method="post">
<tr>
<td>
<br/>
Login:<input type="text" title="Введите Login" name="log" />
<br/>
<br />
Password:<input type="password" title="Введите пароль" name="passwd" />
<br/>
<br />
<center><input type="submit" name="sub" value=" Login " /></center>
<br/>
</td>
</tr>
</form>
</table>
</body>
</html>
Диз под сайт верстал... И главный скрипт к кторорому нужно открыть доступ info.php. Как сдемать что бы доступ с скрипту info.php был только через форму авторизации...
В info.php просто лог статы...
в файле авторизации добавь при успешной авторизации например
define("site", "www.site.ru");
и подключай файл info.php
и в нём делай проверку
if(defined('site'))
{
Всё ок....
}
1
или создай сессию при успешной авторизации
$_SESSION['voshol'] = 1;
а в файле info.php
if(isset($_SESSION['voshol']))
{
всё ок
}
Проще некуда %)
<?php
define("LOGIN", "mylogin");
define("PASSWORD", "000000");
define("MODE", TRUE); // TRUE - сравнивать логин и пароль без учёта регистра, FALSE - с учётом
if(isset($_POST['log']) && isset($_POST['passwd']) && is_logined(MODE)) {
setcookie('login', $_POST['log'], time()+31536000);
setcookie('passwd', $_POST['passwd'], time()+31536000);
}
function is_logined($register) {
if($register == false) {
if(($_COOKIE['login'] == LOGIN && $_COOKIE['passwd'] == PASSWORD) || ($_POST['log'] == LOGIN && $_POST['passwd'] == PASSWORD)) {
return true;
}
} else if($register == true) {
if((strcasecmp($_COOKIE['login'],LOGIN)==0&&strcasecmp($_COOKIE['passwd'],PASSWORD)==0) || (strcasecmp($_POST['log'],LOGIN)==0&&strcasecmp($_POST['passwd'],PASSWORD)==0)) {
return true;
}
}
return false;
}
?>
<html>
<head>
<title>Авторизация</title>
<style>
body
{
padding-left:350px;
font-family:tahoma, verdana, arial;
font-size:11px;
text-align:center;
color:#000000;
}
table
{
border:1px solid #D1D1E1;
margin:50px;
padding:10px;
}
tr
{
text-align:center;
}
input
{
text-align:center;
pargin:2px 0;
padding-right:10px;
padding-left:20px;
border:1px solid #D1D1E1;
background:#ffffff;
padding:2px;
}
</style>
</head>
<body>
<?php
if(is_logined(MODE)) {
// Код если всё в порядке
} else {
?>
<table>
<form method="post">
<tr>
<td>
<br/>
Login:<input type="text" title="Введите Login" name="log" />
<br/>
<br />
Password:<input type="password" title="Введите пароль" name="passwd" />
<br/>
<br />
<center><input type="submit" name="sub" value=" Login " /></center>
<br/>
</td>
</tr>
</form>
</table>
<?php
}
?>
</body>
</html>
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot