[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение, цикл
Страницы: 1, 2, 3, 4
Frost-56
Добрый день.
Помогите разобрать ошибку.
Скрипт должен сравнивать логин из get с логином из txt файла циклом и принимать меры.

<?PHP
$file = 'nick.txt';
$nick = $_GET['login'];

foreach($file as $val => $line)
{
if($line == $nick)
{
header ("Location: http://forum.ru/");
}
else
{
require_once 'log.php';
}
}



?>


Вылазиет ошибка:

Warning: Invalid argument supplied for foreach() in /home/ho1t1234946/for.ru/htdocs/www/login.php on line 5

В чем проблема ?
Игорь_Vasinsky
Цитата
$file = 'nick.txt';

$file = file('nick.txt');


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
tomash
http://www.php.su/articles/?cat=fs&page=005

_____________
Чтобы понять, что такое рекурсия - нужно понять, что такое рекурсия.
Frost-56
Спасибо большое.
Но тут теперь другая проблемка.
Если такого логина нету в Txt файле, то открывает log.php, это правильно.
Но если такой логин есть, то не кидает по ссылке. То есть в любом случае срабатывает else.
Игорь_Vasinsky
$file = file('nick.txt');
$nick = $_GET['login'];

if(in_array($nick, $file)){
header ("Location: http://forum.ru/");
}
else
require_once
'log.php';


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Frost-56
Здесь проблема в том, что он сравнивает только с последней строкой, а надо со всеми строками, поэтому я циклом делал.
Frost-56
Никто не поможет ? (
Игорь_Vasinsky
Цитата
Здесь проблема в том, что он сравнивает только с последней строкой

ну да)

почитай в мануале про in_array()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Frost-56
Цитата (Игорь_Vasinsky @ 11.01.2013 - 22:05)
Цитата
Здесь проблема в том, что он сравнивает только с последней строкой

ну да)

почитай в мануале про in_array()

Только что нашел в гугле на нескольких сайтах и прочитал.
Но толку от этого 0, надо же в цикле все делать, правильно ?
Игорь_Vasinsky
можно много как сделать, но нужно делать оптимальней

у тя в nick.txt в каком виде данные храняться?


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Frost-56
dsafsdf
dsfd22
3225


Вот. Построчно.
Игорь_Vasinsky
//Получили данные в массив - 1 строка = 1 элемент
$file = file('nick.txt');
$nick = $_GET['login'];

//Если $nick есть в массиве $file
if(in_array($nick, $file)){
//Перекинем на главную
header ("Location: http://forum.ru/");
}
else
//Если нет - то подключим страницу
require_once 'log.php';


вместо
Цитата
$file = file('nick.txt');

попробуй костыль
$file=explode(PHP_EOL, 'nick.txt');


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Frost-56
Попробовал, стало хуже, теперь он даже при сравнении с последней строкой сразу подключает страницу а не редеректит.
Игорь_Vasinsky
да он не последнюю строку в файле проверяет, а все строки

сделай так

$file = file('nick.txt');
$nick = $_GET['login'];

echo '<pre>' . print_r($file, 1) . '</pre>';
echo $nick;


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Frost-56
Адресная строка /login.php?login=3227

Результат:

Array
(
[
0] => dsafsdf

[1] => dsfd22

[2] => 3225
)
3227
Быстрый ответ:

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