Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wyciągnięcie określonych znaków z stringu
Th0e
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


Witam! Tworzę stronę na której każdy mógłby coś napisać. Teksty trafiają do bazy danych, tak więc przydało by się to zabezpieczyć przed np SQL Injection, więc postanowiłem użyć preg_replace, żeby wyciągało jedynie litery i cyfry, ale oczywiście nie działa (IMG:style_emoticons/default/smile.gif) . Oto kod:

  1. $nadawca = $_POST['nadawca'];
  2. $tresc = $_POST['tresc'];
  3. $adresat = $_POST['adresat'];
  4.  
  5. $tresc2 = wordwrap($tresc, 50, "\n", true); //dzielenie długich ciągów znaków
  6. $tresc3 = preg_replace("/[^A-Z0-9]/", "", $tresc2); //pobieranie z textu znaków
  7.  
  8.  
  9. if(!empty($nadawca) && !empty($adresat) && !empty($tresc)){
  10. mysql_query("INSERT INTO `pytania` (nadawca, tresc, odbiorca) VALUES('$nadawca','$tresc3','$adresat')") or die("nie udało się wysłać! Spróbuj jeszcze raz!");
  11. header("Location: kontakt.php?co=wyslano");
  12. }


Liczę na pomoc (IMG:style_emoticons/default/smile.gif) Pozdrawiam.

Ten post edytował Th0e 3.03.2013, 19:31:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
fragov
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 19.11.2011

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


Najlepiej przerzuć się na PDO, od wersji 5.5 mysql_real_escape_string nie będzie obsługiwany. (IMG:style_emoticons/default/smile.gif)
Na chwilę obecną lepiej mysql_real_escape_string no i tutaj trochę info o mysql_real_escape_string vs addslashes.

  1. $nadawca = mysql_real_escape_string($_POST['nadawca']);
  2. $tresc = mysql_real_escape_string(wordwrap($_POST['tresc'], 50, "\n", true);
  3. $adresat =mysql_real_escape_string( $_POST['adresat']);
  4.  
  5. if(!empty($nadawca) && !empty($adresat) && !empty($tresc)){
  6. mysql_query("INSERT INTO `pytania` (nadawca, tresc, odbiorca) VALUES('$nadawca','$tresc','$adresat')") or die("nie uda?o si? wys?a?! Spróbuj jeszcze raz!");
  7. header("Location: kontakt.php?co=wyslano");
  8. }


btw. to czy w formularzu jest select czy input to nie ma różnicy, często można dane podmienić np livehttpheaders. (IMG:style_emoticons/default/smile.gif)

Ten post edytował fragov 3.03.2013, 21:39:52
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: 6.10.2025 - 18:24