Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Księga Gości.
amster
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 15.02.2011

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


Witajcie:)

Słuchajcie robię sobie księgę gości na stronie, właściwie można powiedzieć, że będzie to też podobne do komentarzy z opiniami.. Puki co mam takie kody:

connect.php

  1. <!--c1--><div class='codetop'>Kod</div><div class='codemain'><!--ec1--><?
  2.  
  3. function MySQLConnect(){
  4.  
  5. mysql_connect('localhost' , 'login' , 'haslo')
  6.             or die('Nie udało połączyć się z naszą bazą danych. Spróbuj później.');
  7.  
  8. mysql_select_db('nazwa_bazy')
  9.             or die('Nie udało wybrać się bazy danych. Spróbuj później');
  10.             
  11. }
  12.  
  13. ?>]/code][/PHP]
  14.  
  15. dodaj.php
  16. [PHP][code]<?
  17.  
  18. include_once('connect.php');
  19. MySQLConnect();
  20.  
  21. if (isset($_POST['ok']))
  22. {
  23.         $nick = $_POST['nick'];
  24.         $email = $_POST['email'];
  25.         $tresc = $_POST['tresc'];
  26.             $data = date('d.m.Y, H:i');
  27.         
  28.         
  29.          if(empty($nick) || empty($tresc) || empty($email))
  30.         
  31.                 echo 'Wpisz wszystkie pola!';
  32.                 
  33.                 else
  34.                 {
  35.                 
  36.                         $nick = trim(strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick))));
  37.                         
  38.                         if(preg_match('/^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$/D', $_POST['email']))
  39.                         {}
  40.                         else
  41.                         {
  42.                          echo '<p>Podałeś niepoprawny adres email.</p>';
  43.                          exit();
  44.                         }
  45.                         
  46.                         $tresc = trim(strip_tags( mysql_real_escape_string( HTMLSpecialChars($tresc))));
  47.                         
  48.                         
  49.                         
  50.                 mysql_query("INSERT INTO komentarze VALUES(0 , '$nick' , '$email' , '$tresc' , '$data')");
  51.                 
  52.                 echo 'Pomyślnie dodano komentarz do naszej bazy danych! Dziękujemy za Państwa opinie.</b>';
  53.  
  54.                 }
  55. }
  56.  
  57. //zamykanie bazy danych
  58.  
  59.  
  60. ?><!--c2--></div><!--ec2-->


Czy myślicie, że wstępnie może być coś takiego? Mam w planach jeszcze zrobić połączenie do panelu admina, żeby niestosowne wpisy usuwać. Nie mam jednak zielonego pojęcia jak zrobić, żeby z jednego IP dodanie kolejnego wpisu odbywało się po np. 5 minutach, żeby uniknąć spamu. Druga sprawa, chciałbym zrobić ocenianie gwiazdkami, ale również nie wiem jak za to się zabrać, żeby po kliknięciu na dana gwiazdkę przyznawana była odpowiednia ilość punktów.

Ten post edytował amster 15.02.2011, 14:39:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Lepiej byłoby umożliwić dodawanie wpisów tylko zalogowanym. Ale jeśli nie chcesz tak to samo IP to za mało, zrób jeszcze chociaż zabezpieczenie po ciastku.
Reszta, tak jak wyżej.

Dla zabezpieczeń po ciachu dodaj coś w tym stylu:
  1. //tworzenie ciastka przy dodaniu pierwszego wpisu
  2. setcookie('nazwaciastka',$login,time()+300);
  3. // time()+300 bo ciastko ma być wazne 300 sekund (5 minut) od daty utworzenia
  4.  
  5. //sprawdzenie czy ciastko istnieje, jesli nie to mozna utworzyc nowy wpis
  6. if(!isset($_COOKIE['nazwaciastka'])){
  7. echo 'dodawanie wpisu';
  8. }
  9. else{
  10. echo 'czekaj';
  11. }
Pamiętaj, że setcookie musi być w kodzie przed wysłaniem jakichkolwiek nagłówków, czyli przed jakimkolwiek kodem html. Najlepiej na samym początku pliku php.
To nadal niewielkie zabezpieczenie bo wystarczy ciacho usunąć z menu przeglądarki ale już lepsze niż samo IP.

Ten post edytował sadistic_son 15.02.2011, 15:03:37
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 07:04