Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System komentarzy PHP
artur5236
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.07.2010

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


Witam, szukam prostego skryptu komentarzy PHP, może wykorzystywać mysql.

Dobrze by było gdyby posiadał paginację np. na jednej stronie pokazywał 20 komentarzy.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Gotowca w PHP raczej nie znajdziesz bo komentarze powinny być powiązane z jakimś obiektem np. wpisem więc i tak wymagać to będzie jakieś konfiguracji / integracji.

A może coś w stylu:
https://developers.facebook.com/docs/plugins/comments/

niekorzystałem ale domyślam się, że opiera się url.
Go to the top of the page
+Quote Post
tomxx
post
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Najpierw wykonujesz takie zapytanie SQL do bazy:
  1. CREATE TABLE `komentarze` (
  2. `strona` TEXT CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  3. `nick` TEXT CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  4. `data` TEXT CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
  5. `tresc` TEXT CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL
  6. )
I tworzysz skrypt:
  1. <?php
  2. $db = new PDO('mysql:host=localhost;dbname=nazwaBazyDanych', 'nazwaUżytkownika', 'hasłoDoBazy') or die;
  3. $db->query("SET NAMES 'utf8'");
  4. $wybierz = $db->query("SELECT * FROM `komentarze` WHERE `strona` = '".$_SERVER['SCRIPT_NAME']."'");
  5.  
  6. foreach($wybierz as $dane)
  7. echo "{$dane[1]} - {$dane[2]} <br>
  8. {$dane[3]} <hr><br>";
  9. ?>
  10.  
  11. <form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="post">
  12. <p>Twój nick: <input name="nick"></p>
  13. <p>Treść komentarza:</p>
  14. <textarea name="tresc" cols=50 rows=10></textarea>
  15. <p><input name="submit" type="submit" value="Wyślij!">
  16. </form>
  17.  
  18. <?php
  19. if(isset($_POST['submit']))
  20. {
  21. if(empty($_POST['nick']) || empty($_POST['tresc']))
  22. die("<p>Musisz wypełnić wszystkie pola!</p>");
  23.  
  24. if(
  25. $db->query(@"INSERT INTO `komentarze` (`strona`, `nick`, `data`, `tresc`)
  26. VALUES ('".$_SERVER['SCRIPT_NAME']."', '".$_POST['nick']."', '".date("m-d-Y, H:i:s")."', '".$_POST['tresc']."')")
  27. )
  28. echo "<script>location.href='http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."'</script>";
  29. else
  30. echo "<p>Komentarz nie został dodany z powodu błędu</p>";
  31. }
  32. ?>
Powyższy skrypt możesz wstawić w dowolnym pliku i w dowolnym jego miejscu - będzie pobierana zmienna $_SERVER['SCRIPT_NAME'] i wysyłana z komentarzem do bazy, a potem wyświetlane będą tylko te komentarze, które będą przyporządkowane do określonej nazwy pliku.
Jeśli natomiast zmienisz nazwę jakiegoś pliku, to tu już jest problem - w takim wypadku wystarczy jednak wykonanie zapytania:
  1. UPDATE `komentarze` SET `strona` = '/nazwanowegopliku' WHERE `strona` = '/nazwastaregopliku'
Natomiast jeżeli strony mają parametry GET w URL-ach, to konieczne będzie dodanie do SCRIPT_NAME tych parametrów (w czwartej linii kodu).
Z kolei 28. linijka (ze skryptem JS) służy do zabezpieczenia przed ponownym wysłaniem formularza (JavaScript sam przeładowuje stronę i użytkownik już widzi swój komentarz).

Ten post edytował tomxx 20.01.2014, 13:25:41
Go to the top of the page
+Quote Post
ilies
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 22.07.2009

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


Troszkę odkopię temat, bo mam mały dylemat właśnie z formularzem komentarzy, też wykorzystuję 'textarea' i do tego mam pytanie. Jak wpiszę tam tekst na dwie trzy linie, gdzie w momęcie przechodzenia z jednej do drugiej linii wykorzystuję 'Enter' to wyświetla mi się to później w jednym ciągu. W skrócie mówiąc jak zapisać przejście do następnej linii?
Go to the top of the page
+Quote Post
kujol
post
Post #5





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Go to the top of the page
+Quote Post
ilies
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 22.07.2009

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


Dzięki Ci dobry człowieku, wiedziałem że to jakaś pierdoła, nawet się z tym gdzieś spotkałem a nie sprawdziłem tego nawet (IMG:style_emoticons/default/facepalmxd.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 2.10.2025 - 17:38