Frost-56
11.01.2013 - 20:18
Добрый день.
Помогите разобрать ошибку.
Скрипт должен сравнивать логин из 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
11.01.2013 - 20:22
Цитата |
$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
11.01.2013 - 20:24
http://www.php.su/articles/?cat=fs&page=005
_____________
Чтобы понять, что такое рекурсия - нужно понять, что такое рекурсия.
Frost-56
11.01.2013 - 20:25
Спасибо большое.
Но тут теперь другая проблемка.
Если такого логина нету в Txt файле, то открывает log.php, это правильно.
Но если такой логин есть, то не кидает по ссылке. То есть в любом случае срабатывает else.
Игорь_Vasinsky
11.01.2013 - 20:31
$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
11.01.2013 - 20:36
Здесь проблема в том, что он сравнивает только с последней строкой, а надо со всеми строками, поэтому я циклом делал.
Frost-56
11.01.2013 - 21:04
Никто не поможет ? (
Игорь_Vasinsky
11.01.2013 - 21:05
Цитата |
Здесь проблема в том, что он сравнивает только с последней строкой |
ну да)
почитай в мануале про 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
11.01.2013 - 21:06
Цитата (Игорь_Vasinsky @ 11.01.2013 - 22:05) |
Цитата | Здесь проблема в том, что он сравнивает только с последней строкой |
ну да)
почитай в мануале про in_array()
|
Только что нашел в гугле на нескольких сайтах и прочитал.
Но толку от этого 0, надо же в цикле все делать, правильно ?
Игорь_Vasinsky
11.01.2013 - 21:08
можно много как сделать, но нужно делать оптимальней
у тя в 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
11.01.2013 - 21:09
dsafsdf
dsfd22
3225
Вот. Построчно.
Игорь_Vasinsky
11.01.2013 - 21:14
$file = file('nick.txt');
$nick = $_GET['login'];
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
11.01.2013 - 21:17
Попробовал, стало хуже, теперь он даже при сравнении с последней строкой сразу подключает страницу а не редеректит.
Игорь_Vasinsky
11.01.2013 - 21:22
да он не последнюю строку в файле проверяет, а все строки
сделай так
$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
11.01.2013 - 21:25
Адресная строка /login.
php?login=3227
Результат:
Array
(
[0] => dsafsdf
[1] => dsfd22
[2] => 3225
)
3227
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.