Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Как правильно организовать аторизацию на php (https://forum.antichat.xyz/showthread.php?t=73236)

Zircool 09.06.2008 23:35

Как правильно организовать аторизацию на php
 
Доброго времени суток.. Вопрос который меня мучает очень давно, как правильно организовать аторизацию на пхп.. Написал скрипт для аудита сайта и хочу к нему привязать доступ через пароль.Как?

Kaimi 09.06.2008 23:55

Сделай авторизацию как в шелле rst например:
PHP код:

$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>");
   } 


Zircool 10.06.2008 00:04

А по другому можно с использованием формы авторизации... Вот скрипт титульник для ввода пароля и логина...

PHP код:


<html>

<
head>
  <
title>Авторизация</title>

<
style>
body
{
    
padding-left:350px;
    
font-family:tahomaverdanaarial;
    
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/>
&
nbsp; &nbsp; &nbspLogin:<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="&nbsp;&nbsp; &nbsp; &nbsp;  Login &nbsp; &nbsp;  &nbsp;&nbsp;" /></center>
<
br/>
</
td>
</
tr>
</
form>

</
table>






</
body>

</
html

Диз под сайт верстал... И главный скрипт к кторорому нужно открыть доступ info.php. Как сдемать что бы доступ с скрипту info.php был только через форму авторизации...
В info.php просто лог статы...

Doom123 10.06.2008 00:10

в файле авторизации добавь при успешной авторизации например

define("site", "www.site.ru");

и подключай файл info.php

и в нём делай проверку

if(defined('site'))
{
Всё ок....
}
1
или создай сессию при успешной авторизации

$_SESSION['voshol'] = 1;

а в файле info.php

if(isset($_SESSION['voshol']))
{
всё ок
}

NOmeR1 10.06.2008 01:04

Проще некуда %)
Код:

<?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/>
&nbsp; &nbsp; &nbsp; 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="&nbsp;&nbsp; &nbsp; &nbsp;  Login &nbsp; &nbsp;  &nbsp;&nbsp;" /></center>
<br/>
</td>
</tr>
</form>
</table>
<?php
        }
?>
</body>
</html>



Время: 21:51