Probleme mit \ und Sessions
Daniel
- php
0 Andreas Korthaus0 Daniel0 Andreas Korthaus0 Daniel0 Andreas Korthaus
Hi alle,
ich hab folgendes Problem. Ich muss eine Ausgabe in php machen, und zwar sollte es so aussehen: <a href="?site=listmenu§i=News&PHPSESSID=Session" onmouseover="return overlib(' | <a href='?site=1&PHPSESSID=Session'>News hinzufügen</a> | ', FIXX, 0, FIXY, 0)">News</a>
Tja im Quelltext habe ich folgendes:
....
while ($menu=mysql_fetch_array($menuquery))
{
$ausgabe = " | ";
$q_string = $php_self . "?site=" . $menu[site_id];
$ausgabe = $ausgabe . "<a href=". $q_string . ">" . $menu[name] . "</a> | ";
}
echo "<div class="kat"><a href="$php_self?site=listmenu§i=$kat[kat]" onmouseover="return overlib('$ausgabe', FIXX, 0, FIXY, 0)">$kat[kat]</a></div>";
....
Im Quelltext erscheint dann folgendes:<a href="?site=listmenu§i=News&PHPSESSID=Session" onmouseover="return overlib(' | <a href="?site=1&PHPSESSID=Session">News hinzufügen</a> | ', FIXX, 0, FIXY, 0)">News</a>
Das Problem ist das er " hineinmacht... also der Teil:
nbsp; <a href="?site=1&PHPSESSID=Session">
^ ^
Was kann man dagegen machen. Ich hab im Quelltext schon versucht in dem Teil " . "<a href=". $q_string . ">" . "
Also das <a href='". $q_string . "'>" und das <a href=\'". $q_string . "\'>", allerdings gib es dann ein Problem, denn dann schreibt sich die SessionId irgendwie ganz komisch hinein... so etwa:
<a href="?site=listmenu§i=News&PHPSESSID=Session" onmouseover="return overlib(' | <a href="//?PHPSESSID=Session"'?site=1//'>News hinzufügen</a> | ', FIXX, 0, FIXY, 0)">News</a>
Tja, aber das ich ja völlig falsch. Kann jemand helfen?
Danke.
Daniel
Hallo!
ich hab folgendes Problem. Ich muss eine Ausgabe in php machen, und zwar sollte es so aussehen: <a href="?site=listmenu§i=News&PHPSESSID=Session" onmouseover="return overlib(' | <a href='?site=1&PHPSESSID=Session'>News hinzufügen</a> | ', FIXX, 0, FIXY, 0)">News</a>
Tja im Quelltext habe ich folgendes:
....
while ($menu=mysql_fetch_array($menuquery))
{
$ausgabe = " | ";
$q_string = $php_self . "?site=" . $menu[site_id];
$ausgabe = $ausgabe . "<a href=". $q_string . ">" . $menu[name] . "</a> | ";
}
echo "<div class="kat"><a href="$php_self?site=listmenu§i=$kat[kat]" onmouseover="return overlib('$ausgabe', FIXX, 0, FIXY, 0)">$kat[kat]</a></div>";
....
Im Quelltext erscheint dann folgendes:<a href="?site=listmenu§i=News&PHPSESSID=Session" onmouseover="return overlib(' | <a href="?site=1&PHPSESSID=Session">News hinzufügen</a> | ', FIXX, 0, FIXY, 0)">News</a>
Das Problem ist das er " hineinmacht... also der Teil:
nbsp; <a href="?site=1&PHPSESSID=Session">
^ ^
Was kann man dagegen machen. Ich hab im Quelltext schon versucht in dem Teil " . "<a href=". $q_string . ">" . "
Also das <a href='". $q_string . "'>" und das <a href=\'". $q_string . "\'>", allerdings gib es dann ein Problem, denn dann schreibt sich die SessionId irgendwie ganz komisch hinein... so etwa:
<a href="?site=listmenu§i=News&PHPSESSID=Session" onmouseover="return overlib(' | <a href="//?PHPSESSID=Session"'?site=1//'>News hinzufügen</a> | ', FIXX, 0, FIXY, 0)">News</a>
Tja, aber das ich ja völlig falsch. Kann jemand helfen?
Als erstes, das ist ja absolut gruseliger Quelltext, da braucht man wirklich Stunden das zu verstehen, Du solltest das mal auf den wichtigen reduzieren! Ist auch schöner für Dich zum testen. Dann soltest Du Dir mal einige Variablen ausgeben lassen, die evtl schuld tragen könnten, das ließe sich sehr einfach eingrenzen denke ich. So wie es in der ersten Variate steht müßte e seigentlich funkionieren, wobei da dann nicht wie Du woltest jeweils ein ' das problematische href umgibt. Probier das mal so wie im 2. Veruch, nur ohen dei ' mit \ zu escapen. Und Gebe mal Variablen aus wie $q_string, $ausgabe... um zu gucken wo genau der Fehler entsteht!
Grüße
Andreas
Hi Andreas,
ich kann dir genau sagen, wo der Fehler liegt:
"<a href=/'". $q_string . "/'>"
^^ ^^
Genau an den Stellen weiß ich nicht was ich machen soll. Er soll nämlich /' ausgeben und das tut er nicht. Im Normalfall würde ich nämlich /' das schreiben, aber das geht nicht, da sich an dieser Stelle die session ausgibt: href="/?PHPSESSID=4a1920ade617c9f099254599fb1285b0"'?site=1/'...
Tja und das ist völlig Blödsinn.
Bis denne
Daniel
Hi!
ich kann dir genau sagen, wo der Fehler liegt:
"<a href=/'". $q_string . "/'>"
^^ ^^
Genau an den Stellen weiß ich nicht was ich machen soll. Er soll nämlich /' ausgeben und das tut er nicht.
Hä? /' oder '?
Im Normalfall würde ich nämlich /' das schreiben, aber das geht nicht, da sich an dieser Stelle die session ausgibt: href="/?PHPSESSID=4a1920ade617c9f099254599fb1285b0"'?site=1/'...
Wenn Du / ausgeben willst dann schreib das einfach darein, wenn Du \ ausgeben willst dann schreibe \!
Grüße
Andreas
Hä? /' oder '?
/' das soll er ausgeben.
Wenn Du / ausgeben willst dann schreib das einfach darein, wenn Du \ ausgeben willst dann schreibe \!
Darauf bin uch doch auch schon drauf gekommen, allerdings gibt er dann dsa aus: <a href="/?PHPSESSID=d8156114e169e9e62261524881e69b53"'?site=1/'>
und dann gibt der das in dem JavaScript nicht richtig aus.
Hi!
/' das soll er ausgeben.
Wenn Du / ausgeben willst dann schreib das einfach darein, wenn Du \ ausgeben willst dann schreibe \!
Darauf bin uch doch auch schon drauf gekommen, allerdings gibt er dann dsa aus: <a href="/?PHPSESSID=d8156114e169e9e62261524881e69b53"'?site=1/'>
Das kann definitiv nicht sein. Wenn Du / bekommst hast Du auch / in echo geschreiben.
und dann gibt der das in dem JavaScript nicht richtig aus.
echo "<div class="kat"><a href="$php_self?site=listmenu§i=$kat[kat]"
onmouseover="return overlib('$ausgabe', FIXX, 0, FIXY, 0)">$kat[kat]</a></div>";
^ ^
Das kann irgendwie alles nicht sein.
Du gibts die ' ja um Ausgabe an, also '$ausgabe', da liegt das Problem, nicht innerhalb von $ausgabe, sondern drum rum. Also: \'$ausgabe\' und es sollte funktionieren, wenn Du noch weißt was Du am Anfang hattest.
Durch die Komplexität baust Du selbst immer mehr Fehler ein, da Du total den Überblick verlierst!
Grüße
Andreas
Hi!
Ich kann dir genau sagen, wo der den Fehler macht, auch wenn du es nicht ganz glaubst.
$q_string = $php_self . "?site=" . $menu[site_id];
__ __
$ausgabe = $ausgabe . "<a href='" . $q_string . "'>" . $menu[name] . "</a> | ";
^^ ^^
echo "<div class="kat"><a href="$php_self?site=listmenu§i=$kat[kat]" onmouseover="return overlib('$ausgabe', FIXX, 0, FIXY, 0)">$kat[kat]</a></div>";
Tja und dann gib der etwas falsches aus, da er an dieser Stelle die Session ausgeben will, so wie ich schon geschrieben habe.
Bis dann und danke
Daniel
Hi!
/' das soll er ausgeben.
Wenn Du / ausgeben willst dann schreib das einfach darein, wenn Du \ ausgeben willst dann schreibe \!
Darauf bin uch doch auch schon drauf gekommen, allerdings gibt er dann dsa aus: <a href="/?PHPSESSID=d8156114e169e9e62261524881e69b53"'?site=1/'>
Das kann definitiv nicht sein. Wenn Du / bekommst hast Du auch / in echo geschreiben.
und dann gibt der das in dem JavaScript nicht richtig aus.
echo "<div class="kat"><a href="$php_self?site=listmenu§i=$kat[kat]"
onmouseover="return overlib('$ausgabe', FIXX, 0, FIXY, 0)">$kat[kat]</a></div>";^ ^
Das kann irgendwie alles nicht sein.
Du gibts die ' ja um Ausgabe an, also '$ausgabe', da liegt das Problem, nicht innerhalb von $ausgabe, sondern drum rum. Also: \'$ausgabe\' und es sollte funktionieren, wenn Du noch weißt was Du am Anfang hattest.
Durch die Komplexität baust Du selbst immer mehr Fehler ein, da Du total den Überblick verlierst!
Grüße
Andreas
Also ich hab jetzt herausgefunden, dass es irgendwas mit einem Fallback zu tun hat. Deshalb gibt der die Session an der falschen Stelle aus, leider weiß ich noch nicht, wie ich das Löse, aber ich werde mir das mal anschauen, was man da machen kann. Kennt sich von euch jemand mit Fallbacks aus?
Also ich hab jetzt herausgefunden, dass es irgendwas mit einem Fallback zu tun hat. Deshalb gibt der die Session an der falschen Stelle aus, leider weiß ich noch nicht, wie ich das Löse, aber ich werde mir das mal anschauen, was man da machen kann. Kennt sich von euch jemand mit Fallbacks aus?
Ja, da hätte ich drauf kommen können, aber wie gesagt, der Quelltext war irgendwie undurchsichtig.
http://www.php3.de/manual/de/function.ini-set.php
genauer:
url_rewriter.tags // hiermit kannst Du einstellen, welche Elemente umgeschrieben werden sollen, funktioniert mit obiger Funkiton in einem Script
session.use_trans_sid // schaltet den Fall-back Mechanismus an/aus, geht aber nur in .htaccess(nur in PHP Modul-Version) oder httpd_conf oder php.ini.
Wie man ini_set() anwendet steht in den Kommentaren. Ich empfehle vorab mit einfachen Scripten zu testen.
Grüße
Andreas
genauer:
url_rewriter.tags // hiermit kannst Du einstellen, welche Elemente umgeschrieben werden sollen, funktioniert mit obiger Funkiton in einem Script
Also abgeschaltet habe ich es bekommen, allerdings funktioniert die Funktion nicht mehr, die ich über die Session eingebaut habe.
Aber trotzdem danke...
Daniel