![]() |
Логинка. php.
Пишу логинку:
PHP код:
Код:
user:coolpassПочему логинится только по последней строчке? п.с. спс)) |
$user, $pass
перезаписываються при каждом split(). нужно сделать примерно так: PHP код:
|
делай:
Код:
user:coolpass:у меня такая же проблемма била) просто ти не учитаваеш символа переноса.. user:coolpass<перенос> и тебе дает пароль: coolpass<перенос> вот и несходитса) |
mr.The, при первом же неправильном логине и пассе твой скрипт выйдет просто из выполнения, не проверив все.
eLWAux, ты сам пробовал так?) В исходном коде вообще-то trim используется, чтобы переносы убрать, и проблема не в этом. PHP код:
|
Цитата:
|
тот же код =)
PHP код:
|
Цитата:
|
PHP код:
Код:
:test:pass: |
Ну вот я сделал такую байду:
PHP код:
|
вот кто нить напрямую обратиться к base.php и вся ваша хэк логинка летит мимо
Делай тогда с .htaccess'ом, а то бред) |
Цитата:
|
Я вот вроде добился своего, код немного смешной, но рабочий :D
PHP код:
|
а это регистрация, если кому понадобится...
PHP код:
|
Ru}{eeZ меня видимо одного смущает, что с такой регой и страницей логина может быть неограниченное количество строк, с одинаковым логином, но разными паролями, а значит никто из таких пользователей залогиниться не сможет. Включенный Register_globals - зло. Твой скрипт будет рад обрабатывать 10к строк, если к нему будут обращаться каждую секунду.
Если же хочется мучаться с файлами, то: PHP код:
|
Да ладно, я всё это мутил ради самообразования( :confused: ), cms я пока писать не собираюсь) Но всеравно спасибо)
|
base.php:
PHP код:
|
советую в цикл foreach добавить break;
Код:
if($login == $user && $password == $pass) { переменные $good и $bad лучше объявить: Код:
$f = file("base.php");Код:
if ($good == 1 && $bad == 1) { В любом случае, наличие переменной $bad в коде не оправдано! Лучше убери. И следует контролировать длину проверяемых данных (функция substr) Код:
$f = file("base.php"); при поиске не нужно будет перебирать все элементы и использовать функцию in_array, а просто обратиться к массиву по индексу. |
| Время: 07:58 |