URBANER
14.06.2009 - 13:48
Всем доброго времени суток!
Учу пхп тока два дня, хотел по пробывать написать скрипт авторизации.Ну что то не как вот не могу понять как.Я тут попытался понять что как и вроде получилось типо таго, ну короче вводишь логин и пароль, и ПХП скрипт проверяется в 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 написал(а):
Даже удивительно, почему не работает
Тут в этом форуме, где вы написали тем немеренно по авторизации. Воспользуйтесь поиском
Спустя 9 часов, 26 секунд (15.06.2009 - 07:25) gooder отдыхающий написал(а):
Спустя 10 дней, 3 часа, 31 минута, 22 секунды (25.06.2009 - 10:56) R-Yura написал(а):
Цитата |
для тебя уже давно все расписали Авторизация (php + mysql) и запоминание пользователей для начинающих |
Неа... пробовал на себе ничё не получилос...
Спустя 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) == 1 ) { $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
и если чесно считаю что копипаст - зло.
Просто в первом файле переменные создаюцца исправно, но во втором они пропадают
Спустя 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 |
и как это понимать? то есть ты понял, что копипаст - зло, потому что у тебя ничего не работает после него?
ну дак, да. помимо механизма сессий еще нужно основы знать.
Спустя 1 минута, 25 секунд (25.06.2009 - 11:37) gooder отдыхающий написал(а):
Копипаст и зло это отдельная тема
А материал писался для того, чтобы люди РАЗОБРАЛИСЬ, так же все по шагам, с комментариями...
Спустя 3 минуты, 58 секунд (25.06.2009 - 11:41) glock18 написал(а):
Цитата (gooder @ 25.06.2009 - 08:37) |
Копипаст и зло это отдельная тема |
вот это точно. если бы не копипаст, то для того чтобы переставить местами цитаты в сообщении выше, мне бы пришлось переписывать ручками одно из них
Спустя 5 минут, 57 секунд (25.06.2009 - 11:47) R-Yura написал(а):
бумбаран просто я....
я не написал session_start в первом
скрипте, поэту во втором оно и ничё не видело. Щас проверил - работет.
Спустя 21 день, 4 часа, 17 минут, 40 секунд (16.07.2009 - 16:05) R-Yura написал(а):
мне нужно ваше мнение об безопасности администратора, и еще тут проблема с входом чразу после регистрации
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) == 1 ) { $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) == 1 ) 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; } |