Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usniecie wszystkich "niecyfr" ze stringu
Forum PHP.pl > Forum > PHP
Bojakki
Jest moze juz jakas zdefiniowana w php funkcja, ktora usuwa z danego stringa wszystkie znaki, ktore nie sa cyframi.

Np. string: '12bh56m%$' zamieni na: '1256'.

A jak nie to jak to zrobic najwydajniej?
Vogel
  1. <?php
  2. preg_replace("#[^0-9]#si", "", $twoj_ciag_znakow);
  3. ?>
Bojakki
Dzieki, dziala!

Mam jeszcze pytanko czy jak bede filtrowal tym sposobem wszytskie moje zmienne przekazywane poprzez URL to czy jestem juz zabezpieczony przez SQL injection ta droga? (wszystkie zmienne sa u mnie akurat liczbami)
LBO
tak, bedziesz... SQL injection mają postac zapytan, czyli tekstowych komend SQL...

edit: poczytaj jednak o tym na forum. To, ze akurat w ten prosty sposob mozesz sie teraz uchronic to nie znaczy, ze nie powinienes poznac innych spospob zabezpieczania sie przed tym (oraz innymi atakiami "* injection")
akubiczek
Cytat(Vogel @ 2006-04-15 12:39:09)
  1. <?php
  2. preg_replace("#[^0-9]#si", "", $twoj_ciag_znakow);
  3. ?>

preg_replace('/\D/','',$String);

Tak będzie krócej tongue.gif

A co do SQL Injection, to jeżeli korzystasz z mysql to w zasadzie wystarczy ci:

- rzutowanie jawne dla wartości liczbowych np. $foo=(int)$_POST['foo'];
- escepowanie stringów: mysql_real_escape_string();
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.