Forum Webscript.Ru

Программирование => PHP => Тема начата: chaosstorm от 05 Июня 2003, 18:21:12

Название: Нужна помощь!
Отправлено: chaosstorm от 05 Июня 2003, 18:21:12
Я ещё мало мыслю в PHP! Помогите пожалуйста!
Такая проблема. Имеется скрипт.
if ($login == 4chaosstorm )
{ include "то-то"; }
?>

почему при загрузке страницы с данныйм скриптом выскакивает ошибка:
Parse error: parse error, unexpected T_STRING in index.php on line 26
Название: Нужна помощь!
Отправлено: ZeRo от 05 Июня 2003, 18:33:00
А я бы сделал так:



global $login;

if($login==\'4chaosstorm\')
{
// Что хочешь
}

elseif($login==\'zero\')
{
//что-то другое
}

else
{
echo "таких тут нет";
}
?>



Все .... а если тебе надо сравнивать пароль и логин то тут немного сложнее (пиши).
Название: Нужна помощь!
Отправлено: Xander от 05 Июня 2003, 18:39:26
chaosstorm
ты не поставил кавычки.

прочитай мануал целиком, станет проще (ссылка в FAQ этого раздела форума)

ZeRo
вообще говоря, прописывать пароль в скрипте, да еще и открытым текстом не стоит. Лучше юзать функции хеширования.
Название: Нужна помощь!
Отправлено: ZeRo от 05 Июня 2003, 18:50:35
Я и говорю что сложнее !!!!
Название: Нужна помощь!
Отправлено: FreeSpace от 05 Июня 2003, 19:29:56
ZeRo
Да и global $login ты перепутал с $login = $_POST[\'login\'] или $login = $_GET[\'login\']...
Название: Нужна помощь!
Отправлено: chaosstorm от 05 Июня 2003, 21:44:17
А что нужно сделать, чтобы праверялся пароль и логин, и ели они оба верны, то include то-то
Название: Нужна помощь!
Отправлено: FreeSpace от 05 Июня 2003, 21:51:01
Нужно хранить в двух переменных логин и пароль (лучше хеш пароля).
$login = "root";
$password = "MySecretPassword";
if ($_POST[\'login\'] == $login && $_POST[\'password\'] == $password)
{
// пользователь прошел авторизацию
}
else
{
die("Имя пользователя или пароль указаны неверно");
}
// В целях безопасносит удаляем из памяти правильное имя пользователя и пароль
unset ($login, $password);
Название: Нужна помощь!
Отправлено: chaosstorm от 05 Июня 2003, 23:10:16
А если несколько пользователей. Какой тогда код?
Название: Нужна помощь!
Отправлено: FreeSpace от 05 Июня 2003, 23:27:42
chaosstorm
А как на счет того, чтобы пойти и RTFM?
Есть огромное количество разных способов!
Можно хранить имена пользователей и хеши паролей в базе данных, в отдельном текстовом файле, прямо в теле скрипта или вообще отказаться от авторизации средствами php и положиться на Apache, используя .htaccess/.htpasswd. Все эти способы обсуждались тут (да и на других сайтах/факах/форумах) уже не один раз, юзай поиск.
Название: Нужна помощь!
Отправлено: Меняздесьдавнонет от 06 Июня 2003, 11:13:00
парсе еррор был потому, что строки в РНР
ДОЛЖНЫ БЫТЬ заключены в кавычки.

Несмотря на всю свою несомненную крутость, слово "4chaosstorm" - тоже строка, и должна быть в кавычках.
Название: Нужна помощь!
Отправлено: Меняздесьдавнонет от 06 Июня 2003, 11:22:25
Если у тебя несколько пользователей, то сделай массив вида
логин=>пароль, где логин является ключом, а пароль значением.

$users=array(
"4chaosstorm"=>"lamer",
"someuser"=>"somepass"
);
и потом проверить можно просто
$login=$_POST[\'login\'];
if ($users[$login]== $_POST[\'password\'])

только для логинов соблюдать правила, которые существуют для ключей массивов. Они перечислены в документации.