php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.12.2007, 15:01  
adi
Neuer Benutzer
 
Registriert seit: 19.12.2007
Beiträge: 2
adi befindet sich auf einem aufstrebenden Ast
Standard utf8 GET/POST Variablenproblem (erledigt)

Hallo Leute, ich bin mir nicht sicher ob es ein php Problem ist. Ich versuche es dennoch.
Bei der Installation von SugarCRM habe ich festgestellt dass ich keine Umlaute verwenden kann. Alles ab dem Ulaut wird abgeschnitten.
Auf der suche nach dem Fehler bin ich soweit zu behaupten dass es sich um einen Server/Php Configurationsproblem handelt.
Ich poste euch ein Script mit dem ich das Problem verdeutlichen kann. Das seltsame ist, auf meinen Debian System tritt die Sache nicht auf, aber auf dem SLES 10 schon.

PHP-Code:

    <?php
    
function display_form() {
      global 
$PHP_SELF;
    
?>
    <FORM TARGET="<?php echo $PHP_SELF?>" METHOD=POST>
    test: <INPUT TYPE=TEXT NAME="test" VALUE="wassdö|ä|ä|ßn" accept-charset="utf-8">wassdö|ä|ä|ßn
    <INPUT TYPE=HIDDEN NAME="stage" VALUE="results">
    <INPUT TYPE=SUBMIT VALUE="Thanks!">
    </FORM>
    <?php
    
}
    
?>

    <?php
    
function process_form() {
      global 
$HTTP_RAW_POST_DATA;
      echo 
"<br>";
      echo 
string2hex("wassdö|ä|ä|ßn");
      echo 
"<br>";
      echo 
string2hex($_POST['test']);
      echo 
"<br>";
      echo 
string2hex(urlencode("wassdö|ä|ä|ßn"));
      echo 
"<br>";
      
$putdata fopen"php://input" "rb" );
      while(!
feof$putdata ))
        echo 
fread($putdata4096 );
      
fclose($putdata);
      echo 
"<br>";
      echo 
$HTTP_RAW_POST_DATA;
    }

    
?>

<html>
   <head>
       <meta http-equiv=Content-Type content="text/html; charset=utf-8" />
   </head>
   <body>
<?php
if (empty($_POST['test'])) { display_form(); }
else { 
process_form(); }
?>

</body>
</html>



 <?
function string2hex($str)
{
  if (
trim($str)!="")
  {
    
$hex="";
    
$length=strlen($str);
    for (
$i=0$i<$length$i++)
    {
      if (
$i>0$bound="-"; else $bound="";
      
$hex.=$bound.str_pad(dechex(ord($str[$i])), 20STR_PAD_LEFT);
    }
    return 
$hex;
  }
}
?>
Meinem Verständnis nach sollte die Zeile 1 und 2 der Ausgabe des Scriptes natürlich gleich sein. Auf dem Debian ist es ja auch, auf dem Suse aber nicht.

Ausgabe auf Debian:
77-61-73-73-64-c3-b6-7c-c3-a4-7c-c3-a4-7c-c3-9f-6e
77-61-73-73-64-c3-b6-7c-c3-a4-7c-c3-a4-7c-c3-9f-6e
77-61-73-73-64-25-43-33-25-42-36-25-37-43-25-43-33-25-41-34-25-37-43-25-43-33-25-41-34-25-37-43-25-43-33-25-39-46-6e
test=wassd%C3%B6%7C%C3%A4%7C%C3%A4%7C%C3%9Fn&stage =results
test=wassd%C3%B6%7C%C3%A4%7C%C3%A4%7C%C3%9Fn&stage =results

Ausgabe auf Suse:
77-61-73-73-64-c3-b6-7c-c3-a4-7c-c3-a4-7c-c3-9f-6e
77-61-73-73-64-8f-ab-d3-7c-8f-ab-a3-7c-8f-ab-a3-7c-8f-a9-ce-6e
77-61-73-73-64-25-43-33-25-42-36-25-37-43-25-43-33-25-41-34-25-37-43-25-43-33-25-41-34-25-37-43-25-43-33-25-39-46-6e
test=wassd%C3%B6%7C%C3%A4%7C%C3%A4%7C%C3%9Fn&stage =results
test=wassd%C3%B6%7C%C3%A4%7C%C3%A4%7C%C3%9Fn&stage =results

Wie man sieht kommem die UTF-8 Daten über die HTML Seite wieder richtig zurück in den Apache: $HTTP_RAW_POST_DATA.....
Aber in php sin die Daten verfälscht.
Bei GET Variablen ist die Sache genauso.
Wo ist hier der Wurm drin?

Ich hoffe ich bin verständlich.

Geändert von adi (19.12.2007 um 16:30 Uhr). Grund: Problem gelöst
adi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.12.2007, 16:29  
adi
Neuer Benutzer
 
Registriert seit: 19.12.2007
Beiträge: 2
adi befindet sich auf einem aufstrebenden Ast
Standard Lösung

Man muss scheinbar 2 Tage nach einem Geist suchen und hier posten. Schon findet man die Lösung selbst.
Die Lösung steht da->PHP UTF-8 cheatsheet - nicknettleton.com
Das hier war bei mir auf Japanisch gestellt:
mbstring.language = Neutral ; Set default language to Neutral(UTF- (default)
mbstring.internal_encoding = UTF-8 ; Set default internal encoding to UTF-8
mbstring.encoding_translation = On ; HTTP input encoding translation is enabled
mbstring.http_input = auto ; Set HTTP input character set dectection to auto
mbstring.http_output = UTF-8 ; Set HTTP output encoding to UTF-8
mbstring.detect_order = auto ; Set default character encoding detection order to auto
mbstring.substitute_character = none ; Do not print invalid characters
default_charset = UTF-8 ; Default character set for auto content type headerViel Erfolg noch.
adi ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Probleme mit utf8 bei Insert und Update Thamannta PHP Tipps 2008 13 27.06.2008 07:07
[Erledigt] Utf8 SJahr PHP-Fortgeschrittene 11 21.05.2008 17:40
Datenimport von UTF8 Daten TanerCa Datenbanken 2 17.10.2007 11:42
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
UTF8 php und MySQL test022 PHP Tipps 2007 7 12.02.2007 23:11
utf8 datenverarbeitung mit php/mysql aktionkuba PHP Tipps 2007 3 10.11.2005 15:25
MYSQL - ASCII query in UTF8 Tabelle PHP Tipps 2005-2 1 14.09.2005 14:43
utf8 & der Browser HTML, Usability und Barrierefreiheit 1 12.09.2005 22:31
MySQL-Zeichensatz: UTF-8 Unicode (utf8) richtig? Datenbanken 5 30.08.2005 20:20
WHERE CONVERT( `url` USING utf8) ??? Datenbanken 0 03.08.2005 15:01
utf8 encode Text sortieren axelnes PHP-Fortgeschrittene 5 01.08.2005 15:54
Variablenproblem PHP Tipps 2005 1 21.05.2005 16:55
[Erledigt] UTF8 und MySQL 4.0 Datenbanken 5 18.04.2005 21:31
MySQL - Variablenproblem GeorgM Datenbanken 11 28.02.2005 18:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php post utf8, php post utf-8, post umlaute, umlaute post, post utf-8, html post umlaute, php utf8 post, get utf8, get umlaute, post utf8, get utf-8, php $_post utf8, utf8 get, php post utf, php variable utf8, sugarcrm umlaute, php variable utf-8, html php umlaute get utf8, php variablen utf-8, utf-8 get

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum