Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem ze skryptem do komentowania newsów
Forum PHP.pl > Forum > Przedszkole
Zaszczyk
Mam na stronie (www.akwarium112.info/akwa) system komentowania newsów, Niestety we wszystkich newsach są te same komentarze. Do tego po usunięciu newsa i napisaniu go ponownie są te same komentarze co były. Najprawdopodobnie coś jest nie tak z id newsów.

Kod pliku comment.php:

  1. <?php
  2. include ("body.php");
  3. include ("commentf.php");
  4. include ("newsf.php");
  5. connect();
  6. head();
  7. if (!isset($_GET["site"])){
  8. news($_GET["newsid"]);
  9. showcomment($_GET["newsid"]);
  10. comaddform($_GET["newsid"]);
  11. }
  12. elseif ($_GET["site"] == add){
  13. if (isset($_SESSION["prawa"])){
  14. addcomment($_GET["newsid"], $_POST["tytul"], $_POST["tresc"], $_SESSION["usrid"], $_SESSION["login"]);}
  15. }
  16. elseif ($_GET["site"] == del){
  17. if ($_SESSION["prawa"] > 0){
  18. delcomment($_GET["id"]);}
  19. }
  20. else {
  21. echo "<center>Podana strona nie istnieje, skontaktuj się z administracją</center>";}
  22. foot();
  23. ?>



Kod pliku commentf.php:

  1. <?php
  2. $newsid=$_POST[newsid];
  3. function news ($newsid){
  4. $result = mysql_query("SELECT * FROM newsy WHERE id='$newsid'")
  5. while ($row = mysql_fetch_array($result)){
  6. ?>
  7. <h1 class="pagetitle"><?php echo "<b>$row[1]</b>"; ?></h1>
  8. <div align="right"><?php echo "$row[2]"; ?></div>
  9. <br>
  10. <div align="left"><?php echo "$row[3]"; ?></div>
  11.  
  12. <div align="right"><a href="/forum/profile.php?mode=viewprofile&u=<?php echo "$row[4]"; ?>"><?php echo "$row[5]"; ?></a></div>
  13. <br><hr width="100%" color="#AACDFF" size="1px"><br /><br />
  14. <?php
  15. }}
  16.  
  17. function showcomment ($newsid){
  18. $result = mysql_query("SELECT * FROM komentarze WHERE newsid='$row[0]' ORDER BY id DESC")
  19. while ($row = mysql_fetch_array($result)){
  20. ?>
  21. <span align="left">Autor: <a href="/forum/profile.php?mode=viewprofile&u=<?php echo "$row[4]"; ?>"><b><?php echo "$row[5]"; ?></b></a></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span align="right"><?php echo "$row[3]"; ?></span><br /><br />
  22. <p align="left"><?php echo "<b>$row[2]</b>"; ?></p>
  23.  
  24. <?php
  25. if ($_SESSION["prawa"] > 0){
  26. ?>
  27. <a href="comment.php?id=<?php echo "$row[0]"; ?>&site=del">Usuń</a><br />
  28. <?php
  29. }
  30. ?>
  31.  
  32. <br /><br />
  33. <?php
  34. }}
  35.  
  36. function comaddform ($newsid){
  37. if (isset($_SESSION["prawa"])){
  38. ?>
  39. <div align="center">Dodaj komentarz:<br /><br />
  40. <form method="post" action="comment.php?site=add&newsid=$newsid">
  41. <textarea name="tresc" rows="10" cols="42"></textarea><br>
  42. <input type="submit" name="Submit" value="Skomentuj">
  43. </form>
  44. </div>
  45.  
  46. <?php
  47. }
  48. else {
  49. echo "Musisz być zalogowanym, aby dodać komentarz";}
  50. }
  51.  
  52. function addcomment ($newsid, $tytul, $tresc, $usrid, $login){
  53. $data = date("Y-m-d");
  54. $result = mysql_query("INSERT INTO komentarze (newsid, tresc, data, link, dodal) VALUES ('$newsid', '$tresc', '$data', '$usrid', '$login')")
  55. echo "<center>Komentarz został dodany</center>";
  56. }
  57.  
  58. function delcomment ($id){
  59. $result = mysql_query("DELETE FROM komentarze WHERE id='$id'")
  60. echo "<center>News został usunięty</center>";
  61. }
  62. ?>


