Система авторизации пользователя - помогите разобраться.

Статус
В этой теме нельзя размещать новые ответы.

AmadMike

Новичок
возможно я плохо знаю - что такое сессии
Ну а что тут такого интересного, куки - один из способов передачи id сессии.
Про логин не подумал.
Да нормальный код, смысл с присваиванием $_POST в том, чтобы еще других юзеров (не админов) делать что-ли, я не понимаю? Ну вообще как то неэстетично это в $_POST таким образом данные вставлять =) хотя может и удобно...
 

Фанат

oncle terrible
Команда форума
Если пользователь - админ - значит присваиваем переменным POST
Бред какой-то. А ЗАЧЕМ?
почему нельзя ПРОСТО начать исполнять скрипт?
может быть меня дезинформировали
если тебя дезинформаровали, нужно срочно бежать в ДОКУМЕНТАЦИЮ!
 

filipchuk

Новичок
(* кстати - вопрос - почему нужно писать && - а не один значок & ??? Или можно все же писать один значек & ? может быть меня дезинформировали и в ПХП можно один знак ставить?)
оператор & используеться для побитовых операций, а тебе надо && - логический оператор
 

Batia

Новичок
Ну вообще как то неэстетично это в $_POST таким образом данные вставлять =) хотя может и удобно...
Это просто такой способ - чтобы дальнейшый код выполнился корректно.

Если это убрать прийдется написать немного больше кода...

Бред какой-то. А ЗАЧЕМ?
почему нельзя ПРОСТО начать исполнять скрипт?
как? он же стоит в блоке If() - + в этом блоке есть строка:
PHP:
 // Проверяем введенные данные - удаляем из них HTML и PHP код
 $user_login=strip_tags($_POST['login']);
 $user_pass=strip_tags($_POST['pasword']);
хотя можно ее конечно вынести за пределы блока - попробую сейчас так сделать...

_-----------------
а все понял! я ступил! Нужно было здесь:
PHP:
if( isset($_POST['login']) || isset($_POST['pasword']) )
сделать проверку на существование переменной:
PHP:
$_SESSION['auth']
И тогда если зашел админ - то блок выполнится так же - как еслиб зщаного ввели правильный логин и пароль.

Сейчас переделаю код - и выложу результат.


если тебя дезинформаровали, нужно срочно бежать в ДОКУМЕНТАЦИЮ!
там ничего об этом не написано - я смотрел.

Сейчас поисчу подробнее...

filipchuk
о :) спасибо - вы помогли мне развеять сомнения....

-~{}~ 21.11.06 19:02:

Вот - изменил слдегка код - получилось немного громоздко - но более правильно:
PHP:
<?
# Настройки доступа.
$admin_login="admin";
$admin_pass="123";

session_start();


	
if( (isset($_POST['login']) && isset($_POST['pasword'])) || (isset($_SESSION['auth']) && $_SESSION['auth']=='admin') )  {

 // Проверяем введенные данные - удаляем из них HTML и PHP код
 	if(isset($_POST['login']) && isset($_POST['pasword'])) {
 		$user_login=strip_tags($_POST['login']);
 		$user_pass=strip_tags($_POST['pasword']);
 	} else {
		$user_login=$admin_login;
 		$user_pass=$admin_pass;
	}
 
	if(($user_login==$admin_login) && ($user_pass==$admin_pass)) {
	  SetCookie("login",$user_login, time()+3600);
	  $_SESSION["auth"]="admin";
	  echo"Пароль верный! Куки выставлены! Можем юзать админпанель :)";
	}
	else {
	  echo"pass or login - incorrect";
	}
}  else  {

 	if(isset($_COOKIE['login'])) { 
		$login=$_COOKIE['login']; 
	} else { 
		$login=""; 
	}
	 	  echo'
	<form method="POST">
	Login: <input type="text" name="login" value="'.$login.'"><br>
	Passw: <input type="password" name="pasword" value=""><br>
	<input type="submit" value="Авторизация">
	</form>';
}
 
 
?>
<br>
<br>
<a href="index.php">Back</a>
 

AmadMike

Новичок
Ну и зачем 20 раз проверять одно и то же? Скажем случай когда данные приходят методом POST, ты проверяешь -
PHP:
if( (isset($_POST['login']) && isset($_POST['pasword']))...
и через строчку еще раз тоже самое
PHP:
if(isset($_POST['login']) && isset($_POST['pasword']))
, зачем?
А если сессия есть, то зачем проверять в ней логин и пароль? Сессия есть,
PHP:
$_SESSION['auth'] == 'admin'
- и вперед (значит админ). Если POST, то и проверяешь сразу - подходят данные или нет.
А вообще данный кусок кода не представляет такого уж большого интереса, ну нормально все в нем выполняется, вроде зацепок особых нет, да и придумать чего-то сверхестественного тоже нельзя. Все будет зависеть от того, как ты дальше будешь продумывать безопасность. Тренируйся - пиши, а потом ищи сам дырявые места.
 

Фанат

oncle terrible
Команда форума
там ничего об этом не написано - я смотрел.
ты крут, а мы сынки перед тобой.
если для тебя ничего нового в документации нету, то этот форум для тебя слишком слабый.
поищи себе другой. соответствующий своему уровню.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху