• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

troz urldecode tauchen Sonderzeichen auf

andynail

Mitglied
trotz urldecode tauchen komische Zeichen auf

Hallo zusammen

auf meiner Seite sammle ich Daten aus Links per javaascript und will diese per url an die php Datei übergeben:

Code:
encodeURI("DateiList.php?Namen=" + Namen + "&Dateien=" + Dateien)

und in der php Datei verarbeite ich erst einmal die Namen so:

PHP:
Namen = urldecode($_GET["Namen"]);
$Namen = explode(",",$Namen);

Doch tauchen stets nach jedem Sonderzeichen sonderbare Zeichen auf.

Mit den Daten Dateien hab ich es noch nicht probiert, aber es soll ja erst einmal jeder Text richtig dargestellt werden.

Also bitte ich Euch um Hilfe.

Danbke Gruß Andreas
 
Zuletzt bearbeitet:
Verwende mal in JavaScript die Funktion encodeURIComponent(), welches meines Wissens die Zeichen für URL-Übergabe korrekt kodiert. Habe damit auch schon mehrsprachige Webseiten mit utf8 laufen, nehme daher an du hast mit solchen Sonderzeichen aktuell ein Problem ;)
 
Hallo threadi

und somit schreibe ich die javascript Zeile so:

Code:
"DateiList.php?" + "Namen=" + encodeURIComponent(Namen) + "&Dateien=" + encodeURIComponent(Dateien)

Doch bleiben diese Zeichen weiterhin noch mit drin.

Ich würde mich also um weitere Hilfe sher freuen.

Danke Gruß Andreas
 
Welchen Zeichensatz verwendet deine Seite?
Welchen Zeichensatz haben die Zeichen in diesem String?
Schickst Du das per AJAX ab oder führt es zu einem URL-Aufruf?
Wir brauchen eindeutig mehr Infos .. :-)
 
Hallo threadi

in allen drei Dateien (die mit dem Button, das iframe und die Ausgabedadtei) ssteht:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

und sorry ich dachte es sehe ja schon aus wie ein Link der in einem iframe geöffnet werden soll.

Gruß Andreas
 
Die Angabe des Zeichensatzes per HTML ist mitunter nicht entscheidend. Kontrolliere bitte auch den im HTTP Header ankommenden Content-type mit der Charset-Angabe.

Das Du von einem iframe sprichst ist etwas neues. Hilft mir bei der Eingrenzung aber auch nicht wirklich weiter.
 
Hallo
das ist Chaos! Denn wenn ich nicht verschlüssle, wird der Text richtig angezeigt. Da ich aber noch Dateiverzeichnisse hätte, stehe ich dort vor einem Problemm: Denn zwar werden die Namen stets richtig angezeigt, jedoch der Backslash \ wird doppelt dargestellt! Deshalb wollte ich ja verschlüsseln, damit alle Zeichen richtig dargestellt werden. Und das egal ob mit encodeURI oder encodeURIComponent. Ich erwähne auch mal das Getränkebestellung auch immer anders aussieht wie Ärzte, denn stets hinter den Umlauten zeigen sich weitere Zeichen.
Also wie weiter?
Ich bitte um Hilfe und bedanke mich dafür.
Gruß Andreas
Also wie weiter?
 
Hallo threadi

sorry einen Link zur Seite gibt es nicht. Sie existiert nur lokal auf der _Festplatte.

Und auch wenn das hier nicht gelöst ist, stelle ich mal die Frage, ob das Ganze besser funktioniert mit dem senden an eine php Datei. Sprich mit dem Befehl Post, de ein Formular nicht existiert? Das soll das Ergebnis des Gasnzen werden.

Danke Gruß Andreas
 
Zuletzt bearbeitet:
Ja, wenn Du die Daten per POST schickst, musst Du nicht zwingend kodieren. Dann kannst Du die Kodierung der Texte beibehalten und musst sie auch nicht dekodieren.
 
Hallo threadi

aber wäre es denn dann möglich das eine php Datei in einem iframe auf solch ein Ankommen von Daten durch POST reagiert und sich dadurch aufbsaut?

Danke Gruß Andreas
 
Das Stichwort dazu wäre AJAX. Damit kannst Du auf den Einbau eines iframes verzichten. Der Request würde über JavaScript/AJAX per POST an die PHP-Datei geschickt werden die in einem Response darauf antwortet. Den in dem Response enthaltenen Quellcode (oder was auch immer) kannst Du dann direkt in den HTML-Code der Seite einbinden oder irgendwie anders per JavaScript verarbeiten.
 
Hallo Threadi

also dann möchte ich Dich um ein Code-Beispiel bitten, da ich so absolut nicht weiterkomme. Denn die Zieldatei muss in einem Zusatzframe stehen. Und auch das Codieren einer url würde ich gerne wissen, da ich nur die Variante mit meta kenne und sich das eine oder andere Mal sich Zeichen zeigen.

Danke Gruß Andreas
 
Wg. AJAX schau dir mal dieses einfache Beispiel an:
Ajax Beispiel 001

Die Rückgabe in diesem Beispiel steht in einem <div>-Container. Diesen könnte man per CSS zu einem scrollbaren Bereich machen:

Code:
#content {
 height: 200px;
 overflow: auto;
 width: 200px;
}

Die Response in ein iframe zu laden wäre ungleich komplexer und unnötig.

Den zweiten Teil deines Beitrags verstehe ich aber nicht wirklich. Mit AJAX musst Du nichts mehr kodieren, brauchst lediglich eine URL an die du den Request stellen musst (im Beispiel die PHP-Datei ajax_001.php). Die Parameter übergibst Du per POST, musst sie auf Seite von JavaScript/AJAX also nicht zusätzlich kodieren.
 
Zurück
Oben