Sciągnąłem sobie system komentarzy i kiedyś go używałem i działał dobrze :)
Kod ten jest dostępny za free jakby co. Zmodyfikowałem go dla własnych potrzeb, no i tu pojawia się problem.. Na dysku (mam serwer apache) chodzi wszystko dobrze, ale zaś na serwerze, komentarze się nie dodają... A przy okazji chciałbym tutaj zaczerpnąć waszej wiedzy, żeby go dostosować troszeczkę :p.
"><?php
$art = 1;
mysql_connect ("xxxx", "xxxxx", "xxxxxx") or //staramy polaczyc sie z baza danych
die ("Nie mozna polaczyc sie z baza MySQL"); //jezeli to sie nie uda wyswietlamy
mysql_select_db ("xxxxxx") or //wybieramy baze
die ("Nie mozna polaczyc sie z baza komentarze");
print "<div class=\"dhtmlgoodies_question\"><a>Komentarze";
$res = mysql_query("SELECT * FROM komentarze WHERE art=$art");
$ile = mysql_num_rows($res);
print" [$ile]";
print "</a></div>";
print "<div class=\"dhtmlgoodies_answer\" align=\"left\">";
print "<div>";
if(!isset($id)) { //odbieramy wartosc zmiennej id
// print"<A HREF=\"testdiv.php?id=nowy&art=$art\">Dodaj komentarz</A><BR><BR>"; //jezeli zmienna id nie ma przypisanej wartosci
$wynik = mysql_query ("SELECT * FROM komentarze WHERE art=$art order by nr desc;"); //wybieramy zatwierdzone komentarze i segregujemy wedlug pola nr od wartosci najwiekszej do najmniejszej
print"<!-- UL-->";
while ($rekord = mysql_fetch_array ($wynik, MYSQL_NUM)) { //mysql_fetch_array() zwraca nam tablice indeksowana numerycznie, gdzie indeks zaczyna sie od 0 (MYSQL_NUM)
print "<br>";
print "<!-- LI--><b><font color=\"#000000\">".$rekord[1] = stripslashes($rekord[1])."</font></b> :: <font color=\"#485566\">".$rekord[3]."</font><br>".$rekord[2] = stripslashes($rekord[2])."<!-- /LI--><br>"; //w petli while wyswietlamy po kolei wszytskie komentarze w kolejnosci tresc, pseudonim (nick), data
}
print"<!-- /UL-->";
//}else if ($id=='nowy') { //jezeli zmienna id zawiera wyraz nowy
print "<br>";
print "<B><font color=\"#000000\"><BR><img src=\"images/addcomm.png\" width=\"15\" height=\"15\" align=\"absmiddle\"> Dodaj komentarz</font><BR></B>";
print "<FORM METHOD=POST><INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"1\">";
print "Nick:<BR><INPUT TYPE=\"text\" NAME=\"nick\" VALUE=\"$nick\" SIZE=40><BR>";
// print "Tresc:<BR><TEXTAREA NAME=\"tresc\" ";
//print "ROWS=5 COLS=35 MAX=20>$tresc</TEXTAREA><BR>";
print "<div id=\"ile\">Komentarz (160):</div>";
print "<textarea name=\"tresc\" cols=\"30\" rows=\"5\" onkeyup=\"zliczaj_znaki(this.form)\" onkeydown=\"zliczaj_znaki(this.form)\">$tresc</textarea><br>";
print "<INPUT TYPE=\"submit\" VALUE=\"Dodaj\">";
print "</FORM>";
print "<BR>";
print "<BR>";
}else if ($id=='1') { // jezeli zmienna id zawiera wartosc dodaj
//dodajemy komentarz do bazy
$tresc = addslashes(nl2br(htmlentities ($tresc))); //poniewaz nie mozna ufac danym wprowadzanym przez uzytkowników funkcja addslashes dodajemy ukosniki () w miejscach gdzie napotkanym na apostrof (‘), usuwamy je potem funkcja stripslahes przy wypisywaniu komentarzy, dodatkowo funkcja nl2br zamienia znaki konca linii na tag br
$nick = addslashes(htmlentities ($nick));
if ($tresc && $nick) { //jezeli pola tresc i pseudonim sa uzupelnione
$zapytanie = "INSERT INTO komentarze (tresc, nick, "." data, art) VALUES ('$tresc', '$nick', "." now(), '$art');";
$wynik = mysql_query ($zapytanie); //dodajemy wtedy dane do bazy wraz z aktualna data i godzina – funkcja now()<br><br>
print"<img src=\"images/info.png\" width=\"15\" height=\"15\" align=\"absmiddle\"> Twój komentarz zostal dodany.<br>"; //jezeli wszystko przebiegnie bez problemów wyswietlamy komunikat
print"<a href=\"testdiv.php\">Powrót</a>";
}else{ //jezeli jednak nie wyswietlamy stosowna informacje
print"<b><font color=\"red\"><img src=\"images/excl.png\" width=\"15\" height=\"15\" align=\"absmiddle\"> Wszystkie pola musza byc wypelnione!</font><br></b>";
print"<a href=\"testdiv.php\">Powrót</a>";
}
}else { //jezeli zmienna id zawiera inna wartosc niz dodaj lub nowy wyswietlamy wszystkie zatwierdzone komentarze
}
print "</div>";
print "</div>";
?>
No i teraz po pierwsze chciałbym zrezygnować z tego:
print"<img src=\"images/info.png\" width=\"15\" height=\"15\" align=\"absmiddle\"> Twój komentarz zostal dodany.<br>"; //jezeli wszystko przebiegnie bez problemów wyswietlamy komunikat
print"<a href=\"testdiv.php\">Powrót</a>";
}else{ //jezeli jednak nie wyswietlamy stosowna informacje
print"<b><font color=\"red\"><img src=\"images/excl.png\" width=\"15\" height=\"15\" align=\"absmiddle\"> Wszystkie pola musza byc wypelnione!</font><br></b>";
print"<a href=\"testdiv.php\">Powrót</a>";
po prostu zamienić te komunikaty na alerta, albo jeszcze lepiej, żeby otworzyła się strona.
Nie mogę zrezygnować ze stałej ART, bo dla mnie jest to wygodne, bo wklejam ten kod gdzie chcę na stronie tam, gdzie chce mieć konkretne komentarze :)
Dużo w tym kodzie skomentowałem.. Sorki, ale dla mnie PHP jest jak spaghetti :< dlatego wkleiłem cały.