Linkfehler = wird als %3D und & als %26 angezeigt

Begonnen von GerhardSt, 14 Oktober 2007, 13:42:11

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

GerhardSt

Hallo,

ich bin gerade dabei ein Modul für PragmaMx zu coden.
Leider habe ich dabei ein kleines Problem, wenn ich einen normal Link einfüge funktioniert alles ganz normal.
Aber wenn ich den Link aus einen Listenfeld generrieren lasse, wird bei mir aus = immer %3D und aus & wird %26

Wo könnte da dabei mein Fehler liegen, oder muß ich = und & irgendwie umwandeln das diese korrekt angezeigt werden.

Danke für eure Hilfe, Gerhard

siggi

Zitatwenn ich den Link aus einen Listenfeld generrieren lasse

wie machst du das ? mal nen beispiel ?
Wenn man an Gras zieht wächst es auch nicht schneller.

GerhardSt

Hallo siggi, danke für deine schnelle Antwort.

Das ? ist bereits vorhanden, ich habe das vielleicht ein wenig falsch geschrieben. :red:
Darum nochmal, ich habe ein Script, woraus ich ein Modul coden möchte.
Der dazugehörige Codeausschnitt sieht wie folgt aus
     <select name="{C_PATH}lang">
     <option value="{VALUE}" selected="selected"
     </select>
     <input type="hidden" name="cat" value="{V_CAT}" />
     <input type="submit" value="{L_OK}" />

Wobei ich in der dazugehörigen index.php, {C_PATH} mit name=Modulname& defeniert habe.

Genau so, habe ich das auch mit den anderen Links gemacht, die einwandfrei funktionieren. :gruebel:
Der Code dazu sieht z.B. so aus     <a href="{C_URL}&cat=access_statistics" title="{L_STATISTICS_ACCESS_STATS}">{L_STATISTICS_ACCESS_STATS}</a>
Wobei C_URL mit http://Meine Seite/modules.php?name=Modulname defeniert ist.
Der Code steht in einer html Datei.

siggi

#3
Ich glaube, du machst da einen Denkfehler wenn ich deinen Codeschnipsel richtig
interpretiere:
Zitat <select name="{C_PATH}lang">

Du kannst mit dem select Tag nicht so verlinken. 'name' ist der Bezeichner
Bsp.:
Zitat
<select name="meineSelectvariable">
und macht das Feld später mit

Zitat
$_POST['meineSelectvariable']
ansprechbar.

Die Übergabe der Parameter geschieht im <form>-Tag.
Bsp:
Zitat<form action="{C_PATH}lang" method="post">

Wenn du per select weiterleiten willst mußt du das "onclick"-Attribute in den Tag schreiben
Bsp:
Zitat<select name="foo" onclick="window.location.href='{C_PATHlang}'">
oder so ähnlich ...

Tipp: setzte  &amp; anstatt nur & , damit die Seite auch korrekt validiert wird. :)

Wenn man an Gras zieht wächst es auch nicht schneller.

GerhardSt

Hallo siggi, danke für deine Antwort.

Mir ist schon klar, das dieser Code nicht ganz korrekt ist, aber ich finde einfach nicht die richtige Stelle, wo dieses ? herkommt. Jetzt habe ich es mal vor lang probiert, und es wird auch an der richtigen Stelle eingefügt, nur mit den oben genannten Fehler.

Nur bei deinem Tip komme ich jetzt nicht so ganz mit.
Kannst du mir das bitte genauer erklären, ich Schätze mal ein Teil von den Codes gehört in die index.php und statt meineSelectvariable muss ich in meinem Fall lang einsetzen.

Deinen Tip mit &amp hatte ich auch schon versucht, das & bleibt aber trotzdem ein %26.

Wenn es dadurch leichter geht, ich brauche die Auswahl für die Sprache eigentlich nicht, nur müsste der Pfad dann für deutsch, name=Modulname&lang=de heissen. Oder gibt es da irgendwelche Varriablen von PragmaMx für die Sprache, die man da vielleicht mit einbauen könnte?

Danke, Gerhard

siggi

