X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

10 страниц V  < 1 2 3 4 5 6 7 8 9 10 >
Открыть тему
Тема закрыта
> Авторизация на сайте
panika
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
asbury
сообщение 15.4.2009, 19:59; Ответить: asbury
Сообщение #13


#5 скажите пожалуйста, вот я не понимаю, как сессия будет читаться в начале других страниц если нё там указать просто как фунцию
<?
session_start();
/* эта функция открывающая или продолжающая работу с сессиями. Она должна быть задана в самом начале страницы до отправки заголовка страницы. */
check(); //наша функция проверки.
?>

Другое дело если инклюдом, или типа в хэше данные храняться?:)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
locky-yotu
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
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
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
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
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
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
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
Apay
сообщение 22.6.2009, 12:49; Ответить: Apay
Сообщение #21


да, очеятался, скобку упустил.

один вопрс, я писал
<form method="post">
<input type="submit" name="submit_edited" class="buttons" value="Выйти" />
</form>
где форма???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
10 страниц V  < 1 2 3 4 5 6 7 8 9 10 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Боты могут делать пушподписки на моём сайте?
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


 



RSS Текстовая версия Сейчас: 23.4.2024, 12:44
Дизайн