Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите с авторизацией / 6 сообщений из 6, страница 1 из 1
17.05.2014, 10:46
    #38644086
Alex721
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с авторизацией
Делаю админку на сайте.
Необходимо организовать страницу авторизации.

Саму страницу сделал как в спойлере, проверка совпадения логина/пароля проходит успешно.
Но что делать дальше, когда проверка пароля прошла?
Как запомнить сессию и проверять ее на других страницах?


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
<?
ini_set('display_errors',1);
error_reporting(E_ALL);
echo '<h1>Вход</h1>';
// Страница авторизации

# Функция для генерации случайной строки
function generateCode($length=6) {
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
    $code = "";
    $clen = strlen($chars) - 1;  
    while (strlen($code) < $length) {
            $code .= $chars[mt_rand(0,$clen)];  
    }
    return $code;
}
include "../adm2/conf.php";

if(isset($_POST['submit']))
{
    # Вытаскиваем из БД запись, у которой логин равняеться введенному
    $query = mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
    $data = mysql_fetch_assoc($query);
    
    # Сравниваем пароли
    if($data['user_password'] === md5($_POST['password']))
    {
 






             
        # Переадресовываем браузер на страницу проверки нашего скрипта
       
	#header("Location: ../adm2/check.php"); 
 print "Входим...";
	exit();
    }
    else
    {
        print "Вы ввели неправильный логин/пароль";
    }
}

?>
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
Не прикреплять к IP(не безопасно) <input type="checkbox" name="not_attach_ip"><br>
<input name="submit" type="submit" value="Войти">
</form>




Пробовал вставлять сессию, ругается на неизвестную функцию:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
start_session();
$_SESSION['auth']['user_login'] =  $_SERVER['PHP_AUTH_USER'];
$_SESSION['auth']['user_password'] =  $_SERVER['PHP_AUTH_PW'];

if(isset($_SESSION['auth']['user_login']) && isset($_SESSION['auth']['user_password'])){


echo 'Авторизация успешна!';

if($_POST['exit'])
unset($_SESSION['auth']);
}else{
echo 'fail!';
}   




.../((
'(◔̯◔)
¸╱▓╲¸
._/ I_
...
Рейтинг: 0 / 0
17.05.2014, 11:08
    #38644096
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с авторизацией
Alex721ругается на неизвестную функцию:
Код: php
1.
start_session();

Возможно, Вы имели в виду другую функцию?
...
Рейтинг: 0 / 0
17.05.2014, 12:00
    #38644103
Alex721
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с авторизацией
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
<?
ini_set('display_errors',1);
error_reporting(E_ALL);
echo '<h1>Вход</h1>';

include "../adm2/conf.php";

session_start();

if(isset($_POST['submit']))
{
    # Вытаскиваем из БД запись, у которой логин равняеться введенному
    $query = mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
    $data = mysql_fetch_assoc($query);
    
    # Сравниваем пароли
    if($data['user_password'] === md5($_POST['password']))
    {
 

$_SESSION['login'] = 'ok');


/* if(isset($_SESSION['login']))
{
  print "ok";
}
else
{
  print "false";
}

*/

             
      #header("Location: ../adm2/check.php"); 
 print "Добро пожаловать, " .$_POST['login'];
	exit();
    }
    else
    {
        print "Вы ввели неправильный логин/пароль";
    }
}

?>
<form method="POST">
Логин <input name="login" type="text"><br>
Пароль <input name="password" type="password"><br>
Не прикреплять к IP(не безопасно) <input type="checkbox" name="not_attach_ip"><br>
<input name="submit" type="submit" value="Войти">
</form>


vkle, спасибо за ответ.

пробую так.
если строку ( $_SESSION['login'] = 'ok'); ) закомментировать, то
идут такие варнинги:
авторWarning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/u834689273/public_html/adm2/login.php:4) in /home/u834689273/public_html/adm2/login.php on line 18

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u834689273/public_html/adm2/login.php:4) in /home/u834689273/public_html/adm2/login.php on line 18
если эту строку не комментировать, то не работает вообще.
что не так?
...
Рейтинг: 0 / 0
17.05.2014, 12:04
    #38644104
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с авторизацией
...
Рейтинг: 0 / 0
17.05.2014, 12:13
    #38644118
Alex721
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с авторизацией
перенес session_start(); в самый верх и частично заработало.
дальше думаю разберусь.
спасибо!
...
Рейтинг: 0 / 0
19.05.2014, 09:42
    #38644843
Sanjar88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с авторизацией
$query = sprintf( "SELECT user_id, user_password FROM users WHERE user_login='%s' LIMIT 1",
mysql_real_escape_string($_POST['login']));

$result = mysql_query($query);
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите с авторизацией / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]