Wenn du an die URL newlang=german anhängst, wird auch die Sprache, in diesem Fall deutsch, gewechselt.
zum Bsp:
Zitat
...
$neueSprache = "english";
$url = str_replace("{C_PATH}", "modules.php?name=meinmodul&amp;newlang=".$neueSprache, $url);
...
gibt  http :: / /www.{meineseite.de}/module.php?name=meinmodul&newlang=english  aus.

ZitatDeinen Tip mit &amp hatte ich auch schon versucht, das & bleibt aber trotzdem ein %26.
Das hat nichts mit deinem eigentlichen Problem zu tun, sondern deine Seite wird
dadurch korrekt validiert. Der Parameter '&' sollte im Script immer so '&amp;' geschrieben werden.

ZitatNur bei deinem Tip komme ich jetzt nicht so ganz mit.
Kannst du mir das bitte genauer erklären, ich Schätze mal ein Teil von den Codes gehört in die index.php und statt meineSelectvariable muss ich in meinem Fall lang einsetzen.

Was genau willst du denn erreichen ? Ich nehme mal an du willst mit dem<select>-Tag ein
Pulldown-Menü öffnen, indem man dann die Sprache ändern kann:
dann sieh' dir mal dieses Beispiel an:
Zitat
...
<h2>Sprache auswählen:</h2>
<form method="post" action="index.php">
<select name="newlang" onchange="top.location.href=this.options[this.selectedIndex].value">
   <option value="index.php?&amp;newlang=german" selected="selected">Deutsch</option>
   <option value="index.php?&amp;newlang=english">English</option>
   <option value="index.php?&amp;newlang=spanish">Spanisch</option>
</select>
</form>
...

Wenn man an Gras zieht wächst es auch nicht schneller.

GerhardSt

Hi Siggi,
bei dem orginal Code, wir der Link so ähnlich aufgebaut wie hier bei PragmaMx.
http://www.seite.de/index.php?lang=de&....

Das aus index.php, modules.php wird habe ich ohne Probleme hinbekommen. Nur der Teil nach dem ? bereitet mir Sorgen.

Auf das Pulldown-Menü Sprache kann ich verzichten, wenn das mit den Änderungen einfacher dadurch wird, nur werden sämtliche Links mit ...lang=de&... Aufgebaut, also müsste man dies dann auch noch mit einbauen. Es währe vielleicht nicht schlecht, wenn man die aktuelle Sprache von PragmaMx irgendwie übernehmen könnte. Das währe dann z.B. für Englisch en, für Deutsch de, usw.

Pulldown-Menüs habe ich da mehrer, die immer auch mit dem Pulldown-Menü Sprache im Zusammenhang stehen. Um diese alle auf einmal zu korregieren, habe ich diese Lösung gefunden. Währe schön wenn sich dieses Problem irgendwie lösen lässt. Wie du ja bereits gemerkt hast, kenne ich mich mit diesen Pulldown-Menüs leider nicht so wirklich aus.

Danke für deine Hilfe.

siggi

Wenn man an Gras zieht wächst es auch nicht schneller.

GerhardSt

#8
Nein, das ist schon so richtig. Jede Seite ist mit lang=de auch wenn ich die Sprache jetzt z.b. auf Englisch umschalte zeigt der Link lang=en. Da habe ich auch nichts drann geändert.

P.S. Eine Kleingkeit habe ich aber doch übersehen, bei den anderen Links, die funktionieren habe ich die Sprache nicht dabei.

GerhardSt

Hi,
wenn man wüsste wie bzw. wo sich das ? im Code versteckt, wäre das wahrscheinlich leichter zu lösen.
Deshalb frage ich jetzt einfach mal, wie könnte man das ? codieren, das es im Link erscheint, aber im Code nirgends zu finden ist?

Danke für eure Hilfe, Gerhard

siggi

Hallo,
Schick doch mal konkret das Script, damit mal sieht, was genau dein Problem ist.
Dann ist es vielleicht auch leichter nachzuvollziehen. ;)


Wenn man an Gras zieht wächst es auch nicht schneller.

GerhardSt

@siggi

Ich habe dir ein PM geschickt.

Danke, Gerhard