SESSION



  • Hmm, also ich übergeb jetzt die SID in der Url:

    print	"<form name='next' action='gallery.php?'".session_name()."=".session_id()." method='get'>"
    

    ==

    <form name='next' action='gallery.php?'PHPSESSID=0ab32856fe85e3227efad1e1b2712ee9 method='get'>
    

    aber ich hab jetzt immer noch ne neue Session...



  • Fällt dir nicht das ' nach dem ? in der URL auf 😉



  • oh binnich blöd....



  • ich war zwar blöd, aber es geht immer noch ned.
    ich glaub ich geb auf...

    falls jemand lust hat zu gucken, warums ned geht, hier mein code:

    <?php
    
    	session_start();
    
    	function Show()
    	{
    		$currentIndex = $_SESSION['currentIndex'];
    		$fileList = $_SESSION['fileList'];
    		$file = $fileList[$currentIndex];
    		$path = $_SESSION['path'];
    		$imagePath = strval($path)."/".strval($file);
    		print	"<form name='next' action='gallery.php? ".session_name()."=".session_id()."' method='get'>".
    					"<input type='submit' value='next'>".
            			"<input type='hidden' name='path' value='next'>".
    				"</form>".
    				"<img src= '$imagePath' width='90%' height='90%' border='0' alt=''>";
    	}
    
    	if( $_GET[path] == "next" )
    	{
    	print session_id();
    		$_SESSION['currentIndex'] += 1;
    		Show();
    	}
    	else if( $_GET[path] == "previous" )
    	{
    	print session_id();
    		$_SESSION['currentIndex'] += 1;
    		Show();
    	}
    	else
    	{
    	print session_id();
    		$_SESSION['path'] = $_GET[path];
    		$fileList = array();
    
    		$handle = opendir( $_SESSION[ 'path' ] );
    		while ($file = readdir($handle) ) 
    		{  
    			if( $file != "." && $file != ".." ) 
    			array_push( $fileList, $file );
    		}
    		closedir($handle);
    
    		$_SESSION['currentIndex'] = 0;
    		$_SESSION['lastIndex'] = count( $list );
    		$_SESSION['fileList'] = $fileList;
    		Show();
    	}
    
    ?>
    


  • Was macht er denn bisher?



  • ich geb ja in jedem if zweig die session id aus, und die is jedesmal anders.

    das erste bild wird richtig angezeigt, da die gallery.php aus ner anderen php aufgerufen wird, und die hidden wariable den richtigen pfad hat.
    dann beim click auf next, da wirds falsch, weil die session variablen nicht mehr gespeichert sind, und dadurch der pfad falsch ist. und die session id ist auch ne andre wie beim 1. aufruf...



  • Wenn du dich schon darum kümmerst, die Session-ID zu übergeben, dann musst du sie evtl. auch wieder selber setzen.

    session_id($_REQUEST[session_name()]);
    


  • es geht weder wenn ichs vor session_start() schreib, noch danach.



  • Steht denn in $_REQUEST[session_name()] wenigstens die richtige ID? Falls nicht, stimmt bei der Übergabe schon was nicht 😉



  • wenn ich das printe $_REQUEST[session_name()]

    da steht nix drinne



  • Was für eine PHP-Version hast du? und gibt denn session_name() was aus?!



  • Wofür brauchst du session_name

    Dies muss vor session_start aufgerufen werden um einen Namen für die Session zu setzen.

    Mach einfach folgendes

    session_start();

    $_SESSION['XY'] = "XY"

    ein eURL hängt nicht das an was du machst sondern nur SID

    also www.c-plusplus.net?SID

    Bedenke aber das SID immer als letztes in einer URL sein muss da SID auch leer sein kann.



  • ZEFIXX,

    also ich hab folgendes rausgefunden:

    wenn ich so mach:
    [php]
    print "<form name='next' action='gallery.php?".SID."' method='post'>".
    "<input type='submit' value='next'>".
    "<input type='hidden' name='path' value='next'>".
    "</form>".
    [/php]

    dann krieg ich die richtige SID übergeben und somit auch die richtige session.

    print	"<form name='next' action='gallery.php?".SID."' method='get'>".
    					"<input type='submit' value='next'>".
            			"<input type='hidden' name='path' value='next'>".
    				"</form>".
    

    so krieg ich meine versteckte variable übergeben, aber nicht die SID...
    ich brauch aber beides......



  • Ist ja eigentlich klar denke ich.
    Ich weiß jetzt zwar nicht wie HTML das macht wenn die SID leer ist aber

    So sieht es wenn die SID nicht leer ist.

    gallery.php?PHP_SESSION=sdfsawercsa&path=deinpfad

    und so IMHO wenn sie leer ist.
    gallery.php??path=deinpfad

    Ob das geht weiß ich nicht. Ich übergebe immer per POST.



  • Deswegen finde ich SID immer etwas ungünstig und bastle mir zwei neue Konstanten (eine mit &SID und eine mit ?SID bzw. beide leer, wenn SID leer ist).

    Aber guck dir bei GET doch einfach mal an, wie dein Browser die URL zusammenbastelt... das schön ist doch, dass du das im URL Fenster super sehen kannst.



  • beim get da is nix von der SID in der url zu sehen, nur bei post



  • Klar, wenn du get nimmst, musst du die Session-ID auch über ein hidden-Input übertragen 🙂



  • stimmt!

    endlich habichs :-))

    vielen dank an alle, die mir geholfen hamm, zu der lösung zu kommen..


Anmelden zum Antworten