Gebruikers kunnen dus een waarde invoeren maar voordat ik een query ermee wil uitvoeren wil ik er eerst voor zorgen dat alleen het teken ^ (caret) niet toegestaan is in de waarde.

Ik had zelf dit al:
<?php
$name = antisql($_POST['naam']);

$check = strpos($name, "^");
if ($check == true)
{
echo "This sign is not allowed in your name!";
die();
}
?>

Dus als de naam Dave is mag de script doorgaan maar als het de teken ^ bevat zoals ^Dave of Da^ve mag de script niet doorgaan. Echter deze script die ik nu heb werkt niet.

Iemand enig idee wat ik fout doe?
Ik weet niet wat de functie antisql(..) met de waarde doet, maar als je gewoon $name = 'da^ve'; doet werkt het prima.
<?php
$name = antisql($_POST['naam']);

if(!strstr($name, '^'){ // niets aan de hand
// doe je ding

}
else {

echo 'This sign is not allowed in your name!';
die(); // die is wel erg grof
}
?>

zou het meoten doen
@SanThe Nvt
De functie antisql filtert ' " ,etc er allemaal uit zodat er niet geïnjecteerd kan worden.

@Klaasjan Boven
Hartstikke bedankt! :)
Dave Jong op 05/09/2010 19:08:21

@SanThe Nvt
De functie antisql filtert ' " ,etc er allemaal uit zodat er niet geïnjecteerd kan worden.



Lees eens de documentatie voordat je wat doet.
[php]mysql_real_escape_string[/php].

Reageren