Forum Webscript.Ru
		Программирование => PHP => Тема начата: chaosstorm от 05 Июня 2003, 18:21:12
		
			
			- 
				Я ещё мало мыслю в PHP! Помогите пожалуйста!
 Такая проблема. Имеется скрипт.
 if ($login == 4chaosstorm )
 { include "то-то"; }
 ?>
 
 почему при загрузке страницы с данныйм скриптом выскакивает ошибка:
 Parse error: parse error, unexpected T_STRING in index.php on line 26
- 
				А я бы сделал так:
 
 
 
 global $login;
 
 if($login==\'4chaosstorm\')
 {
 // Что хочешь
 }
 
 elseif($login==\'zero\')
 {
 //что-то другое
 }
 
 else
 {
 echo "таких тут нет";
 }
 ?>
 
 
 
 Все .... а если тебе надо сравнивать пароль и логин то тут немного сложнее (пиши).
- 
				chaosstorm 
 ты не поставил кавычки.
 
 прочитай мануал целиком, станет проще (ссылка в FAQ этого раздела форума)
 
 ZeRo
 вообще говоря, прописывать пароль в скрипте, да еще и открытым текстом не стоит. Лучше юзать функции хеширования.
- 
				Я и говорю что сложнее !!!!
			
- 
				ZeRo
 Да и global $login ты перепутал с $login = $_POST[\'login\'] или $login = $_GET[\'login\']...
- 
				А что нужно сделать, чтобы праверялся пароль и логин, и ели они оба верны, то include то-то
			
- 
				Нужно хранить в двух переменных логин и пароль (лучше хеш пароля).
 $login = "root";
 $password = "MySecretPassword";
 if ($_POST[\'login\'] == $login && $_POST[\'password\'] == $password)
 {
 // пользователь прошел авторизацию
 }
 else
 {
 die("Имя пользователя или пароль указаны неверно");
 }
 // В целях безопасносит удаляем из памяти правильное имя пользователя и пароль
 unset ($login, $password);
 
- 
				А если несколько пользователей. Какой тогда код?
			
- 
				chaosstorm 
 А как на счет того, чтобы пойти и RTFM?
 Есть огромное количество разных способов!
 Можно хранить имена пользователей и хеши паролей в базе данных, в отдельном текстовом файле, прямо в теле скрипта или вообще отказаться от авторизации средствами php и положиться на Apache, используя .htaccess/.htpasswd. Все эти способы обсуждались тут (да и на других сайтах/факах/форумах) уже не один раз, юзай поиск.
- 
				парсе еррор был потому, что строки в РНР 
 ДОЛЖНЫ БЫТЬ заключены в кавычки.
 
 Несмотря на всю свою несомненную крутость, слово "4chaosstorm" - тоже строка, и должна быть в кавычках.
- 
				Если у тебя несколько пользователей, то сделай массив вида
 логин=>пароль, где логин является ключом, а пароль значением.
 
 $users=array(
 "4chaosstorm"=>"lamer",
 "someuser"=>"somepass"
 );
 и потом проверить можно просто
 $login=$_POST[\'login\'];
 if ($users[$login]== $_POST[\'password\'])
 
 только для логинов соблюдать правила, которые существуют для ключей массивов. Они перечислены в документации.