Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> $_GET - liczba czy tekst?, jak to sprawdzić?
strife
post 10.01.2005, 00:06:30
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
 
Start new topic
Odpowiedzi (1 - 6)
bela
post 10.01.2005, 00:28:44
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 smile.gif


--------------------
Go to the top of the page
+Quote Post
Paul
post 10.01.2005, 00:36:12
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 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 smile.gif
Go to the top of the page
+Quote Post
orson
post 10.01.2005, 16:13:12
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 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


--------------------
Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
Go to the top of the page
+Quote Post
Paul
post 10.01.2005, 16:14:56
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 smile.gif
Go to the top of the page
+Quote Post
Vengeance
post 10.01.2005, 16:44:53
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 smile.gif


--------------------
Go to the top of the page
+Quote Post
rogrog
post 10.01.2005, 17:17:03
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:18