Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_match nie działa tak jak powinien
Lethys
post
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Witam, mam w skrypcie zmienna przekazywaną linkiem i chciałbym się zabezpieczyć przed wpisywaniem tam niechcianych znaków.

W linku chcę akceptować tylko małe, duże litery, cyfry i myślnik.

  1.  
  2. if(!preg_match("/[A-Za-z0-9-]+/", $link)){
  3. $problem = TRUE;
  4. $error = "W linku są niedozwolone znaki.";
  5. }
  6. $link_przetworzone = mysqli_real_escape_string($con, $link);
  7. $test_filmu = mysql_num_rows(mysql_query("select * from links where link='$link_przetworzone'"));
  8. if ($test_filmu == 0) {
  9. $problem = TRUE;
  10. $error = "Nie ma takiego linku.";
  11. }
  12.  
  13. if (!$problem){
  14.  
  15. //Przeszło zabezpieczenia
  16.  
  17. }


Mój problem polega na tym, że preg_match jest praktycznie omijany, nawet jak wpiszę powiedzmy polski znak to pokazuje, że "Nie ma takiego linku." w bazie danych czyli po prostu działa drugi warunek. A co się dzieje z preg_march? Czemu nie sprawdza znaków i nie wywala w pierwszeństwie błędu pierwszego warunku z preg_match?
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: 22.12.2025 - 19:04