[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с авторизацией
Aleks2215
Есть форма ввода

<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Текстовые сообщения</title>
</
head>

<
form action="getUses.php">
<
table align=center>
<
caption> Вход в систему </caption>
<
tr>
<
td align=right> Имя
<td align=left> <input name=Uses>
<
tr>
<
td align=right> Почта
<td align=left> <input name=Pht>
<
tr>
<
td align=right> Цвет
<td align=left>
<
select style="background-color:#009966 ">
<
option style="background-color:#00CC33 "> 1
<option style="background-color:#99CC00 "> 1
<option style="background-color:#999999 "> 1
</select>
<
tr>
<
td align=center colspan=2> <input type=submit value="Вход">
</
table>
</
form>
</
html>

Из нее мы получаем переменную $Uses. Эта форма не суть важна, в ней все верно, я просто хотел дать более полную информацию об устройстве скрипта. Затем переходим на следующую форму

<?php
$Uses= $_GET['Uses'];
$Pht= $_GET['Pht'];

$arr = file("Uses1.txt");
for ($i=0; $i < count($arr); $i++) {
if ($Uses == $arr[$i])
echo "нашли!";
}

Здесь задаем массив из текстового файла Uses1.txt, в котором имеются имена с таким расположением:
Aleks
Tony
John

Проблема в том, что не получается корректно сравнить введенную переменную с теми, что находятся в текстовом файле. Он сравнивает только с последним именем, находящемся в файле, т.е. в нашем случае с John. Пожалуйста подскажите где ошибка, а то я уже неделю с этим мучаюсь(



Спустя 28 минут, 10 секунд (10.05.2010 - 20:52) ak167 написал(а):
Всё))) Уже разобрался сам!))) Оказалось, что просто не надо было скрытую переменную в html-форме отправки данных называть так же как и массив данных, который образуется при чтении из БД!
Так что все ок. Тему можно удалить.

Спустя 19 минут, 52 секунды (10.05.2010 - 21:12) Aleks2215 написал(а):
Чего чего? Ты случайно темой не ошибся??? Тем более что название переменной $Uses, а массива $arr

Спустя 19 минут, 44 секунды (10.05.2010 - 21:32) Alecs написал(а):

$Uses= $_GET['Uses'];
$Pht= $_GET['Pht'];

$arr = file("Uses1.txt");
for ($i=0; $i < count($arr); $i++) {
if ($Uses == $arr[$i]) {
echo "нашли!";
break;}
}

echo $arr[$i];

Спустя 28 минут, 23 секунды (10.05.2010 - 22:00) Aleks2215 написал(а):
Цитата (Alecs @ 10.05.2010 - 18:32)

$Uses= $_GET['Uses'];
$Pht= $_GET['Pht'];

$arr = file("Uses1.txt");
for ($i=0; $i < count($arr); $i++) {
if ($Uses == $arr[$i]) {
    echo "нашли!";
    break;}
}

echo $arr[$i];

Ничего не изменилось( он так же выводит сообщение лишь в том случае, когда введенное имя совпадает с ПОСЛЕДНИМ именем в файле Uses1.txt.

Спустя 18 минут, 6 секунд (10.05.2010 - 22:18) Raito-kun написал(а):
$Uses = $_POST['Uses'];
$Pht = $_POST['Pht'];

$arr = file("Uses1.txt");


foreach($arr as $value)
{
$value = trim($value);
if ($Uses == $value)
echo "нашли!";
}

<html>
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>
Текстовые сообщения</title>
</head>

<form
action="" method = POST>
<table
align=center>
<caption>
Вход в систему </caption>
<tr>
<td
align=right> Имя
<td align=left> <input name=Uses>
</tr>
<tr>
<td
align=center colspan=2> <input type=submit value="Вход">
</tr>
</table>
</form>
</html>

Спустя 14 минут, 15 секунд (10.05.2010 - 22:32) Raito-kun написал(а):
проблема в том, что каждая строчка у вас в строке заканчивается символом конца строки, с чем прекрасно справляется функция trim()

Спустя 1 минута, 12 секунд (10.05.2010 - 22:34) Aleks2215 написал(а):
Спасибо тебе огромное rolleyes.gif
А первую форму не стоило редактировать, там все нужно) Я просто из второй все лишнее убрал)) И все равно тебе ПРЕОГРОМНЕЙШЕЕ спасибо еще раз)

Спустя 5 минут, 24 секунды (10.05.2010 - 22:39) Aleks2215 написал(а):
не подскажешь еще если не сложно, как вернуться на начальную страницу если имена совпали? rolleyes.gif

Спустя 6 минут, 37 секунд (10.05.2010 - 22:46) Raito-kun написал(а):
можно на другую и не переходить, просто скопируй мой прошлый пост в 1 файл, обрамив php-код. но если обязателен переход туда-обратно

foreach($arr as $value)
{
$value = trim($value);
if ($Uses == $value)
header("Location: путь_к_начальной_странице.php");
}
echo "не найден";

Спустя 14 минут, 33 секунды (10.05.2010 - 23:00) Aleks2215 написал(а):
Прямо не знаю, что бы я без тебя делал...
Спасип)
А какой командой можно остановить выполнение скрипта при условии? Чтобы после перехода на первую страницу выполнении всего того что идет во 2 скрипте после перехода останавливалось?

Спустя 5 минут, 21 секунда (10.05.2010 - 23:06) Raito-kun написал(а):
ах да, забыл
if ($Uses == $value)
{
header("Location: some.php");
exit();
}

Спустя 9 минут, 43 секунды (10.05.2010 - 23:15) Aleks2215 написал(а):
Класс) Очень мне помог

Спустя 10 часов, 51 минута, 2 секунды (11.05.2010 - 10:06) Aleks2215 написал(а):
А как сделать чтобы проверялось 2 условия и при их выполнении что то делалось?
К примеру в текстовом файле есть
Aleks
11111
Tony
22222
John
33333
Первое это имя, а второе пароль.

<?php
$Uses= $_GET['Uses'];
$Pass= $_GET['Pass'];

$arr = file("Uses1.txt");
foreach($arr as $value)
{
$value = trim($value);
if ($Uses == $value and $Pass == $value)

Таким кодом сделать не получилось, а нужно, чтобы при совпадении введенных имени и пароля с имеющимися совершалось какое то действие.
$Uses это имя пользователя
$Pass пароль
Форма входа вот

<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Текстовые сообщения</title>
</
head>

<
form action="getUses.php">
<
table align=center>
<
caption> Вход в систему </caption>
<
tr>
<
td align=right> Имя
<td align=left> <input name=Uses>
<
tr>
<
td align=right> Пароль
<td align=left> <input name=Pass>
<
tr>
<
td align=center colspan=2> <input type=submit value="Вход">
</
table>
</
form>
</
html>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.