Session ab bestimmter Seite starten

Alles, was PHP betrifft, kann hier besprochen werden.

Session ab bestimmter Seite starten

Postby Sarah19 » 17. July 2005 10:11

Hallo ihr da draussen,
Ich will die Session auf meiner Seite nur starten, wenn jemand eine bestimmte Seitew aufgerufen hat, danach soll diese aber überall hin mitgenommen werden.
Hat es so versucht:
Auf allen seiten folgenden Quelltext gleich am Anfang
Code: Select all
<?php
    include("config/configohnesession.php");
    session_start();
    if (isset($_SESSION["sid"])) {
    $link="?PHPSESSID=".$sid."";
    } else {
    $link="";
    }
?>

Dann werden die Links so generiert:
Code: Select all
<?php echo "<a href=tail-riser/index.php".$link.">tail-riser</a>"; ?>

Und nur auf einer Seite wird die richtige config eingefügt mit dem folgenden inhalt
Code: Select all
session_start();


if (isset($_SESSION["sid"])) {
} else {
$tmp = md5(microtime());
$_SESSION["sid"]= $tmp;
}
und dann die daten zur verbindung mit der DB


Ich glaube, dass ich kein Session_start haben darf, weiss aber nicht was ich anders machen muss.
Könnt ihr mir bitte helfen?

Danke (k)
Sarah
User avatar
Sarah19
 
Posts: 58
Joined: 23. August 2004 17:09

Postby jakimo72 » 17. July 2005 19:56

Nur wenn "session_start()" aufgerufen wurde, kann
man auch auf das $_SESSION-Array zugreifen.

Also müssen die Seiten irgendwie anders mitbekommen,
dass der Benutzer bereits in einer Session ist, und
dann erst session_start() aufrufen.

Für die Signalisierung empfielt sich eine ID per GET immer
mitzuübertragen.
Also jeder Link ist mit einem ?sid=... ausgestattet.

Man kann aber auch Webbugs, also unsichtbare Bilder
einbinden, die die SessionID enthalten.
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek

Postby Knight1 » 12. August 2005 17:52

Hi,
ich löse es so dass ich die Session-ID in einem Cookie speichere.
In der index.php welches das Frame-Set für meine Seite bildet habe ich folgendes stehen:

Code: Select all
if (!isset($_COOKIE['session']))
{
session_start();
setcookie ("session", session_id(), time() + 31536000);
}
else
{
session_id($_COOKIE['session']);
session_start();
}

if (!isset($_SESSION['session_identifier']) || empty($_SESSION['session_identifier']))
{
$_SESSION['session_identifier'] = "abc_webshop";
}

if (!isset($_SESSION['lang']) || empty($_SESSION['lang']))
{
$_SESSION['lang'] = "".$config['default_lang']."";
}

include ("lang/".$_SESSION['lang']."");

$_SESSION['last_visit_date']      = date("".$global['date']."",time());
$_SESSION['last_visit_time']      = date("".$global['time']."",time());
$_SESSION['last_visit_timestamp']   = time();


Da die Session ja automtisch mit der index.php gestartet und angelegt wird, brauche ich in den anderen Dateien die über das Frameset geladen werden nur folgendes:

Code: Select all
session_id($_COOKIE['session']);
session_start();



Ich hoffe dass ich Dir damit helfen konnte.


Kai aka Knight1
Image
User avatar
Knight1
 
Posts: 310
Joined: 18. October 2003 10:03
Location: Trier
Operating System: Windows 7 Ultimate x64


Return to PHP

Who is online

Users browsing this forum: No registered users and 41 guests