torms Skrevet 30. august 2004 Del Skrevet 30. august 2004 Har en side som tar imot en 10-talls variabler med $POST. Jeg leter etter en måte for å "vaske" innholdet mhp tagger og sql-injection. Regner med det er noen som har gjort det før.. Fant denne i manualen: <?php foreach ($_POST as $postvarname => $rawpostcontent) { array_push($_POST[$postvarname], strip_tags(substr(trim($rawpostcontent),0,250))); } ?> Jeg får feilmelding: Warning: First argument to array_push() needs to be an array in /sti/script.php on line 166 Linje 164-167 i mitt scipt: foreach ($_POST as $postvarname => $s) { array_push($_POST[$postvarname],strip_tags($s)); } Som dere ser er strip_tags det eneste jeg gjør foreløpig. Klager altså på at $_POST ikke er en array... -torms Lenke til kommentar
Lokaltog Skrevet 30. august 2004 Del Skrevet 30. august 2004 Klager altså på at $_POST ikke er en array... Feil, den klager på at $_POST[$postvarname] ikke er en array. Skifte til bare $_POST? Lenke til kommentar
audunr Skrevet 30. august 2004 Del Skrevet 30. august 2004 foreach ($_POST as $postvarname => $s) { $_POST[$postvarname] = strip_tags($s)); } Er ikke det like greit, da? Hvis du vil beholde de gamle verdiene i $_POST, så kan du gjøre slik lokaltog (!) skriver. MVH Audun Lenke til kommentar
Torbjørn Skrevet 31. august 2004 Del Skrevet 31. august 2004 $_POST_SQL_OK = array_map("mysql_escape_string",$_POST) $_POST_HTML_SQL_OK = array_map("strip_tags",$_POST) kanskje? Lenke til kommentar
torms Skrevet 31. august 2004 Forfatter Del Skrevet 31. august 2004 $_POST_SQL_OK = array_map("mysql_escape_string",$_POST)$_POST_HTML_SQL_OK = array_map("strip_tags",$_POST) kanskje? Den så bra ut Torbjørn! Men hvordan beholde navnene på variblene? Eller gjør jeg det nå? Virker ikke slik, pga testet ut og fant at både tagger og sql lagres i db. Eks $_POST['navn'] Jeg vil beholde "navn" som variabelnavn etter "vaskingen" ellers er noe av poenget borte. -torms Lenke til kommentar
torms Skrevet 31. august 2004 Forfatter Del Skrevet 31. august 2004 Klager altså på at $_POST ikke er en array... Feil, den klager på at $_POST[$postvarname] ikke er en array. Skifte til bare $_POST? Hvordan mener du det vil se ut da lokaltog? Noe sånt? foreach ($_POST as $s){ $_POST = strips_tags($s); } Og det skal beholde varibelnavnene? -torms Lenke til kommentar
Torbjørn Skrevet 31. august 2004 Del Skrevet 31. august 2004 $_POST_SQL_OK = array_map("mysql_escape_string",$_POST)$_POST_HTML_SQL_OK = array_map("strip_tags",$_POST) kanskje? Den så bra ut Torbjørn! Men hvordan beholde navnene på variblene? Eller gjør jeg det nå? Virker ikke slik, pga testet ut og fant at både tagger og sql lagres i db. Eks $_POST['navn'] Jeg vil beholde "navn" som variabelnavn etter "vaskingen" ellers er noe av poenget borte. -torms ser du at jeg tilordner nye arrays? $_POST_SQL_OK inneholder all informason i $_POST, med mysql_escape_string kjørt. bruk $_POST_SQL_OK['etellerannetl'] for å hente data fra denne. Jeg laget nye arrays slik at ikke originaldataene forsvinner helt. evt si: $_POST = array_map("mysql_escape_string",$_POST); for å overskrive den originale $_POST Lenke til kommentar
Torbjørn Skrevet 31. august 2004 Del Skrevet 31. august 2004 Noe sånt? foreach ($_POST as $s){ $_POST = strips_tags($s); } Og det skal beholde varibelnavnene? -torms aldeles ikke... du setter $_POST (som er et array) til verdien av ett og ett element. når loopen er ferdig vil $_POST være lik det siste elementet i det som tidligere var $_POST. Lenke til kommentar
torms Skrevet 31. august 2004 Forfatter Del Skrevet 31. august 2004 (endret) Noe sånt? foreach ($_POST as $s){ $_POST = strips_tags($s); } Og det skal beholde varibelnavnene? -torms aldeles ikke... du setter $_POST (som er et array) til verdien av ett og ett element. når loopen er ferdig vil $_POST være lik det siste elementet i det som tidligere var $_POST. OK. Dette var det jeg endte opp med og funker glimrende: foreach ($_POST as $key => $value) { $value = strip_tags($value); $value=mysql_escape_string($value); $$key = $value; } Endret 31. august 2004 av torms Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå