download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

система за коментари - подреждане на коментарите в низходящ ред

<1 2 >

Автор
Съобщение
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
Най-добрия урок си е точно практиката. Напиши още 5-6 подобни скрипта, можеш да се консултираш с http://php.net/manual/bg/index.php
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
Грешката най-вероятно ти казва, че в масива в който задаваш нещата от текстовият файл в променливи има повече променливи за които да им бъде зададена стойност, отколкото стойности в текстовата база данни!

Провери какво точно записваш в текстовата база данни!

редактиран от 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

<1 2 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.