anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Kleine Schwierigkeit mit $return https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=4207 |
Seite 1 von 1 |
Autor: | Mampfi88 [ Sa 22 Dez, 2007 18:06 ] |
Betreff des Beitrags: | Kleine Schwierigkeit mit $return |
Es geht sich um folgendes: Die list.php ist bei mir von mehreren Orten aus begehbar und ich würde sie gerne so gestalten, dass man immer wieder da rauskommt, wo man reingegangen ist. Ganz simpel würde das ja funktionieren, wenn ich in den addnav setze: [php]addnav("Kriegerliste","list.php?&return=".URLEncode($_SERVER['REQUEST_URI']));[/php] und dann in die list.php: [php]if ($_GET[ret]==""){ addnav("`7News","news.php"); }else{ $return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET[ret]); $return = substr($return,strrpos($return,"/")+1); addnav("Zurück",$return); }[/php] Dann funktioniert das auch. Nur leider ist das ganze dahin, wenn ich dann einmal auf User online oder auf die verschiedenen Seiten gehe. Jetzt könnte ich zwar bei jedem Nav in der list.php auch noch das &return= einsetzen, aber wenn ich dann fünfmal nacheinander auf User online klicke, muss ich ja auch fünfmal auf Zurück klicken, um aus der Liste rauszukommen, weil das den Link ja immer um ein $return erweitert. Meine Frage jetzt: Kann man in das addnav nicht irgendetwas reinsetzen, dass der Link nicht erweitert wird, sondern nur das, was schon da ist, weitergegeben wird? Dann würde quasi die 'Herkunftsinformation' immer weitergegeben, bis man dann doch auf "Zurück" geht. o.ô |
Autor: | Harthas [ Sa 22 Dez, 2007 18:09 ] |
Betreff des Beitrags: | |
Wie wäre es denn, wen du den return-Wert in die Session speicherst? [php]$_SESSION['session']['return'] = $return;[/php] |
Autor: | Mampfi88 [ Mo 24 Dez, 2007 00:53 ] |
Betreff des Beitrags: | |
Die Idee ist grandios. Leider birgt sie auch wieder kleinere Probleme. Wo pack ich das denn rein? Ich habs zuerst ganz nach oben gesteckt, da hat es aber jedes mal die $return geupdated, wenn ich auf User online oder sonstwo draufgeklickt hab. Wenn ichs unter der normalen list.php (ohne op) mache, gibts trotzdem Probleme. Gibt es vielleicht nen Befehl, der einen von einem OP direkt zum nächsten OP weiterjagt? Dass ich zum Beispiel ein list.php?op=return als addnav nehme, im op=return nur die $return gespeichert wird und man dann direkt ohne zu klicken auf die normale list.php weitergeleitet wird? |
Autor: | anpera [ Mo 24 Dez, 2007 02:22 ] |
Betreff des Beitrags: | |
Sowas? addnav("...","...php?...&return=".$_GET['return']); |
Autor: | Mampfi88 [ Di 25 Dez, 2007 14:19 ] |
Betreff des Beitrags: | |
edit: danke, jetzt hab ich ne lösung gefunden :> |
Autor: | -DoM [ Mi 26 Dez, 2007 14:25 ] |
Betreff des Beitrags: | |
Mampfi88 hat geschrieben: edit: danke, jetzt hab ich ne lösung gefunden :>
Warum eigentlich immer so egoistisch? Ändere haben vielleicht auch dieses Problem und würden sich über eine Lösung freuen... Oder bist du einfach nur schreibfaul? |
Autor: | Mampfi88 [ Mi 26 Dez, 2007 19:45 ] |
Betreff des Beitrags: | |
man kanns auch in den falschen hals bekommen^^ ich hab gedacht, so einen speziellen wunsch hat kaum ein anderer xD naja... die hier genannte erste lösung war schon ganz sinnvoll, leider hat es immer wieder nen neuen link in die session gespeichert, wenn man auf ein nav gegangen ist... deswegen hab ich bei der list.php und bei den navs dorthin noch ein op beigefügt: Bei den Links: [php]addnav("`7Kriegerliste","list.php?op=return&ret=".URLEncode($_SERVER['REQUEST_URI'])."");[/php] und in der list.php dann unter "if ($session[user][alive]) {" [php] if ($_GET['op']=="return"){ $return = preg_replace("'[&?]c=[[:digit:]-]+'","",$_GET[ret]); $return = substr($return,strrpos($return,"/")+1); $_SESSION['session']['return'] = $return; }[/php] in den op kommt man nämlich dann nur, wenn man von außen auf die liste geht... den "Zurück"-Link weiter unten hab ich dann so ergänzt: [php] addnav("Zurück","".$_SESSION['session']['return']."");[/php] und der Vollständigkeit halber, damit auch weiterhin erst die User angezeigt werden, die online sind: Suche:[php]if ($_GET['page']=="" && $_GET['op']=="") {[/php] und ersetze durch: [php]if ($_GET['page']=="" && $_GET['op']=="" || $_GET['page']=="" && $_GET['op']=="return"){[/php] ist vielleicht etwas umständlich gemacht, aber es funktioniert zumindest :> |
Autor: | -DoM [ Do 27 Dez, 2007 10:02 ] |
Betreff des Beitrags: | |
Mir ist es früher auch bereits passiert, dass ich etwas suchte und dann auch gefunden habe, aber nur noch ein "EDIT: gelöst" im Thread gefunden habe.... Und ein Thread ohne Lösung hat keinen Sinn, wie ich finde.... |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |