[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт авторризации
URBANER
Всем доброго времени суток!
Учу пхп тока два дня, хотел по пробывать написать скрипт авторизации.Ну что то не как вот не могу понять как.Я тут попытался понять что как и вроде получилось типо таго, ну короче вводишь логин и пароль, и ПХП скрипт проверяется в SQL наличие таблицы и поля с такими данными и если все норм авторизует, если нет то ошибку кидает.Помогите написать пожалуйста, ну не просто тупо скриптом, а прям расписать что как...

Я вот тут написал вроде форму регистрации:
HTML
<html>
<head>
<title>Авторизация</title>
</head>
<body>
<form action="test.php">
Логин:
<input type="text" name="text">
<br><br>
Пароль:
<input type="text" name="text">
<br><br>
<input type="Submit" value="Войти"
</form>
</body>
</html>


Очень жду вашей помощи! заранее спасибо:)



Спустя 1 час, 15 минут, 36 секунд (14.06.2009 - 14:04) LionKing написал(а):
Ну если по-простому, тогда тебе надо еще 2 скрипта:

1)Первый который проверяет данные из формы
(проверяет существует ли логин и если да то подходит ли к нему пароль)
Если логин/пароль введены правильно то передать во второй файл скажем значение id пользователя (например с помощью сессий).

2)Второй скрипт лучше держать в отдельном файле и подключать на все страницы которые ты хочешь закрыть, (в этом скрипте проверяется была ли передача id пользователя и если да то переменной Х присвоить значение "правда", если нет то удалить Х)

3)На страницах где ты подключаешь файл перед началом работы проверять существует ли Х если нет то перенаправлять на страницу с формой ввода логина/пароля

4)Файл закрытия сессий для кнопки ("выйти с аккаунта");

ЗЫ
Ты кажеццо не в той ветке написал)

Спустя 8 часов, 20 минут, 45 секунд (14.06.2009 - 22:24) HardWoman написал(а):
Даже удивительно, почему не работает smile.gifsmile.gif Тут в этом форуме, где вы написали тем немеренно по авторизации. Воспользуйтесь поиском

Спустя 9 часов, 26 секунд (15.06.2009 - 07:25) gooder отдыхающий написал(а):

Спустя 10 дней, 3 часа, 31 минута, 22 секунды (25.06.2009 - 10:56) R-Yura написал(а):
Цитата
для тебя уже давно все расписали
Авторизация (php + mysql) и запоминание пользователей для начинающих

Неа... пробовал на себе ничё не получилос... mad.gif

Спустя 13 минут, 56 секунд (25.06.2009 - 11:10) glock18 написал(а):
R-Yura, думаю, что нужно не злиться, а попытаться еще. пока не получится. здесь эту тему уже пропесочили очень много раз. воспользуйтесь поиском.

Спустя 2 минуты, 23 секунды (25.06.2009 - 11:12) R-Yura написал(а):
Примеры кода

Login.php
PHP
<?php   
         
if (isset($_POST['login']) AND isset($_POST['password'])) {

         
$login mysql_real_escape_string($_POST['login']);
         
$password mysql_real_escape_string($_POST['password']);

         
$sql mysql_query(" SELECT `id`,`admin` FROM `users` WHERE `login` = '{$login}' AND `password` = '{$password}' LIMIT 1 "); // Вытаскиваем id и индефикатор  прав админа
           
            
if ( mysql_num_rows($sql) == ) {
                  
$row mysql_fetch_array($sql);
                  
$_SESSION['user_id'] = $row['id'];
                  echo 
'Вы автроизованы';
                  if (
$row['admin'] == 1) {
                                        
$_SESSION['adm'] = 'true';
                                            echo 
' как администратор';
                                           } 
//проверяем на возможность админа
} else echo "Логин и пароь не совпадают!";



page.php
PHP
<?
session_start()
if ( isset (
$_SESSION['user_id'])) echo 'Текст виден только авторизованым пользавателям'
if ( isset (
$_SESSION['adm'])) echo 'Текст который не виден простым смертным';



чёт не работает... не могу понять где соль...

Спустя 6 минут (25.06.2009 - 11:18) glock18 написал(а):
то есть ты даже не знаешь "что у тебя не работает"?

Спустя 1 минута, 51 секунда (25.06.2009 - 11:20) Kuliev написал(а):
Цитата (glock18 @ 25.06.2009 - 13:18)
то есть ты даже не знаешь "что у тебя не работает"?

Конечно, он скопировал код пройдя по ссылке выше, а почитать внимательно коменты не удосужился.

Спустя 5 минут, 47 секунд (25.06.2009 - 11:26) R-Yura написал(а):
хм... одосулжылся, даже прочитал про механизм сессий на php.net
и если чесно считаю что копипаст - зло.

Просто в первом файле переменные создаюцца исправно, но во втором они пропадают blink.gif

Спустя 9 минут, 44 секунды (25.06.2009 - 11:36) glock18 написал(а):
Цитата (R-Yura @ 25.06.2009 - 08:26)
и если чесно считаю что копипаст - зло.

Цитата (Kuliev @ 25.06.2009 - 08:20)
Конечно, он скопировал код пройдя по ссылке выше, а почитать внимательно коменты не удосужился.

Цитата (R-Yura @ 25.06.2009 - 08:26)
Просто в первом файле переменные создаюцца исправно, но во втором они пропадают blink.gif


и как это понимать? то есть ты понял, что копипаст - зло, потому что у тебя ничего не работает после него? biggrin.gif ну дак, да. помимо механизма сессий еще нужно основы знать.

Спустя 1 минута, 25 секунд (25.06.2009 - 11:37) gooder отдыхающий написал(а):
Копипаст и зло это отдельная тема
А материал писался для того, чтобы люди РАЗОБРАЛИСЬ, так же все по шагам, с комментариями...

Спустя 3 минуты, 58 секунд (25.06.2009 - 11:41) glock18 написал(а):
Цитата (gooder @ 25.06.2009 - 08:37)
Копипаст и зло это отдельная тема


вот это точно. если бы не копипаст, то для того чтобы переставить местами цитаты в сообщении выше, мне бы пришлось переписывать ручками одно из них laugh.gif

Спустя 5 минут, 57 секунд (25.06.2009 - 11:47) R-Yura написал(а):
бумбаран просто я.... ph34r.gif
я не написал session_start в первом скрипте, поэту во втором оно и ничё не видело. Щас проверил - работет.

Спустя 21 день, 4 часа, 17 минут, 40 секунд (16.07.2009 - 16:05) R-Yura написал(а):
мне нужно ваше мнение об безопасности администратора, и еще тут проблема с входом чразу после регистрации ph34r.gif

PHP
$action = (isset($_GET['action'])) ? $_GET['action'] : 'login';

switch (
$action) {
case 
login:
if (isset(
$_POST['login']) AND isset($_POST['password'])) {
$login mysql_real_escape_string($_POST['login']);
$password md5($_POST['password']);
$sql mysql_query(" SELECT `id`,`admin` FROM `users` WHERE `login` = '{$login}' AND `password` = '{$password}' LIMIT 1 ");

if ( 
mysql_num_rows($sql) == ) {
$row mysql_fetch_array($sql);
$_SESSION['user_id'] = $row['id'];
echo 
'Вы автроизованы';
if (
$row['admin'] == 1)
{
$_SESSION['adm'] = 'true'; echo " как администратор\n";}
echo 
"<p><a href='index.php'>На главную</a></p>";

}else echo 
"Логин и пароь не совпадают!";
} else echo <<<HERE
<form action="" method="POST">
<table>
<tr><td>Логин:</td><td><input type="text" name="login" /></td></tr>
<tr><td>Пароль:</td><td><input type="password" name="password"></td></tr>
<tr><td align="center"><input type="submit" value="Вход" /></td><td></td></tr>
</table>
HERE;

break;
case 
register:
if (isset(
$_POST['login']) AND isset($_POST['pass1']) AND isset($_POST['pass2'])){
if ( 
$_POST['pass1'] == $_POST['pass2'] ){
$login mysql_real_escape_string($_POST['login']);
$pass md5($_POST['pass1']);

$sql mysql_query("SELECT `id` FROM `users` WHERE login = '{$login}' LIMIT 1");
if ( 
mysql_num_rows($sql) == ) echo "Такой пользователь уже существует.";
else 
$reg_sql mysql_query("INSERT INTO `users` ( `login` , `password` ) VALUES ( '$login', '$pass' )");
if (
$reg_sql) echo "Регистрация успешна.\n
<p><form action='?action=login' method='POST'>\n
<input type='HIDDEN' name='login' value='"
.$login."' />\n
<input type='HIDDEN' name='password' value='"
.$pass."' />\n
<input type='SUBMIT' value='Войти'>\n
</form></p>"
; else echo "Error!"; } else echo "Пароли не совпадают";

} else echo <<<REG
<table align="center">
<form action="" method="POST">
<tr><td>Логин:</td><td><input type="TEXT" name="login" size="30" /></td></tr>
<tr><td>Пароль:</td><td><input type="PASSWORD" name="pass1" size="30" /></td></tr>
<tr><td>Повторите пароль:</td><td><input type="PASSWORD" name="pass2" size="30" /></td></tr>
<tr><td></td><td><input type="SUBMIT" name="registration" size="30" value="Регистрация" /></td></tr>
</form>
</table>
REG;
break;
case 
logout:
session_destroy();
echo 
'Вы не авторизованы.';
break;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.