[PHP/Apache] .htacces rewriteproduceerd str ipv int

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Heren,

Ik heb dit in mijn .htaccess staan.
code:
1
2
3
RewriteEngine   on
RewriteBase     /
RewriteRule     ^content/([0-9]*)$              content.php?id=$1


Echter als ik in content.php dit doe:
PHP:
1
print gettype($_GET['id']);

print hij 'string'.

Hoe kan dat als in de rewrite-rule alleen maar cijfers toegelaten worden :?

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Erhm, volgens mij gaat het wel goed, omdat PHP soms ints als strings beschouwd. Dat is niet iets om je zorgen over te maken. Je kunt er gewoon mee rekenen etc.

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Yepz maar ik check of er iets valids in is gegeven dus cijfer. en het makelijkst is dat te doen door te doen:
PHP:
1
is_integer($_GET['id']);

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Is een url niet altijd een string? het heet toch niet voor nik querystring....

Acties:
  • 0 Henk 'm!

  • tomato
  • Registratie: November 1999
  • Niet online
Inderdaad, de waarden waarmee PHP de $_GET, $_POST, etc arrays vult komen uit de querystring (en dat is dus gewoon een string). Door de gebruiker wordt er geen type informatie meegegeven (alles komt gewoon binnen in een lange string).

Of de waarde dan uit louter cijfers bestaat, zal PHP een zorg zijn. Een string kan heel goed uit een aantal cijfers bestaan.

Als je in je PHP script zeker wilt weten dat je een getal hebt kun je de waarde uit $_GET['id'] casten naar een integer, of bijvoorbeeld met een regex controleren:
PHP:
1
2
3
if (preg_match('/^[0-9]+$/', $_GET['id'])) {
   // blaat
}

Acties:
  • 0 Henk 'm!

  • eborn
  • Registratie: April 2000
  • Laatst online: 16-09 09:14
Je kunt misschien ook gebruik maken van
code:
1
is_numeric( $string )
Hieraan geef je de string mee en je krijgt vervolgens true terug als het een geldig nummer is.

Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Ik bedacht vannacht als dat ik is_numeric kan gebruiken :)
Toch thanx :)

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • eborn
  • Registratie: April 2000
  • Laatst online: 16-09 09:14
prog-konijn schreef op 17 maart 2003 @ 07:35:
Ik bedacht vannacht als dat ik is_numeric kan gebruiken :)
Toch thanx :)
Tsss, en mij nog helemaal een bericht laten typen ook :P Lekker is dat ;)
Pagina: 1