Problem mit sessions auf localhost!

haha das ist nämlich das problem. Die session wird angelegt sobalt man die login.php aufruft und nicht erst wenn man den login bestätigt. Kann ich die session erst anlegen, sobald go=1 ist?

PHP:
<? if($go==1) { 
start_session(); 
}

oder ist das nicht möglich?
 
weil ich in anderen threads gelesen habe, dass session_start() immer gaaanz oben stehen muss. hab das nun so gemacht aber die ID wird immer noch nicht übergeben. Wie kann ich das denn mit cookies machen? hmm irgendwie ist das wie verflucht...
 
session_start()
muss nur ganz oben stehen, bei den scripten, die die Sesison "empfangen",
beim erzeugen ist es aber dir überlassen wo du sie anlegst.

so jetzt habe ich mir mal selbst ein Testscript gebastelt und erstmal festgestellt, dass der Beispielcode von mir aus der Befehlreferenz nur klappt wenn session.use_trans_sid eingeschaltet ist (hängt an jeden Link im PHP-Code die SID an) was ich gar nicht mag.
Wichtig ist, das in allen Dateien, die die Session empfagen ebenfalls session_start() aufgerufen wird !
So mal zwei Beispieldateien, die bei mir problemlos liefen:

page1
PHP:
<?php 
// test.php 

ini_set("session.use_trans_sid", FALSE);

session_start(); 
$_SESSION['favcolor'] = 'green'; 


echo '<a href="test2.php?PHPSESSID=' . session_id() . '">Session Testen</a>'; 
?>

bei klick auf den Link gehts auf folgende Seite, die lediglich die SessionID ausgibt und zum Test auch mal einen Wert der in der Session steht:
PHP:
<?php
//test2.php
session_start();
die("Session: ".session_id()."...".$_SESSION['favcolor']);

?>
 
hmmm also die test dinger funktionieren. Es wird jedoch diese Fehlermeldung ausgegeben:

Warning: Cannot send session cache limiter - headers already sent (output started at C:\apache\htdocs\script\session1.php:2) in C:\apache\htdocs\script\session1.php on line 7

Ich glaub es liegt an meiner PHP version..
 
ich glaube das liegt eher daran, dass session_start() vor jeglicher HTML ausgabe oder jeglichen Includes stehen muss wie ich gerade nachgelesen habe....
Jaja ich und mein schmuddeliges schnelldcoding ;)
 
na das Problem liegt nun an deinem veralteten PHP
Zitat mal wieder aus der Befehlsreferenz ;)
PHP:
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
// also $HTTP_SESSION_VARS['name_der_sessionvar']
// anstatt $_SESSION[''name_der_sessionvar']
 
jo kein ding :].

Nun wird zwar die ID übergeben aber die check.php gibt noch immer einen Fehler aus... :
PHP:
<?
session_start();
if(!isset($_SESSION["user_id"])){
echo"Fehler!";
}
?>
boa ich werd langsam agressiv. Kann mir sonst kurz jemand sagen wo ich schnell ein PHP update herbekomme ohne gleich mein ganzen Server neu installieren zu müssen?
 
Zurück