wat gebeurt er met bv ö door POST en?
Ik wil invoer met een functie op een aantal karakters toetsen. De reg ex is getest in Regex buddy en klopt. Als je alt 148 gewoon in de functie invoert: niets aan de hand krijg je ok. Maar run onderstaand scriptje en je krijgt niet ok!
Waarom gebeurt dat?
Code (php)
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
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
<?php
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
function test ($str)
{
return (preg_match ("/^[A-Za-zÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ .&,\-'\/0-9]+$/", $str));
}
if(isset($_POST['tekst']))
{
if(test($_POST['tekst']))
{
echo $_POST['tekst'].' = <strong>ok</strong>';
}
else
{
echo $_POST['tekst'].' = <strong>niet ok</strong>';
}
}
echo'
<h3>vul bv alt 148 in en submit</h3>
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
<input type="text" name="tekst">
<input type="submit" value="submit">
</form>
';
?>
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
function test ($str)
{
return (preg_match ("/^[A-Za-zÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ .&,\-'\/0-9]+$/", $str));
}
if(isset($_POST['tekst']))
{
if(test($_POST['tekst']))
{
echo $_POST['tekst'].' = <strong>ok</strong>';
}
else
{
echo $_POST['tekst'].' = <strong>niet ok</strong>';
}
}
echo'
<h3>vul bv alt 148 in en submit</h3>
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
<input type="text" name="tekst">
<input type="submit" value="submit">
</form>
';
?>
thx El G
Gewijzigd op 19/06/2010 16:58:51 door El Grimbo
Dit werkt top (al begrijp ik nog steeds niet wat er precies gebeurt).
Alleen ontdekte ik dat ik ook het euro teken (ascii 0128) wil toestaan.
Utf8_decode kan daar niet mee overweg.
Vooralsnog geeft het (op de juiste plaats) toevoegen van de regel :
$_POST['tekst'] = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $_POST['tekst']);
goede resultaten. (en € in de pregmatch string opnemen natuurlijk)
Gewijzigd op 20/06/2010 16:17:57 door El Grimbo
Even een vraag, waarom wil je überhaupt testen op die vreemde tekens? Wat is er mis met die tekens?
Gewijzigd op 20/06/2010 20:28:36 door Piet Verhagen
leesvoer: klik
Wil je unicode werken, kijk bijvoorbeeld hier eens om te zien waar je rekening mee kunt houden. En kijk hier.