Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
redelek
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


oj to moim zdaniem dużo pól ci brakuje:)

ip_goscia ( tu odnotowuj ip odwiedzającego )
data lub data_czas ( tu będziesz miał datę lub czas i będziesz mógł przyrównać do aktualnego jeśli minie 5 minut to dodaj )
status ( jeśli admin zaakceptuje wpis to się dopiero pojawi, nie dawaj tak że można dodawać i od razu się pokazuje).
email ( nie ma sensu go tak sprawdzać ) ktoś ci wpisze kochamphp@alejestemamatorem.pl i też Ci doda. Jeśli chcesz sprawdzać czy taki adres naprawdę istnieje to musisz poszukać czegoś bardziej zaawansowanego. Z praktyki ludzie nigdy nie podają prawidłowych e-mail , więc niepotrzebne i zbędne. Moim zdaniem

Nie zaprzęgaj funkcji do tak prostych zadań. Poza tym funkcja powinna zwracać true lub false, a nie tam jakieś krzaki

o i będzie dobrze (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/smile.gif)

Ten post edytował redelek 15.02.2011, 14:59:39
Go to the top of the page
+Quote Post
sadistic_son
post
Post #3





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
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


redelek:: co do funkcji - głupoty pleciesz

Co do tematu:
1. Filtrujesz nick a treści już nie ?
2. Wpisy co 5min możesz załatwić poprzez COOKIE + zapis IP i czasu wpisu do bazy
3. Gwiazdki - poszukaj na necie pluginu do jQuery (google -> jquery plugins ocenianie)

Ten post edytował CuteOne 15.02.2011, 15:10:16
Go to the top of the page
+Quote Post
amster
post
Post #5





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

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


Hmmm, dzięki Kolego za tak szybką odpowiedź(IMG:style_emoticons/default/smile.gif)

Co do akceptowania przez admina to odpada, myślałem o tej kwestii ale stwierdziłem , że jednak pozostanę nad zwykłym dodawaniem, ewentualnie późniejsze usuwanie. Właściwie jeszcze nie wiem dokłądnie jak się za to wziąć ale zobaczymy;)
Go to the top of the page
+Quote Post
redelek
post
Post #6





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


CuteOne::
Od razu głupoty. To moje propozycje. Do przekopania grządki używa się łopaty , a nie wyciąga się traktor. (IMG:style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


I tu się właśnie mylisz (IMG:style_emoticons/default/smile.gif) traktorem było by pakowanie kodu "bez opakowania" do jednego pliku.

1. Funkcja nie musi zwracać tylko true/false - bo nie takie jest jej zadanie [zobacz na frameworki pisane pod php4]
2. Funkcja umożliwia hermetyzację pewnych działań - dzięki czemu nie musimy się martwić, że jakieś ustrojstwo dostanie się nam do obliczeń
3. Dzięki funkcjom nie musisz pisać w kółko tego samego kodu w każdym pliku, w którym będziesz go potrzebował
4. Powielając w kółko ten sam kod narażasz się na błędy - funkcje jako tako zabezpiecza webmastera przed samym sobą (IMG:style_emoticons/default/smile.gif)

Dawnymi czas sam pakowałem co tylko się dało do funkcji a pisząc kolejne projekty kopiowałem to co potrzebowałem oszczędzając sobie kupę czasu
Go to the top of the page
+Quote Post
amster
post
Post #8





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

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


Hmm, Kurcze próbowałem zrobić z ciasteczkami:/ I kiepsko idzie:/ Nie wiem jak zrobić, żeby po wysłaniu komentarza, np robiło się ciasteczko na dany nick chociażby, ponieważ z formularza wychodzą dane tylko do kolejnego pliku w którym są one odczytywane:/ Google nie pomogło (IMG:style_emoticons/default/smile.gif) Ale czytając w necie zrozumiałem, że to ciacho będzie najodpowiedniejsze i po głębszych zastanowieniach stwierdziłem , że będę szukał informacji jak przekształcić to w taki sposób, żeby było to akceptowane przez admina, bo to chyba lepsze niż niekontrolowane wpisy.
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: 23.09.2025 - 18:06