Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> $_GET - liczba czy tekst?, jak to sprawdzić?
strife
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Witam,

Mam taki skrypt:

  1. <?php
  2.  
  3. $sc = $_GET['id'];
  4. if ($sc == integer) {
  5. echo 'to jest liczba';
  6. }
  7. else {
  8.  echo 'błąd';
  9. }
  10.  
  11. ?>

Chodzi mi o to aby warunek sprawdzał czy w $_GET['id'] znajduje się liczba czy litery, acha i jak będzie mieszane czyli powiedzmy index.php?id=31dsada żeby taki skrypt rozpoznawał tylko liczby, a gdy pole $_GET['id'] zawierało by coś innego poza liczbami to aby było powiedzmy die();

Z góry dziękuje!
Go to the top of the page
+Quote Post
bela
post
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


is_int" title="Zobacz w manualu PHP" target="_manual ? albo
  1. <?php
  2. preg_match('/[0-9]/', $sDoPrzeszukania);
  3. ?>


jak sie w regexpie pomylilem to sory bo nie jestem guru w nich (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Paul
post
Post #3





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

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


  1. <?php
  2. //$sc = 'abaaaaaa';
  3. //$sc = '';
  4. $sc = 'aa5bb5cc';
  5.  
  6. $int = (int) preg_replace(&#092;"/D/\", \"\", $sc);
  7.  
  8. var_dump($int);
  9.  
  10. if ($int) {
  11. echo 'to jest liczba';
  12. }
  13. else {
  14.  echo 'błąd';
  15. }
  16. ?>


Nie jest to idealne, ale chyba wystarczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To poprostu usuwa cokolwiek innego niz cyfry ze stringu a potem rzutuje na int. Jesli string jest pusty albo nie zawiera cyfr to $int przyjmie wartosc 0, wiec jak widac dla 0 nie bedzie dzialac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
orson
post
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

jezeli przesylasz w id tylko liczbe to po co robisz regami (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) przeciez jezeli przesylasz i sprawdzasz is_int to jak ci da false to znaczy ze to nie twoje id tylko ktos sie bawil ... wiec nie potrzebnie komplikujesz skrypt ...

pozdrawiam
Go to the top of the page
+Quote Post
Paul
post
Post #5





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

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


Ja tez bym tak zrobil, tyle, ze jak scarface chce mieszane to mu tak napisalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Vengeance
post
Post #6





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


gdzies cos czytalem ze is_int() (a raczej ZEND engine) sprawdza tylko czy "coś" zostało przesłene jako INTEGER a nie czy to "coś" na pewno nim jest tzn. czy jest liczbą. Nie bijcie jak cos (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rogrog
post
Post #7





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


tak na wszelki wypadek - oprócz is_int, która działa tak jak mówi Vengeance, jest jeszze is_numeric() która sprawdza czy liczba ma numeryczną wartość a niekoniecznie jest integer (może być string - przydatne przy przesyłaniu GET i POST)

no ale przy mieszańcach raczej nie zadziała
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: 21.09.2025 - 15:15