Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt komentarzy, Pisanie komentarza przez tą samą osobe
Tracid
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 27.10.2004

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


Znalazłem skrypt komentarzy ( http://www.mmorpg.6r.pl/komentarze.zip )
Wszystko jest ok tylko że niewiem jak zrobić aby osoba która już napisała komentaerz nie mogła wysyłać nowego komentarza np. w ciągu 5 minut.
Czy ktoś może zmodyfikowaćten skrypt aby osoba o takim samym IP nie mogła ponownie pisac komentarz przez określony czas np. 5 min.
Będe wdzięcny za pomoc. Moge zaoferować w reklame w moim serwisie przez np. miesiac (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Tracid 15.07.2005, 13:07:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
zbig13
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


Wystarczy wysłać cookie lub sesje i ustawic na 5 minut. Potem tylko sprawdzasz if'em czy istnieje takie ciasteczko: jeśli tak - wyświetlasz komunikat że nie można teraz dodać komentarza, jeśli nie - dodajesz komantarz. Dodawanie komentarzy powinno wyglądać tak:
  1. <?php
  2.  
  3. if (isset($_COOKIE['dodano'])) {
  4. echo &#092;"Już dodałeś komentarz! Spróbuj za chwilę.\";
  5. } else {
  6. setcookie ('dodano', 'wartosc_mozeBycAutorKomenta', time()+300);
  7. //dodawanie komentarza
  8. }
  9.  
  10. ?>

A z przerobieniem skryptu chyba już sobie poradzisz.
Go to the top of the page
+Quote Post
Tracid
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 27.10.2004

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


Jak wysłac cookie lub sesje nierozumiem (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Jestem zielony jesli chodzi o php (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
zbig13
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


Już Ci napisałem w kodzie php. Wysyłanie cookie wygląda tak:
  1. <?php
  2.  
  3. setcookie ('nazwa_ciasteczka', 'wartosc', 'data_wygasniecia', 'sciezka', 'domena', bezpieczne_0-nie_1-tak)
  4.  
  5. ?>

Z tym że wymagane są tylko dwa pierwsze argumenty (nazwa cookie i jego wartość), reszta to parametry opcjonalne. Natomiast sesje rozpoczyna się tak:
  1. <?php
  2.  
  3. session_start(); // Rozpoczęcie sesji.
  4. $_SESSION['nazwa_sesji'] = 'wartość'; // Utworzenie sesji o nazwie 'nazwa_sesji'.
  5. // Można też tak:
  6. session_register('nazwa_sesji');
  7.  
  8. ?>

Powinieś zajrzeć do manuala: ciasteczka, sesje
Go to the top of the page
+Quote Post
Tracid
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 27.10.2004

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


Ja naprawde jestem zielony w php. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Dlatego to co piszesz to dla mnie czarna mgia :/
Powiedz proszę gdzie mam to wkleic a jeśli to nie problem mogłbyś zedytować sam ten skrypt ? Tutaj jest link do niego http://www.mmorpg.6r.pl/komentarze.zip

Będe bardzo wdzięczny
Go to the top of the page
+Quote Post
zbig13
post
Post #6





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


@Tracid: Przerobiłem Ci ten kod i zmieniłem to co mi się nie podobało bo ten skrypt był trochę przestarzały (już nie mówiąc, że nie zgodny ze standardami XHTML ale tego nie poprawiałem).
  1. <?php
  2.  
  3. if (isset($_POST['submit'])) {
  4. if (isset($_POST['message'])) {
  5. if (isset($_COOKIE['dodano'])) {
  6. echo &#092;"Już dodałeś komentarz! Spróbuj za chwilę.\";
  7. } else {
  8. $message = $_POST['message']
  9. $message = ereg_replace(&#092;"rnrn\", \"n<P>\", $message);
  10. $date = date(&#092;"l, F j Y, h:i a\");
  11. $message = &#092;"<B>\".$_POST['name'].\"</B> -- \".$date.\"<P> \".$message.\" <BR><HR>\";
  12. $fp = fopen (basename($_SERVER['PHP_SELF']) . &#092;".comment\", \"a\");
  13. fwrite ($fp, $message);
  14. fclose ($fp);
  15. setcookie (&#092;"dodano\", \"{$_POST['name']}\", time()+300);
  16. }
  17. }
  18. }
  19. @readfile(basename(($_SERVER['PHP_SELF'] . &#092;".comment\")));
  20. ?>
  21. <FORM method=\"post\">
  22. <b>Your name:</b><BR><INPUT name=\"name\" type=\"text\" size=\"55\"><BR>
  23. <b>Your comment:</b><BR><TEXTAREA name=\"message\" rows=10 cols=55 wrap=virtual>
  24. </TEXTAREA><BR>
  25. <INPUT name=\"submit\" type=\"submit\" value=\"Post your comments\">
  26. </FORM>

Nie sprawdzałem czy działa, ale gdyby było coś nie tak to pisz.

@Qel: Skorzystaj z tego kodu co go zmieniłem Tracidowi. Być może miałeś wyłączoną opcje register_globals, a w kodzie nie były używane zmienne superglobalne dlatego nie wyświatlało komentarzy.
Pozdrawiam!
Go to the top of the page
+Quote Post
Manfred
post
Post #7





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 21.03.2005
Skąd: Olsztyn

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


A ustawiłeś odpowiednio chmody?
P.S Też miałem taki problem.... wszystko przez te chmody (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zbig13
post
Post #8





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


Powineś chyba jeszcze nadać odpowiednie uprawnienia (chmoda) dla katalogu komentarze bo to w nim przechowujesz wszystkie pliki i do niego odwołujesz się przez include.
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: 14.10.2025 - 05:01