Гостевая книга...отображение данных

metravs

Guest
Гостевая книга...отображение данных

При попытке вывести данные из файла, в который были записаны данные имя... и т.д. пишет следующие строки, но данные все равно выводит:
Notice: Undefined offset: 3 in Z:\home\localhost\www\init.inc on line 20
Notice: Undefined offset: 2 in Z:\home\localhost\www\init.inc on line 20
Notice: Undefined offset: 1 in Z:\home\localhost\www\init.inc on line 20
Вот кусочек кода с 20-й строкой
PHP:
while (! feof($fh)):
$line = fgets($fh, 4096);
list($date, $name, $email, $comments) = explode("|", $line); //это 20-я строка
if ($name != ""):
 

Кром

Новичок
Посмотри что у тебя в $line.

>list($date, $name, $email, $comments) = explode("|", $line); //это 20-я строка

В данном случае у тебя данные только в $date записываются.
 

metravs

Guest
Да не, данные записываются верно, даже выводятся, только после 3-х сообщениях об ошибках. Не пойму в чем дело...
 

kruglov

Новичок
Так что в $line находится-то?

Сколько там палочек вертикальных? А то может там и нету ничего вообще, ибо последняя пустая строка, например.
 

metravs

Guest
Вот что показал print_r(explode("|", $line));
Array ( [0] => Jul 12 2005 [1] => Артем [2] => [email protected] [3] => Приятно общаться с умным человеком! )
Array ( [0] => )
 

metravs

Guest
Пустая-то пустая, но почему выводит второй раз Array ([0] => )
ведь заполнялась форма единожды?
 

nighthunter

Новичок
metravs
Так у тебя наверняка в последней строке с текстом в конце стоит \n
 

metravs

Guest
Помогло!!!
Убрал \n и сообщение об ошибке изчезло!

Только не понял почему оно появлялось, ведь \n - это переход на другую строку...
И теперь, если хочу добавить еще одно сообщение с вводом имени и мыла, то получается фигня какая-то! не добавляется новое...!?!
 

metravs

Guest
можно правда обойти и поставить перед list символ @, но ведь это же не решение проблемы...
 

Кром

Новичок
>Убрал \n и сообщение об ошибке изчезло!
>Только не понял почему оно появлялось, ведь \n - это переход на другую строку...

Ты вообще логику в работе своего скрипта видишь или нет? А в своих вопросах?

>И теперь, если хочу добавить еще одно сообщение с вводом имени и мыла, то получается фигня какая-то! не добавляется новое...!?!

И что теперь? На основании твоего объяснения "фигня какая-то" мы должны тебе помочь? :)
 

metravs

Guest
фигня какая-то - это то, что не добавляется новое сообщение, старое как-то искажается..., т.е. в конце ячейки сообщение дописывется дата и баста, новое не добавляется..
 

kruglov

Новичок
не убирайте \n, просто проверяйте trim(строчки) на пустоту '' и делайте continue, если да.
 

Кром

Новичок
фигня какая-то - это то, что не добавляется новое сообщение, старое как-то искажается..., т.е. в конце ячейки сообщение дописывется дата и баста, новое не добавляется..
Ну надо же, какая трагедия.
Ну а если подумать над тем что происходит, найдутся какие-либо идеи?
Делал построчный вывод, потом убрал перевод строки:
data|mail|email|commentdata|name|email|comment
И теперь не понимаешь, почему у тебя все слиплось в кучу?
 

Apocalepse

Новичок
Кстати Notice это не ошибка а предупреждение. Ничего фатального в этом нет, если код в принципе работет так, как тебе нужно, можеш просто выключить вывод предупреждений, поставив @. Хотя я бы поискал причину конечно :)
 

Кром

Новичок
Apocalepse если ты не заметил, причина уже давно найдена и разжевана. metravsу надо только найти в себе силы и исправить код.
 

Apocalepse

Новичок
Кром
Я заметил. Просто парень называл это ошибкой, плохо разве раскрыть ему галаз еще и на это.
 
Сверху