[PHP/HTML] ▪ - bullet sloopt m'n formulier

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
[als dit toch meer /13 is, move em dan maar]

Hoewel het vast niet alleen dit karakter is, doet "▪" (& # 9642 ; ) in 1 van mijn formulieren (GoT heeft er geen overigens geen last van) heel erg rare dingen. Dat het karakter speciale behandeling vereist, blijkt uit het volgende stukkie code:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
    </head>
    <body>
        <form method ="post">
            <textarea id="text" name="text">"&#9642;</textarea>
            <input type="submit"/>
        </form>
        <pre>
        <? 
        print_r($_POST); 
        ?>
        </pre>
    </body> 
</html>


Als ik de meta-tag uitschakel, blijkt het formulier niet meer submitbaar wanneer ik als invoer slechts het "▪"-teken gebruik. Met andere karakters erbij in gaat het prima.

Ok, niet erg, charset specificeren en gaan. Maar nu wordt het echt raar. Helaas kan ik het op simpele wijze niet repliceren, maar ik heb nu het probleem dat het eerste element in m'n POST array op magische wijze verdwijnt wanneer ik m'n originele formulier post.

Dit is een print_r($_POST) van m'n form-data (er hebben dus 100% zeker geen unsets plaats, dit is de pure onaangeroerde POST data):

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [article_id] => 66
    [article_type] => custom
    [article_title] => vvv
    [article_head] => vvv
    [paragraph_id_1] => 51
    [paragraph_body_1] => vvv
    [paragraph_id_2] => 52
    [paragraph_head_2] => 
    [paragraph_body_2] => sdfsdf
    [article_page] => bernardus
    [edit] => Wijzigen
    [nextaction] => admin
)


En dit is er 1tje waarin ik een paragraaf heb zitten met die vermaledijde bullet er in:


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Array
(
    [article_type] => custom
    [article_title] => vvv
    [article_head] => vvv
    [paragraph_id_1] => 51
    [paragraph_body_1] => vvv
    [paragraph_id_2] => 52
    [paragraph_head_2] => 
    [paragraph_body_2] => &#9642; stomme rotbullet
    [article_page] => bernardus
    [edit] => Wijzigen
    [nextaction] => admin
)


Weg article_id....met vage database errors als gevolg...

Ik heb m'n best gedaan de fout te reproduceren met een simpel formulier in plaats van het posten van een intens ranzige lap code (tis een oud cmsje en de klant heeft het probleem 'ontdekt'). dat is me niet gelukt, maar ik heb na lang klooien wel de oorzaak gevonden:

Het formulier bevat namelijk ook file inputs, waardoor het formulier de enctype "multipart/formdata" moet hebben. Als ik die weghaal, gaat alles ineens WEL goed! Maar ja die kan ik natuurlijk niet weghalen, anders doet m'n file-upload het niet meer...

Hoe moet ik dit nou fixen?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:59

crisp

Devver

Pixelated

en met een andere character encoding in je meta tag? UTF-8 bijvoorbeeld?
anders heb je ook nog de property accept-charset voor je form-element: http://www.w3.org/TR/html401/interact/forms.html#h-17.3

[ Voor 48% gewijzigd door crisp op 13-10-2003 20:21 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
thanx! met UTF-8 als charset werkt alles goed! rest mij dus het converteren van de hele betaande database-inhoud naar UTF-8, anders krijg ik vast weer raarheden met de data die reeds in de database zit...

maakt het voor een database iets uit met welke charcater encoding je er iets in opslaat? of moet je er gewoon rekening mee houden bij je in en output?

[edit] wat nader onderzoek heeft uitgewezen dat het gewraakte karakter inderdaad geen deel uitmaakt van de standaard ASCII (ISO-8859?) charset, maar dus wel van UTF-8.

[ Voor 21% gewijzigd door Genoil op 13-10-2003 21:39 ]