система за коментари - подреждане на коментарите в низходящ ред
Автор |
|
nik2009Сря, 25.07.12, 22:58 | RE: RE: RE: RE: RE: RE: RE: система за коментари - подреждане на коментарите в низходящ ред
” Не си взел всички постове. Допълни ги: $data=date ("d.m.Y h:i A"); $ip=$_SERVER['REMOTE_ADDR']; $name=$_POST['name']; $email=$_POST['email']; $message=$_POST['message']; Човече, имаш нужда да прочетеш някой хубав урок за начинаещи от началото до края. „
Благодаря, сега стана. Изобщо не съм се сетил, че трябва да използвам POST. Ако може ми дайте някакви линкове на уроци, че направо си имам нужда от PHP. | | anonymousЧет, 26.07.12, 10:59 | | | nik2009Чет, 26.07.12, 11:45 | RE: система за коментари - подреждане на коментарите в низходящ ред
Всичко ми се оправи до тук, но имам надявам се да е последната грешка, която дава - Notice: Undefined offset: 4 inC:\xampp\htdocs\saitbelovo\sistemazakomentari1\komentar-pregled.php on line 5 и Notice: Undefined offset: 3 .... Ето в този файл е - komentar_pregled.php.txtВсичко върви и се записват коментарите, само не се показват поради тази грешка. На въпросния ред е записано това - list ($data, $name, $email, $message, $ip) = preg_split ("/|@|/", $comments); редактиран от nik2009 на 26.07.12 11:46 | | programingsЧет, 26.07.12, 13:26 |
Недей просто да копираш, а си го промени за твоят случай! | | nik2009Чет, 26.07.12, 23:14 | RE: система за коментари - подреждане на коментарите в низходящ ред
” Недей просто да копираш, а си го промени за твоят случай! „
Разбирам те, да, но изобщо не включвам за какво е тая грешка - Notice: Undefined offset: 4 in C:\xampp\htdocs\saitbelovo\sistemazakomentari1\komentar-pregled.php on line 5 Затова не ми изписва коментарите в страницата, иначе ги записва в базата /текстовия файл/. Какво трябва да променя, дали функцията list() не работи правилно? | | programingsПет, 27.07.12, 10:11 |
Грешката най-вероятно ти казва, че в масива в който задаваш нещата от текстовият файл в променливи има повече променливи за които да им бъде зададена стойност, отколкото стойности в текстовата база данни! Провери какво точно записваш в текстовата база данни! | | nik2009Нед, 29.07.12, 00:04 | RE: система за коментари - подреждане на коментарите в низходящ ред
” Грешката най-вероятно ти казва, че в масива в който задаваш нещата от текстовият файл в променливи има повече променливи за които да им бъде зададена стойност, отколкото стойности в текстовата база данни! Провери какво точно записваш в текстовата база данни! „
Всичко е точно като променливи, много гледах и нищо не откривам в повече. Ето това ми изписва -
Това е кода който чете и показва коментарите от текстовата база данни - komentar_pregled.php.txt А това е основния код където декларирам променливите и записвам в базата - index.txt | | nik2009Вто, 31.07.12, 12:03 | RE: RE: система за коментари - подреждане на коментарите в низходящ ред
” Всичко е точно като променливи, много гледах и нищо не откривам в повече. Ето това ми изписва -
Това е кода който чете и показва коментарите от текстовата база данни - komentar_pregled.php.txt А това е основния код където декларирам променливите и записвам в базата - index.txt „
Моля ви някой да помогне за тази грешка, не ми идва нищо в главата, не мога да я оправя. | | programingsВто, 31.07.12, 16:24 |
Виж си в индекса там, където записваш нещата в базата данни! Записваш ги в един ред, а после ги визуализираш във файла за преглед с друг ред на променливите! Промени го! | | anonymousСъб, 04.08.12, 00:40 |
nik2009, Това съобщение за "грешка" е вярно. Нека да погледнем: $data = "$data|@|$name|@|$email|@|$message|@|$ip\n"; |
Какво прави този ред? Записва в $data 5 стойности разделени с |@| и накрая слага нов ред. Стойността на променливата data в последствие я записваш във файл. Тоест, файла ти изглежда примерно: 10.10.2012|@|Киро Някав_си|@|kiro@mail.ah|@|някакво нещо дето киро е коментирал|@|169.170.1.253
23.11.2012|@|Друго Име|@|nqmam@mail.be|@|някакъв коментар, каквото и да значи това, понеже не правиш никакви проверки, какво се въвежда. Но това няма особено значение сега|@|10.10.1.100 |
Както виждаш имаме ред с данни, след което празен ред, после пак ред с данни и т.н. Какво става тука: list ($data, $name, $email, $message, $ip) = preg_split ("/|@|/", $comments); |
Като най- вече ни интересува тази част: preg_split ("/|@|/", $comments) |
Сигурен съм, че вече се досети. Нa всеки празен реди получаваш 'грешката' за Ofset :) Това се получава така , защото на $data в края на присвояването прибавяш и символа '\n'(нов ред), а отваряш файла: $newr = fopen($file,"a") or die ("Не мога да отворя файла"); |
в режим 'а'. Щом отваряш файла в този режим, то той сам ще си сложи новия запис на нов ред. Няма да коментирам това 'or die...' понеже няма смисъл от него. Ако има грешка така или иначе операционната система ще ти даде да разбереш, но.... Може би няма защо да продължавам, знам ли. Или махаш '\n', или четеш всичко от файла в променлива(масив) и запазвайки '\n' отваряш файла в режим 'w'(wb) и го презаписваш. Какво ще избереш зависи от теб. редактиран от anonymous на 04.08.12 00:41 | | Коментар |