htmlspecialchars verwirrung

  • Hallo zusammen!

    Bin grade echt verwirrt.

    Habe ein Suchfeld für meine Seite geschrieben, aber irgendwas stimmt da nicht:

    htmlspecialchars gibt nichts zurück wenn ein Umlaut im string ist - das kann doch nicht nicht sein :confused:

    HTML
    <form action="search.html" method="post" />
            <fieldset>
                <input type="text" name="searchinput" class="search" size="35" value="durchsuchen" /> <input type="image" src="img/intern/search.png" class="bottom" alt="Suche starten" />
            </fieldset>
    </form>
    PHP
    $searchinput = htmlspecialchars(trim($_POST['searchinput']), ENT_QUOTES);

    Ich blick das grad nicht :o

    Grüße

  • öhm... Gute Frage ^^
    in den metatags hab ich iso-8859-1 festgelegt, sonst nigends.

    muss das mit utf-8 laufen?

  • mmh nee dann sollte das fruchten, iso is standardwert und utf-8 sollte eigentlich auch direkt fruchten, das packt man nur dabei, um da für 100%ige sicherheit zu sorgen.

    edit: habs grad mal nachgestellt, also mit sicherheit liegt es nicht am fehlenden encoding, nicht an der fehlenden double encodeflag und auch nich an der ent_quotes flag...

    fazit: bin selber überfragt

    Einmal editiert, zuletzt von synaptic (8. Dezember 2012 um 15:41)

  • Hab jetzt rausgefunden wie es zu dieser "Anormalie" kam.

    Habe vor kurzen eine neue XAMPP-Version aufgespielt, nachdem ich ewig eine uralte verwendet habe.

    iso-8859-1 ist bis PHP-Version 5.4.0 Standart-encoding bei htmlspecialchars, ab da dann utf-8.
    Da ich alle meine Seiten immer in iso-8859-1 encode, weil mich dieses &uuml;-Gedöns usw. nervt hat das bisher immer gefunzt ^^

    jetzt schreibt man halt in dem Fall z.B.

    PHP
    (htmlspecialchars($string, ENT_QUOTES, 'iso-8859-1')

    ich wär da aber nie drauf gekommen wenn Du mir nicht den Denkanstoß mit dem Encoding gegeben hättest :)
    Vielen Dank dafür ;)