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
    1. <form action="search.html" method="post" />
    2. <fieldset>
    3. <input type="text" name="searchinput" class="search" size="35" value="durchsuchen" /> <input type="image" src="img/intern/search.png" class="bottom" alt="Suche starten" />
    4. </fieldset>
    5. </form>


    PHP
    1. $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

  • 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
    1. (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 ;)