Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem ze skryptem do komentowania newsów
Zaszczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
senty
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 10.04.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Zaszczyk
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


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


Ten post edytował Zaszczyk 24.08.2007, 17:34:37
Go to the top of the page
+Quote Post
klocu
post
Post #4





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
Zaszczyk
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


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(...);
Go to the top of the page
+Quote Post
klocu
post
Post #6





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


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.

Ten post edytował klocu 24.08.2007, 19:43:17
Go to the top of the page
+Quote Post
Zaszczyk
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
klocu
post
Post #8





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


no to jeszcze pytanie czy komentarz fizycznie jest dodany do bazy danych? czy istenieje to sobie zdiagnozujemy reszte.
Go to the top of the page
+Quote Post
Zaszczyk
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.08.2007

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #10





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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 think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:39