Großes Problem mit Sonderzeichen.

schogun

Mitglied
Hallo erstmal,

ich habe folgendes Problem. Ich habe in einer Datenbank ettliche Nicknames stehen. Diese sollen alle in einer Liste angezeigt werden, dies ist ja alles überhaupt kein Problem.

So manche Nicks enthalten aber aber folgendes zeichen: &

Diese Nicks in der Liste verlinkt sind über ein javascript:

Aufruf des Javascriptes in der PHP Datei:
HTML:
<a href=\"javascript:oeffnefenster2('http://www.Server.de/unterverzeichnis/".  $nick."')\" target=\"_self\" >". htmlspecialchars($nick) ."</a>

Das dazugehöroge Javascript (ausgelagert in eienr JS Datei.)
HTML:
function oeffnefenster (url) {
 fenster = window.open(url,'Homepage','height=500,width=900,location=no,menubar=no,resizeable=yes,scrollbars=yes,status=no,toolbar=yno');
 fenster.focus();
}

Klappt auch soweit, bis auf die Nicks mit dem &. Um dort die dazugehörige Homepage (Fremder anbieter der Hompage) aufzurufen, muss das & in %26 umgewandelt werden. So das ist per str_replace auch überhaupt kein Thema, wenn die Browser das %26 nicht direkt wieder im link in ein & verwandeln würden. Wie kann ich diese automatische Umwandlung unterdrücken?


Hoffe ich habe mich dich verstänlich ausgedrückt

Schogun
 
Hallo,

scheint wohl eher ein JS Problem zu sein als ein PHP Problem.
Probier doch mal die JS-Funktion encodeURIComponent() aus, also:
Code:
fenster = window.open(encodeURIComponent (url),'Homepage'....
Das Gegenstück nennt sich logischerweise decodeURIComponent()
LINK

Gruß
Markus
 
Nein, das funktioniert leider auch nicht. Ich brauche halt nur die möglichkeit, die automatische umwandlung im Brwoser zu unterdrücken, aber das hab ich bis her nicht hinbekommen, oder sonst wo im WWW gefunden.

Vielen Dank schonmal für Deine Bemühungen
 
Habs grade mal nachgebaut, leicht modifiziert und bei mir gehts folgendermaßen:
Code:
function oeffnefenster(url) {
 fenster = window.open("http://www.server.de/"+encodeURIComponent(url),'Homepage','height=500,width=900,location=no,menubar=no,resizeable=yes,scrollbars=yes,status=no,toolbar=no');
 fenster.focus();
}
Der Aufruf:
Code:
echo "<a href=\"javascript:oeffnefenster('".$nick."')>". htmlspecialchars($nick) ."</a>";

Passenderweise kann man natürlich die Variable umbenennen, da ja nicht mehr die gesamte url übergeben wird.
 
WOW!

Auf diese Lösung wäre ich niemals alleine gekommen (Bin auch totaler Javascript .)
Viele vielen Dank für Deine Hilfe, Du hast mir echt weiter geholfen =)
 
Okay, das eine Problem gelöst, das andere Taucht auf. Nun kommt der Link nicht mehr mit Umlauten zurecht =(

Auch nicht wenn ich Ü in &uuml; umwandeln lasse ...
 
Ich verstehe irgendwie nur Bahnhof...könntest du mal bitte eine URL posten, wie sie ankommen soll, welche & und Umlaute enthält?
 
Also, wenn ein Nick ejtzt das sonderzeichen & enthält und dazu umlaute soll oder muss die URL so aussehen wenn wir den beispielnick: Süß&Sauer nehmen

http://www.Server.de/unterordner/süß&sauer


Ja das umwandeln des & habe ich mittels PHP und Javascript hinbekommen, nun wandelt der Server mir aber die Umlaute wie Ü, Ä, Ö etc. Falsch um das in der URL dann komische Zahlenfolgen stehen wie %E4 oder so, was aber nicht sein darf... Die Umlaute müssen Umlaute bleiben und dort liegt mein Problem.
 
Zurück