powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) проверьте пожалуста на наличие грубых ошибок...
7 сообщений из 7, страница 1 из 1
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33203605
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простенький скрипт на авторизацию...

index.php:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<? include("getcookie.php"); ?>
<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<center>
<p>This is simple page,but you can't watch it while you are not authorized...</p>
</center>
</body>
</html>

account.php:
Код: plaintext
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.
<? session_start(); ?>
<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<center>
<? 
if(isset($_SESSION['message'])){echo("<p class=error>".$_SESSION['message']."</p>");} 
?>
<form name="account" action="signin.php" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="250px" class="tablecontent">
<tr>
<td>User:</td>
<td><input type="text" name="username" value=""></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" value=""></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="SignInButton" value="Sign In"></td>
</tr>
</table>
</form>
</center>
</body>
</html>

signin.php:
Код: plaintext
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.
<?
session_start();

$secretword="secretword";	//secret word
$user="user";	//user name
//I think at page or database should be saved only password hash
$pass="5f4dcc3b5aa765d61d8327deb882cf99";	//md5 hash for word 'password'

function SignInError($message)
{
$_SESSION['message']=$message;
header("Location: account.php");
}

if(!$_POST['username']){SignInError("You must enter User name!");}
	else
	{
		if($pass==md5($_POST['password']) && $user==$_POST['username'])
			{
			//After check of the password and username
			//we set cookie which contains hash of the user and a confidential word(not password).
			// This hash will prevent to forge to the user authorization by sending cookie(containing only username).
			$lifetime=time()+ 86400 * 30 ; //  1  month
			setcookie("cqg_cookie",$user.','.md5($user.$secretword),$lifetime);
			$address="http://".$_SERVER['HTTP_HOST'].$_SESSION['uri'];
			header("Location: $address");
			}else{SignInError("User name or password is incorrect! Try again.");}
	}
?>

getcookie.php:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?
//We must include this file in each page of our site.
//Here check user authorized or not/
//if not we redirect him into signin page.
function SignInError($message)
{
session_start();
$_SESSION['uri']=$_SERVER['REQUEST_URI'];
$_SESSION['message']=$message;
header("Location: account.php");
}
if($_COOKIE["cqg_cookie"])
	{
	
	$secretword="secretword";
	list($c_username,$c_cookiehash)=split(',',$_COOKIE['cqg_cookie']);
	if(md5($c_username.$secretword)==$c_cookiehash){$username=$c_username;}
	else{SignInError("You have sent a bad cookie!");}
	
	}else{SignInError("You must Authorize!");}
?>

Cуть такова узер заходит на страницу, файл getcookie.php(который включен в каждую страницу) проверяет авторизировани ли он, если не то пересылает на страницу с авторизацией(account.php) и сохраняет в сессии адрес куда он хотел...
На account.php пользователь вводит имя и пароль и данные отправляются на signin.php где сверяются с правильными если все верно то переалдрессуем куда хотел узер раньше, если нет то устанавливаем в сессии сообщение об ошибке и посылаем на авторизацию снова...
_______________________________________________________________
@Мы медленно запрягаем, быстро ездим, и сильно тормозим.@
...
Рейтинг: 0 / 0
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33203668
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вникал.
Навскидку. Смысл стартовать сессию незарегистрированному пользователю?

----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33203679
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cНе вникал.
Навскидку. Смысл стартовать сессию незарегистрированному пользователю?

----------------------------------------
Артисты не приехали, приехали цыгане

чтоб сохранять адрес куда он хотел зайти до авторизации и сообщения об ошибках при не правильном вводе имени пользователя или пароля...
...
Рейтинг: 0 / 0
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33203711
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>чтоб сохранять адрес куда он хотел зайти до авторизации
Возвращать на предыдущую страницу по $_SERVER['HTTP_REFERER']?

>сообщения об ошибках при не правильном вводе имени
Ну так а сессии здесь причем? Осуществили проверку - вернули клиенту страницу с сообщением о неправильном вводе логина/пароля. В общем случае - стартовать сессии нужно зарегистрированным пользователям....
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33203995
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c>чтоб сохранять адрес куда он хотел зайти до авторизации
Возвращать на предыдущую страницу по $_SERVER['HTTP_REFERER']?
...
----------------------------------------
Артисты не приехали, приехали цыгане

Че то не совсем понял как это?
А если узер несколько раз неправильно вводил пароли ему несколько раз показывалось страница с ошибкой то $_SERVER['HTTP_REFERER'] не будет в действительности показывать куда он хотел...
...
Рейтинг: 0 / 0
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33204047
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если клиент несколько раз неправильно ввел данные для входа, то смысл отслуать его на страницу, с которой он пришел? Может лучше отправить его на страницу восстановления пароля????
Я вам сказал, что старт сессии кому попала дурная практика. Не хотите вносить изменения - не вносите. Со временм вы сами это поймете и все переделаете. страшного в этом ничего нет.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) проверьте пожалуста на наличие грубых ошибок...
    #33204124
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cЕсли клиент несколько раз неправильно ввел данные для входа, то смысл отслуать его на страницу, с которой он пришел? Может лучше отправить его на страницу восстановления пароля????
Я вам сказал, что старт сессии кому попала дурная практика. Не хотите вносить изменения - не вносите. Со временм вы сами это поймете и все переделаете. страшного в этом ничего нет.
----------------------------------------
Артисты не приехали, приехали цыгане

У меня здесь два варианта либо этот адрес через get передавать по всем страницам либо сессии.
Если есть еще варианты то предложите пожалуйста...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) проверьте пожалуста на наличие грубых ошибок...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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