verglijking met utf8_decode werkt niet...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nofx nofx

nofx nofx

26/07/2006 20:31:00
Quote Anchor link
Hey, ik zit wat te spelen met de utf8_decode functie, zodat sommige mensen niet meer een bericht kunnen plaatsen met verboden woorden.
Ik heb dus het volgende script gemaakt, alleen werkt hij niet als ik unicode characters invoer, terwijl hij die wel goed omzet.

Je zou de volgende code eventueel kunnen copy/pasten om het zelf ook te zien.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<form action="test.php" method="post">
<input type="submit" name="Submit" value="Submit" />
<input type="text" name="textfield" />
</form>


<?php
$arrStr
[] = "blaat";
$arrStr[] = "moo";
$arrStr[] = "lal";
$arrStr[] = "lolz";
$count = count($arrStr);

for($i=0; $i<=$count; $i++)
{

    CheckStr ( $arrStr[$i] );
}

function
CheckStr ( $str )
{

    foreach ( $_POST as $id => $value )
    {

        $tmp1 = utf8_decode ( $value );
        $strConverted = $tmp1;
        
        echo $strConverted." => lal<br>";
    
        switch(TRUE)
        {                
        
            case
stristr ( $strConverted, "lal" ) == TRUE:
                die( "<br>Gevonden!" );
                break;
        }
    }
}

?>


Als ik bijvoorbeeld gewoon de tekst "lal" invoer, geeft hij de melding "Gevonden!". Dat is dan goed, ik krijg dan ook als output dit te zien:

lal => lal

Gevonden!

Voer ik unicode waarde in, dan zet hij dit wel om naar normale tekst, alleen lijkt hij het toch niet te herkennen op de een of andere manier...
Dit is de unicode waarde wat omgezet ook "lal" betekend:
&#108;&#97;&#108;

Dan krijg ik dit als ouput, zoals je ziet verglijkt hij ze wel, en zou hij eigenlijk allang gestopt moeten hebben, maar hij ziet het niet en gaat gewoon door...

Submit => lal
lal => lal
Submit => lal
lal => lal
Submit => lal
lal => lal
Submit => lal
lal => lal
Submit => lal
lal => lal

Ik snap het echt niet waarom het niet lukt, hopelijk ziet iemand hier wat ik verkeerd heb gedaan...
 
PHP hulp

PHP hulp

22/11/2024 20:20:22
 
Nofx nofx

nofx nofx

27/07/2006 01:24:00
Quote Anchor link
Ik weet al wat er fout gaat, maar wat ik eraan kan doen nog niet.
Als ik bijvoorbeeld dit heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$str1
= "&#108;&#97;&#108;";
$str2 = "lal";

$tmp = utf8_decode($str1);

echo $tmp." => ".$str2."<BR>";

if(stristr( $tmp, $str2) == TRUE)
{

    echo "Gevonden!";
}

?>


Dan weergeeft hij wel de text, maar als je in de html broncode kijkt, zie je gewoon nog de string "&#108;&#97;&#108;" staan. Clonclusie, hij veranderd dus niet die soort unicode, wat ik dus wel wil doen. Iemand nog ideeen..?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.