Помощник
|
Авторизация на сайте |
panika |
8.2.2009, 18:41;
Ответить: panika
Сообщение
#12
|
|
auth_admin.php
[PHP]<?php $login = "admin";//Логин $pass = "";//md5 кеш Пароля # Проверка вода логина и пароля if(isset($_POST['login'])){$vlogin = $_POST['login'];} if(isset($_POST['pass'])){$vpass = md5($_POST['pass']);} // Если ввели пароль, кодируем md5 для дальнейшего сравнения //================================================================== // Остальная часть кода будет проверять схожесть логина и запись в Cookie //================================================================== if($_GET['auth']=='exit'){ //Если пользователь выходит из панели // ADMIn EXIT setcookie("user",""); setcookie("pass",""); header("Location: admin.php"); exit(); }else if($_GET['auth']=='yes'){ if($vlogin==$login){ if($vpass==$pass){ setcookie("user","$login",time()+ "9100"); setcookie("pass","$pass",time()+ "9100"); $_SESSION['admin'] = true; } } header("Location: admin.php"); exit(); }else{ if($_COOKIE['user']=="$login" && $_COOKIE['pass']=="$pass"){ setcookie("user","$login",time()+ "9100"); setcookie("pass","$pass",time()+ "9100"); $_SESSION['admin'] = true; } } ?>[/PHP] admin.php [PHP] <?php include 'engine/auth_admin.php'; ?> <?if($_SESSION['admin']){?> Вы успешно авторизовались!! <? }else{ ?> Вход в админпанель. <FORM ACTION="admin.php?auth=yes" METHOD=POST> LOGIN:<INPUT TYPE=TEXT NAME=login><br> PASSWORD:<INPUT type="password" name="pass" SIZE=20> <INPUT type=submit> </FORM> <? } ?> [/PHP] Даже если ты узнаешь md5 кеш Пароля то войти все равно не сможешь :laugh: Кстати зачем копировать скрипты с других сайтов, а самому слабо написать? |
|
|
asbury |
15.4.2009, 19:59;
Ответить: asbury
Сообщение
#13
|
|
#5 скажите пожалуйста, вот я не понимаю, как сессия будет читаться в начале других страниц если нё там указать просто как фунцию
<? session_start(); /* эта функция открывающая или продолжающая работу с сессиями. Она должна быть задана в самом начале страницы до отправки заголовка страницы. */ check(); //наша функция проверки. ?> Другое дело если инклюдом, или типа в хэше данные храняться?:) |
|
|
locky-yotu |
21.6.2009, 22:10;
Ответить: locky-yotu
Сообщение
#14
|
|
Добрый день!
Тема еще жива? ;) Ситуация такая: Пытаюсь реализовать авторизацию на своем сайте, используя код, предложенный Webmaster'ом в посте #4. С md5-хешем и экранированием спец-символов у меня этот код работать не захотел (пока?), так что от использования md5 и mysql_escape_string я временно отказался. В итоге login.php выглядит вот так: [php] <? session_start(); header("Content-Type: text/html; charset=cp1251"); function show_form($message) ?> <?=$message?><br/> <form method="post" name='form' id='form' action='login.php'> <B>Имя:</B> <input type='text' name='user' /> <br /> <B>Пароль:</B> <input type='password' name='pass' /> <input type='submit' value="Вход" name='subm'/> </form> <? die(); } //Проверка нажатия кнопки submit if(!isset($_POST['subm'])) show_form(''); //Проверка на введенные данные if(!isset($_POST['user']) OR !isset($_POST['pass']) OR empty($_POST['user']) OR empty($_POST['pass'])) show_form("Не правильная пара логин-пароль."); // подключение к БД - соответственно прописываем свои данные доступа к базе данных $connection = mysql_connect("localhost","root","") ; mysql_select_db('mysite') ; // НЕ смог достучаться до БД if (mysql_error()) die(); $user = $_POST['user']; $pass = $_POST['pass']; // Проверяем есть ли пользователь с таким логином и паролем $result = mysql_query("SELECT `id` FROM `checker` WHERE `name`='".$user."' AND `pass`='".$pass."'"); // если есть - впускаем if(mysql_num_rows($result)==1) $_SESSION['admin']=$adm; // Если нет - пишем так. else show_form("Incorrect login-password."); // Далее сообщение которое увидит вошедший пользователь ?> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" > <meta http-equiv="refresh" content="3; url=news.html" > Здравствуйте <?=mysql_escape_string($user);?>! [/php]В итоге после ввода верной пары логин-пароль происходит редирект на news.html (это форма добавления новостей на сайт с внесением их в БД, должна быть доступна только администратору). НО! Если просто вбить в адресной строке %sitename%/news.html, то опять же попадаем на эту страницу, хотя логин и пароль не вводились. Вопрос: что не так (если не так) в коде, и какой код надо добавить на news.html для того, чтобы зайти на них можно было только после аутентификации? PS: Извиняюсь за возможную несвязность, надеюсь все понятно)) |
|
|
Apay |
21.6.2009, 22:26;
Ответить: Apay
Сообщение
#15
|
|
1) что такое $adm - эта переменная нигде не инициализируется, может лучше написать
[php]// если есть - впускаем if(mysql_num_rows($result)==1) $_SESSION['admin']=$user;[/php]2) сделайте не news.html, а news.php, в самом начале которого вставьте (такое нужно вставить в начало каждой защищенной страницы) [php]<? session_start(); if( !isset($_SESSION['admin']) ) die('Access dinied!'); ?> [/php]3) при логауте не забудьте сделать [php]unset($_SESSION['admin'])[/php] |
|
|
Webmaster_hb |
21.6.2009, 22:28;
Ответить: Webmaster_hb
Сообщение
#16
|
|
на всех страницах которые подлежат авторизации
вы должны добавить код проверяющий есть ли в переменной $_SESSION['admin'] какое либо значение для этого в самом начале файло надо написать [PHP]<? session_start(); if (!isset($_SESSION['admin']) || $_SESSION['admin']) exit(); ?>[/PHP] |
|
|
locky-yotu |
22.6.2009, 1:03;
Ответить: locky-yotu
Сообщение
#17
|
|
to Apay, Webmaster
Спасибо, разобрался, все работает! :) upd: Только с разлогиниванием непонятно. Пишу: [php] <table> <tr> <td align="center"> <input type="submit" name="submit_edited" class="buttons" value="Выйти" /> </td> </tr> </table> <? if(@$submit_edited) { unset($_SESSION['admin']); echo "Log out!"; } ?> [/php]И никакого эффекта. Условие в if задано неверно? Или какая-то другая ошибка? |
|
|
Apay |
22.6.2009, 8:20;
Ответить: Apay
Сообщение
#18
|
|
[PHP]
<form method="post"> <input type="submit" name="submit_edited" class="buttons" value="Выйти" /> </form> <? if(isset($_POST['submit_edited']) { unset($_SESSION['admin']); echo "Log out!"; } ?>[/PHP] |
|
|
locky-yotu |
22.6.2009, 12:08;
Ответить: locky-yotu
Сообщение
#19
|
|
Apay
Не помогло :( В твоем коде я добавил ")" в if, иначе был sintaxys error. Я поставил проверку нажатия кнопки следующим образом: [PHP] <table> <tr> <td align="center"><input type="submit" name="exit" class="buttons" value="Выйти" /></td> </tr> </table> <? if (isset($_POST['exit'])) { //unset($_SESSION['admin']); echo ("<meta http-equiv=\"refresh\" content=\"0; url=index.html\" >"); } ?> [/PHP] Т.е. при нажатии на кнопку должен происходить редирект на главную. Нажимаю - не работает. Хотя если в if выставить отрицание [PHP] <? if (!isset($_POST['exit'])) { //unset($_SESSION['admin']); echo ("<meta http-equiv=\"refresh\" content=\"0; url=index.html\" >"); } ?> [/PHP] , то редирект осуществляется моментально при загрузке страницы. В чем может быть причина? |
|
|
locky-yotu |
22.6.2009, 12:30;
Ответить: locky-yotu
Сообщение
#20
|
|
На всякий случай привожу весь код страницы:
[PHP] <? session_start(); if( !isset($_SESSION['admin']) ) die('Access dinied!'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>Добавление новостей</title> <style type="text/css"> <!-- body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 400px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; } input { width: 250px; border: solid 1px #CCCCCC; } textarea { width: 250px; height: 100px; border: solid 1px #CCCCCC; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } --> </style> </head> <body> <h3>Добавление новостей</h3> <form action="save_form.php" method="post" name="test_form"> <table border="1" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" align="center"><strong>Добавить новость</strong></td> </tr> <tr> <td width="150">Аннотация :</td> <td><textarea name="test_theme"></textarea></td> </tr> <tr> <td width="150">Сообщение :</td> <td><textarea name="test_mess"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" class="buttons" value="Добавить новость" /> <input type="reset" class="buttons" value="Очистить" /> </td> </tr> </table> </form> <br /> <form action="view_data.php" method="post" name="view_result"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Посмотреть все новости" /></td> </tr> </table> </form> <form action="del_data.php" method="post" name="delete_data"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td> </tr> </table> </form> <form action="update_data.php" method="post" name="update_data"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Редактирование и обновление данных" /></td> </tr> </table> </form> <form action="mailing.php" method="post" name="mailing"> <table> <tr> <td align="center"><input type="submit" class="buttons" value="Выслать рассылку" /></td> </tr> </table> </form> <table> <tr> <td align="center"><input type="submit" name="exit" class="buttons" value="Выйти" /></td> </tr> </table> <? if (isset($_POST['exit'])) { //unset($_SESSION['admin']); echo ("<meta http-equiv=\"refresh\" content=\"0; url=index.html\" >"); } ?> </body> </html> [/PHP] |
|
|
Apay |
22.6.2009, 12:49;
Ответить: Apay
Сообщение
#21
|
|
да, очеятался, скобку упустил.
один вопрс, я писал <form method="post"> где форма???
<input type="submit" name="submit_edited" class="buttons" value="Выйти" /> </form> |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Боты могут делать пушподписки на моём сайте? | 1 | Megaspryt | 587 | Сегодня, 12:41 автор: Gerga |
|
Быстрый и качественный обмен на сайте Baksman.org Обмен Bitcoin, BTC-e, PM, Qiwi, Yandex money, Карты банк |
53 | Baksman | 33705 | Сегодня, 11:29 автор: Baksman |
|
CryptoCloud — прием USDT, BTC, ETH, LTC на любом сайте | 36 | CryptoCLoud | 10652 | 16.4.2024, 16:02 автор: CryptoCLoud |
|
Странный трафик на сайте длительное время | 33 | TABAK | 8891 | 12.4.2024, 5:56 автор: Skyworker |
|
Алтуально ли заработок на сайте? Оцение пожалуйста идею |
10 | hitman20 | 1885 | 1.2.2024, 5:37 автор: Liudmila |
Текстовая версия | Сейчас: 23.4.2024, 12:44 |