Hi!
Wir hatten es schon mal, hier ein erneuter, detailierterer Versuch..
Ich möchte hier auf meinem Lokalserver (Apache 1.3, PHP 4.1.3 (glaub ich)) n bissl mit Sessions arbeiten.
Nur leider werden die zugewiesenen Sessionvariablen nicht über einen Link hinweg gespeichert: Auf der Seite, wo ich die Variablen per $_SESSION["variable"]=".." zuweise, sind sie auch verfügbar. Klicke ich nun auf einen Link, so sind die gesamten Varibalen weg. Warum???
Hier einige Codeschnipsel:
user_func.php (auszug)
-------
} else {
if(isset($_POST["setcookie"])) {
$cookie=setcookie("yubbcomm",$array["username"]."|".$array["userpass"]."|".$array["usermail"]."|".$array["id"],60*60*24*365);
if(!$cookie) echo "<p><b>Cookie konnte nicht gesetzt werden!</b></p>";
}
$_SESSION["commusername"]=$array["username"];
$_SESSION["commusermail"]=$array["usermail"];
$_SESSION["commid"]=$array["id"];
echo '<table border="0" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td class="pageheader"><img src="images/blank.gif" width="18" height="1" border="0" alt="" />Geschafft!</td>
</tr>
<tr>
<td>
Du wurdest erfolgreich eingeloggt, '.$_SESSION["commusername"].'!<br />Nun stehen dir (nahezu) alle Türen zu yubb.de offen.<p>Mit einem Blick in die Navigation wirst du sehen, dass sie sich verändert hat und du dort nun die verschiedenen Möglichkeiten hast, Artikel zu schreiben.</p>Viel Spaß wünscht dir das yubb.de-Team!'.print_r($_SESSION).'
</td>
</tr>
</table>';
}
test.php
--------
<?
print_r($_SESSION);
?>
Daten aus einem Loginformular werden an index.php?site=user_func gesendet (index.php beinhaltet ein session_start();). Wie aus dem Auszug ersichtlich ist, schreibe ich 3 Sessionvariablen, die ich testweise am Ende ausgebe. Bis hier ist alles ok. Klicke ich nun auf einen Link, der auf index.php?site=text geht, sind keine Variablen mehr da.
Hier mal der entsprechende Abschnitt aus der php.ini:
------
[Session]
; Handler used to store/retrieve data.
session.save_handler=files
; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
session.save_path=C:/PHP/sessiondata
; argument passed to save_handler
; Whether to use cookies.
session.use_cookies=1
; Name of the session (used as cookie name).
session.name=PHPSESSID
; Initialize session on request startup.
session.auto_start=0
session.cookie_secure=0 ;XXX
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime=0
; The path for which the cookie is valid.
session.cookie_path=/
; The domain for which the cookie is valid.
session.cookie_domain=
; Handler used to serialize data. php is the standard serializer of PHP.
session.serialize_handler=php
; Percentual probability that the 'garbage collection' process is started
; on every session initialization.
session.gc_probability=1
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime=1440
; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
session.referer_check=
; How many bytes to read from the file.
session.entropy_length=0
; Specified here to create the session id.
session.entropy_file=
session.entropy_length=0
;session.entropy_file=/dev/urandom
; Set to {nocache,private,public} to determine HTTP caching aspects.
session.cache_limiter=public
; Document expires after n minutes.
session.cache_expire=180
; use transient sid support if enabled by compiling with --enable-trans-sid.
session.use_trans_sid=1
url_rewriter.tags="a=href,area=href,frame=src,input=src,form=fakeentry"
Dort, wo XXX steht, musste ich die Zeile einfügen, weil der Server ansonsten schon gar nicht $_SESSION erkannt hat..
Ich habe nahezu alles probiert, online funktioniert das alles: Ich habe die phpinfos verglichen (on- und offline), das alles ohne index.php gemacht, die session_start() zum zweiten mal auf einer Seite in die entsprechende Dateien gepackt, es (entgegen der manual, denn ich arbeite ja mit $_SESSION) mit session_register() versucht, ...
Ich bin echt mit meinem Latein am Ende, könnt ihr mir helfen?
Über Antworten und/oder anregungen wär ich dankbar...
Probier mal was anderes diesen Winter: Coke bei 60 °