Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Problem z Refresh i POST data
Forum PHP.pl > Forum > PHP
Veldrin_
Witam, popelnilem taka ksiege gosci:

  1. <?php
  2.  
  3. # --- includes ---
  4. include_once ("config.php"); # login, haslo i adres bazy danych
  5. include_once ("zamiana.php"); # zamiana polskich literek na odpowiedniki ISO 8859-2
  6.  
  7.  
  8. # --- polacz z Baza Danych ----
  9. mysql_connect($db_host, $db_user, $db_pass);
  10. mysql_select_db($db_name);
  11.  
  12.  
  13. # --- Wyslano formularz -> sprawdzanie poprawnosci -> zapis do bazy danych ---
  14. if($_POST['zapisz'])
  15. {$nick = $_POST['nick'];
  16.  $wpis = $_POST['wpis'];
  17.  $email = $_POST['mail'];
  18.  $www = $_POST['www'];
  19.  
  20.  
  21.  if(trim(strip_tags($nick), \t.,;:'")=="" || trim(strip_tags($wpis), "\t,;:") =="")  # brak imienia lub wpisu
  22. {print ('Błąd! Wszystkie pola z gwiazdką muszą być uzupełnione!<BR>');
  23.  print ('<A HREF=ksiega.php>Powrót</A>');
  24.  
  25. }
  26.  else
  27. {# --- usuwa biale znaki, kropki i inne duperele z poczatku i konca wpisu ---
  28.  $nick = trim(strip_tags($nick), \t.,;:'");
  29.  if(strpos($www, 'http://') !== 0) { $www = 'http://'.$www; }
  30.  $www = trim(strip_tags($www), "\t.,;:'");
  31.  $wpis = trim(strip_tags($wpis), "\t,;:");
  32.  $mail = trim(strip_tags($mail), "\t.,;:'");
  33.  $time = time();
  34.  $ip = $REMOTE_ADDR;
  35.  $host = gethostbyaddr($ip);
  36.  
  37.  if(!eregi("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$mail))
  38.  $mail = "";
  39.  
  40.  
  41.  # --- Tu nastepuje dopisanie do bazy danych ---
  42.  mysql_query("INSERT INTO guestbook (db_nick, db_email, db_www, db_time, db_wpis, db_ip, db_host) VALUES ('$nick','$mail','$www','$time','$wpis','$ip','$host')");
  43.  if(mysql_error()) # nieudane dodawanie do bazy danych
  44. print 'Dodawanie wpisu zakończone niepowodzeniem!<BR>'.mysql_error().'<BR>';
  45.  else
  46. print 'Dziękujemy za wpis !<BR>';
  47.  
  48.  print "<A HREF=ksiega.php>Powrót</A>";
  49. }
  50.  
  51. }
  52.  
  53. # --- Drukuje formularz i wyswietla wpisy ---
  54. else
  55. {# --- Wydruk formularza ---
  56.  print '<TABLE>';
  57.  print "<FORM ACTION=\"$PHP_SELF\" METHOD=POST>";
  58.  print "<TR><TD>* Imię / nick: </TD><TD colspan=2><INPUT TYPE=text NAME=nick VALUE=\"$nick\"></TD></TR>";
  59.  print "<TR><TD>e-mail: </TD><TD colspan=2><INPUT TYPE=text NAME=mail VALUE=\"$mail\"></TD></TR>";
  60.  print "<TR><TD>www: </TD><TD colspan=2><INPUT TYPE=text NAME=www VALUE=\"http://$www\"></TD></TR>";
  61.  print "<TR><TD>* Wpis: </TD><TD colspan=2><TEXTAREA NAME=wpis VALUE=\"$wpis\" ROWS=8 COLS=40></TEXTAREA></TD></TR>";
  62.  print '<TR><TD>&nbsp;</TD><TD><INPUT TYPE=reset VALUE=Wyczyść>&nbsp;</TD>';
  63.  print '<TD><INPUT TYPE=submit NAME=zapisz VALUE="Dodaj wpis">&nbsp;</TD></TR>';
  64.  print '</TABLE>';
  65.  
  66.  
  67.  # --- Wydruk wpisow ---
  68.  $result = mysql_query ("SELECT * FROM guestbook ORDER BY db_id DESC");
  69.  
  70.  
  71.  while($wiersz = mysql_fetch_row($result))
  72. {$db_id = $wiersz[0];
  73.  $db_nick = $wiersz[1];
  74.  $db_email = $wiersz[2];
  75.  $db_www = $wiersz[3];
  76.  $db_time = $wiersz[4];
  77.  $db_wpis = $wiersz[5];
  78.  $data = date('d.m.Y', $db_time);
  79.  $godzina = date('H:i', $db_time);
  80.  
  81.  # --- wyglad wpisow ---
  82.  print '<TABLE><TR><TD colSPAN=2>';
  83.  print "Dnia $data o godzinie $godzina dodano wpis:</TD></TR>";
  84.  
  85.  print "<TR><TD width=10%>Imie / nick:</TD><TD>$db_nick</TD></TR>";
  86.  
  87.  if($db_www!="http://") # jezeli adres www niepusty wydrukuj
  88.  print "<TR><TD width=10%>Strona www:</TD><TD><A HREF=\"$db_www\">$db_www</A></TD></TR>";
  89.  
  90.  if($db_email!="") # jezeli e-mail niepusty wydrukuj
  91. print "<TR><TD width=10%>E-mail:</TD><TD><A HREF=\"mailto:$db_email\">Wyślij maila.</TD></TR>";
  92.  
  93.  print "<TR width=10%><TD>Treść:</TD><TD>$db_wpis</TD></TR>";
  94.  
  95.  print '</TABLE><br>';
  96. }
  97.  
  98.  
  99. }
  100.  
  101.  
  102. ?>


Mam z nia 2 problemy.
1(priorytetowy): [linijki kodu 14-50]
w jaki sposob moge zabezpieczyc skrypt przed dodawaniem tego samego wpisu wielokrotnie poprzez odswiezanie strony juz po dopisaniu pozycji w bazie danych?


2 /prawdopodobnie lada chwila sam to napisze/
jak zapobiec wpisywaniu slow powiedzmy dluzszych niz 20 znakow, a w przypadku dluzszych po 20 znaku lamac takie slowa spacja?



Z gory dzieki za pomoc.
LBO
ad.1 uzyj cookies lub ip usera
chomiczek
ad.2 wordwrap" title="Zobacz w manualu php" target="_manual
Veldrin_
Ad.2 dzieki. szkoda, ze nie 30 minut wczesniej winksmiley.jpg napisalem swoja wersje smile.gif
Ad.1 myslalem o cookies, jeszcze nie wiem jak ,ale jutro moze cos zmajstruje. smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.