Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Session-Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Session-Problem


 
Paranoia
09-09-2003, 14:30 
 
Hallo, beschäftige mich das erste Mal mit Sessions komme aber irgendwie gar nicht richtig rein.


Mit dem Code
//////////////////
if($_GET["action"] == "login") { // aus dem Login-Template
$user = $_POST["user"];
session_start();
session_register("user");
}
else
include("./templates/login.tpl");

//////////////////

bekomme ich ne Fehlermeldung:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at F:\.....

 
Seccho
09-09-2003, 15:00 
 
Gibst du zuvor schon html aus? Steht das script am anfang der seite? Includest du zuvor eine seite?

 
goth
09-09-2003, 15:11 
 
Wenn Du jetzt erst mit Sessions anfängst dann vergiß "session_register("user");" und verwende lieber $_SESSION["user"] ... !

 
Paranoia
09-09-2003, 19:02 
 
Original geschrieben von Seccho
Gibst du zuvor schon html aus? Steht das script am anfang der seite? Includest du zuvor eine seite?

Hallo, ja vorher werden schon HTML-Templates included

 
TobiaZ
09-09-2003, 19:10 
 
das darfst du natürlich nicht!

-> siehe forum!
-> siehe manual!

 
Paranoia
09-09-2003, 21:06 
 
Danke TobiaZ die Fehler meldungen sind weg, aber benutzen kann ich irgendwie keine Variablen.


1. Datei:

session_start();


$user= "test";
session_register("test");

2. Datei:

session_start();

echo $user;


Beides steht jeweils am ANfang aber es wird nichts ausgegeben. Muss man ausser dem session tmp-pfad noch was anderes in der php-ini umstellen ?
Hab da aber nix wirklich gefunden

 
Coragon Rivito
09-09-2003, 21:46 
 
wenn du was umstellen willst und nen leck in deine php installation schlagen willst - nur zu ..
die einstellung heisst register_globals

verwende aber stattdessen lieber - wie goth schon erwähnte - $_SESSION

$_SESSION['user'] = 'Coragon';
echo $_SESSION['user'];

 
Paranoia
09-09-2003, 21:52 
 
Original geschrieben von Coragon Rivito
wenn du was umstellen willst und nen leck in deine php installation schlagen willst - nur zu ..
die einstellung heisst register_globals

verwende aber stattdessen lieber - wie goth schon erwähnte - $_SESSION

$_SESSION['user'] = 'Coragon';
echo $_SESSION['user'];

register_globals ist eh angestellt, wie bei fast jedem kommerziellen Webserver. ANsonsten würden auch die meisten Scripte net mehr laufen :-)

geht aber auch mit der oben genannten Schreibweise nicht :-/

 
TobiaZ
09-09-2003, 21:57 
 
dann hast du noch irgendwas falsch!;)

wer auf on programmiert ist selber schuld :D

poste mal aktuellen code

 
Paranoia
10-09-2003, 02:00 
 
<?
session_start();

$_SESSION["user"] = "daniel";

include("./templates/openDatabase.tpl");
/* Haupt-Template */
include("./templates/main.tpl");

.
.
.
function ...
.
.
.

?>


2. Datei zum Prüfen ob Variable übergeben wurde

<?
session_start();

include("../templates/openDatabase.tpl");
/* Haupt-Template */
include("../templates/main.tpl");

/* Inhalt der HTML-Seite */
function inhalt()
{
echo $_SESSION["user"];
.
.
.
}

?>

 
kutiku
10-09-2003, 03:23 
 
Ähem, wie rufst Du die 2. Datei (bei der Du offensichtlich den User von der 1. sehen möchtest, aber nicht siehst) auf?
Die 2. muss ja was von der SID im 1. mitkriegen. Das passiert entweder über ein Cookie (dann kannst Du die 2. fast so aufrufen wie Du willst), oder eben in der URI (meistens so /script2.php?PHPSESSID=fsdf78ds9f7sd9).

Mach doch mal im ersten Script einen relativen Link (bei session.trans_sid=on (per default) wird die SID automatisch angehängt) und benutze diesen Link um auf's 2. Script zu kommen.

 
Paranoia
10-09-2003, 15:25 
 
die 2. Seite wird aus einem HTML-Template heraus aufgerufen (per click), welches in der ersten Datei included wird.

 
Paranoia
10-09-2003, 15:34 
 
alles klar war doch ein php.ini Fehler ....


session.use_trans_sid = 0

stand da, habs auf 1 gestellt und jetzt gehts

 
kutiku
10-09-2003, 15:35 
 
Ich wollte darauf hinaus, ob Script 1 die SID an Script 2 übergibt.

Tut es das?

Mach mal bei Script 1 irgendwo nach session_start() ein echo session_id() und dasselbe auch bei Script2. Haben Sie dieselbe?

<Edit>
Wir ha'm gleichzeitig gepostet.
Jetzt ist's klar, dass die SID nicht weitergegeben wurde.
</Edit>

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:37 Uhr.