PFZ.nl - PHP Community: [CI] Special characters in $_POST - Frameworks - Forum - PFZ.nl - PHP Community

Je kunt niet antwoorden op dit topic
#1 02-02-2012 12:39
  • Gerre a
  • Groep: Forumleden
  • Posts: 52
  • Actief sinds: 06-07-2010
Ik zit met volgende probleem:

Ik heb verschillende string in een formulier waar speciale karakters in kunnen zitten (ê, ë, ...). Als ik deze strings post naar de server en ze in een CI controller wil oproepen, zijn deze karakters eruit gefilterd.

Ik vind volgende in de documentatie van CI (http://codeigniter.c...ries/input.html):

Quote

Filters the GET/POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.
Heeft iemand een idee hoe ik dit in bepaalde gevallen kan omzeilen en dus bepaalde karakters toelaten ?

#2 02-02-2012 12:43

Bekijk Post Op 02-02-2012 13:39 schreef Gerre a:

Heeft iemand een idee hoe ik dit in bepaalde gevallen kan omzeilen en dus bepaalde karakters toelaten ?
Het is smerig, maar kun je niet zelf direct $_POST aanspreken? Dat zou het directe probleem oplossen, lijkt me. Daarnaast zou ik een bugreport inschieten bij CI, want dat gedrag is absoluut onacceptabel.
Beginnen met PHP | mijn blog | twitter.com/berry__

(argumentum verbosium)++

#3 02-02-2012 12:44
  • Gerre a
  • Groep: Forumleden
  • Posts: 52
  • Actief sinds: 06-07-2010

Bekijk Post Op 02-02-2012 13:43 schreef Berry Langerak:

Het is smerig, maar kun je niet zelf direct $_POST aanspreken? Dat zou het directe probleem oplossen, lijkt me. Daarnaast zou ik een bugreport inschieten bij CI, want dat gedrag is absoluut onacceptabel.
Nope, als ik bijvoorbeeld $_POST['titel] gebruik is er ook al op gefilterd.

#4 02-02-2012 12:45
CI filtert alleen de keys volgens de documentatie. Waarom zou je in deze keys non alpha-numeric characters gebruiken?
Wees ze voor en voorkom SQL Injection & Cross Site Scripting!

#5 02-02-2012 12:47
  • Gerre a
  • Groep: Forumleden
  • Posts: 52
  • Actief sinds: 06-07-2010

Bekijk Post Op 02-02-2012 13:45 schreef Random Hunter:

CI filtert alleen de keys volgens de documentatie. Waarom zou je in deze keys non alpha-numeric characters gebruiken?
Ahja, nu dat ik het herlees zie ik dus dat het hier over de keys gaat. Maar het probleem doet zich voor in de values. Foute referentie !

#6 02-02-2012 12:49
Hoi.

Bekijk Post Op 02-02-2012 13:47 schreef Gerre a:

Ahja, nu dat ik het herlees zie ik dus dat het hier over de keys gaat. Maar het probleem doet zich voor in de values. Foute referentie !
Zelfs dat is niet logisch, volgens mij, maar goed. Je probleem bestaat nog wel? Zo ja, kun je dan eens kijken of je in index.php even $_POST kunt var_dumpen om te zien of het daar nog wel goed is?
Beginnen met PHP | mijn blog | twitter.com/berry__

(argumentum verbosium)++

#7 02-02-2012 12:51
  • Gerre a
  • Groep: Forumleden
  • Posts: 52
  • Actief sinds: 06-07-2010

Bekijk Post Op 02-02-2012 13:49 schreef Berry Langerak:

Hoi.



Zelfs dat is niet logisch, volgens mij, maar goed. Je probleem bestaat nog wel? Zo ja, kun je dan eens kijken of je in index.php even $_POST kunt var_dumpen om te zien of het daar nog wel goed is?
Daar is alles nog in orde.

1
array(6) { ["wijzig"]=> string(8) "Wijzigen" ["titel"]=> string(14) "testrecëpt (4)" ...."

#8 02-02-2012 13:01
Hoi.

Bekijk Post Op 02-02-2012 13:51 schreef Gerre a:

Daar is alles nog in orde.

1
array(6) { ["wijzig"]=> string(8) "Wijzigen" ["titel"]=> string(14) "testrecëpt (4)" ...."
Dus wordt het - naar alle waarschijnlijkheid - wel in CI gedaan? Wellicht is het, als smerige hack, mogelijk om het volgende te doen:

1
2
3
4
5
6
7
8
9
10
<?php
// index.php:
$GLOBAL_POST_COPY = $_POST;

// controller:
function foo( ) {
    global $GLOBAL_POST_COPY;
    $input = $GLOBAL_POST_COPY;
    echo $input['titel']; // testrecëpt
}


Dat is lelijk, ik weet het, en ik zou ook zeker kijken waar het strippen vandaan komt, maar voor nu moet iets dergelijks wel werken :)
Beginnen met PHP | mijn blog | twitter.com/berry__

(argumentum verbosium)++

#9 02-02-2012 13:40
  • Gerre a
  • Groep: Forumleden
  • Posts: 52
  • Actief sinds: 06-07-2010

Bekijk Post Op 02-02-2012 14:01 schreef Berry Langerak:

Hoi.



Dus wordt het - naar alle waarschijnlijkheid - wel in CI gedaan? Wellicht is het, als smerige hack, mogelijk om het volgende te doen:

1
2
3
4
5
6
7
8
9
10
<?php
// index.php:
$GLOBAL_POST_COPY = $_POST;

// controller:
function foo( ) {
    global $GLOBAL_POST_COPY;
    $input = $GLOBAL_POST_COPY;
    echo $input['titel']; // testrecëpt
}


Dat is lelijk, ik weet het, en ik zou ook zeker kijken waar het strippen vandaan komt, maar voor nu moet iets dergelijks wel werken :)
Ik heb het nu snel nodig, dus ik zal het even op de lelijke manier moeten doen :)
Je code is simpel maar in dit geval effectief :) Bedankt


Inloggen wachtwoord vergeten? Aanmelden