PS. te pliki są cześcią cms'a na którym jest oparta cała strona.


-------------------------
do PHP są odpowiednie znaczniki BBCode
a nie tylko [code] do wszystkiego
~Cienki1980
senty
Trzy malutkie błędy:

#2: $newsid=$_POST['newsid'];
#19: $result = mysql_query("SELECT * FROM komentarze WHERE newsid='$newsid' ORDER BY id DESC") or die(...);
#42: <form method="post" action="comment.php?site=add&newsid=<?=$newsid"; ?>>

Myślę, że to pomoże.
Zaszczyk
Zmieniłem wszystko i przy wchodzeniu na strone z komentarzami wyskakuje taki błąd:

Kod
Parse error:  syntax error, unexpected '.' in C:\Program Files\wamp\www\cms\commentf.php on line 19
klocu
trwa łączenie z wrózką w sprawie błędu składni w kodzie php.
połączono proszę czekać na zgłoszenie serwera.

na miłość boska daj nam tą linijkę jeśli chcesz żebyśmy Ci pomogli...
Zaszczyk
Cytat(klocu @ 24.08.2007, 18:56:25 ) *
trwa łączenie z wrózką w sprawie błędu składni w kodzie php.
połączono proszę czekać na zgłoszenie serwera.

na miłość boska daj nam tą linijkę jeśli chcesz żebyśmy Ci pomogli...


Czytanie ze zrozumieniem się klania. W błędzie jest napisane że chodzi o linijke 19, a w drugim poscie ta linijka jest podana, ale jakbyś dalej nie rozumiał o co chodzi to proszę:

Kod
$result = mysql_query("SELECT * FROM komentarze WHERE newsid='$newsid' ORDER BY id DESC") or die(...);
klocu
umiem czytać, tak się zastanawiałem czy Ty wkleiłeś tą linijkę tak jak leci czy nie. bo jeśli tak to powiedz "wkleiłem ją tak jak mi podaliście" i ja przeczytam i zrozumiem. nie unosimy się a atmosfera powinna nam pomóc w poglębianiu naszych zdolności.

bo jeśli wrzuciłeś ją tak jak leci to po przeczytaniu masz że błedem jest kropka. gdzie jest kropka? w częsci die(...);
a oto prawdopodobna odpowiedz "die" zapisane w ten sposob zostalo uzyte aby w miejsce "..." wstawic tekst wyswietlany w przypadku bledu co juz zapewne wiesz bo sam tego uzyles.

do odpowiedzi na Twoj problem wystrczylo poczytac manual i sprawdzic metodą prób i błedów.
zatem ja mówie teraz: "Czytanie ze zrozumieniem się klania" nie będąc złośliwym a chcacym pomóc, jednak do tego potrzeba jest informacji.

napisz jakie osiagnales rezultaty w zmaganiach z ta linia.
Zaszczyk
Poprawiłem kod tak jak mówiłeś i teraz po dodaniu komentarza on się nie pokazuje. Wydaje mi się że coś nie tak jest z linijką 42, ale nie jestem pewien.
klocu
no to jeszcze pytanie czy komentarz fizycznie jest dodany do bazy danych? czy istenieje to sobie zdiagnozujemy reszte.
Zaszczyk
Zapomniałem wczoraj sprawdzić czy komentarze są w bazie. Dzisiaj sprawdziłem i są, a więc błąd jest przy pobieraniu komentarzy z bazy. Mam jeszcze jedną prośbe, mógłby ktoś podać skrypt aby nie dało się wysyłać pustych komentarzy?
Cysiaczek
1. Widzę błąd:
  1. <form method="post" action="comment.php?site=add&newsid=$newsid">

zamień na
  1. <form method="post" action="comment.php?site=add&newsid=<?php echo $newsid; ?>">


2. Nie umiesz napisać prostego walidatora w JS? Może najpierw spróbujesz? Jak nie umiesz, to przeszukaj forum - tysiące postów dotyczy właśnie walidacji pustych pól, adresów e-mail itp.

Pozdrawiam.

P.S Przenoszę na Przedszkole
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.