Toon posts:

[PHP] $_SESSION uitlezen lukt niet

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een login script gemaakt en het werkt niet zoals het zou moeten! Het lijkt erop dat de tweede pagina $_SESSION niet kan uitlezen.

Mijn eerste pagina:

<?php
session_start();
$_SESSION["test"] = "test";
echo $_SESSION['test'];
echo "<br><a href=\"test2.php\">Pagina 2</a>";
?>

Mijn tweede pagina:

<?php
session_start();
if(isset($_SESSION["test"])){
print"Ingelogd!!";
} else{
print"uitgelogd";
}
?>

In pagina 1 wordt dus $_SESSION["test"] gezet, maar wordt op pagina 2 niet uitgelezen, steeds staat er: "uitgelogd".

Ik draai:
PHP versie 5.0.3
Apache 1.3.27

Wie kan mij helpen?

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Je moet volgens mij ook ob_start(); gebruiken, dus na je session_start();

We are shaping the future


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

ob_start() heeft hier niets mee te maken lijkt me. Heb je cookies aanstaan?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op zondag 16 januari 2005 @ 22:09:
ob_start() heeft hier niets mee te maken lijkt me. Heb je cookies aanstaan?
Hoe bedoel je cookies? in de webbrowser?? Die staan gewoon aan!

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22-09 21:46
Ik heb het even uitgetest met php 5.0.3. Je scripts zoals je die in je startpost het staan werken goed. Het is wel zo dat PHP in/op de eerste pagina een cookie set, met daarin een automatisch gegenereerde PHPSESSID welke gedurende de huidige sessie loopt. Dus als je je brower afsluit gaat die cookie ook weg. Ik weet niet hoe jij het zelf hebt uitgetest, maar het kan ook zo zijn dat je brower geen cookies accepteerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sybr_E-N schreef op zondag 16 januari 2005 @ 22:21:
Dus als je je brower afsluit gaat die cookie ook weg. Ik weet niet hoe jij het zelf hebt uitgetest, maar het kan ook zo zijn dat je brower geen cookies accepteerd.
Dat is ook de bedoeling ;) maar hoe kan het dan dat het bij mij niet werkt, terwijl mn browser gewoon cookies accepteerd? :(

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22-09 21:46
Wat voor browser gebruik je? Firefox? Zo ja dan kun je heel simpel via Tools -> Options -> Cookies -> View Cookies -> scrollen naar localhost (of anders je webserver) controleren of die cookie ook is gezet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
gewoon internet explorer

edit: cookies worden wel geset! Ik kan ze gewoon openen!

[ Voor 56% gewijzigd door Verwijderd op 16-01-2005 22:41 ]


Acties:
  • 0 Henk 'm!

  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 26-04-2024
Doe eens op beide pagina's na session_start() ergens een echo session_id() en controleer of die id's wel gelijk zijn. Anders gaat er bij het aanmaken van de session dus al iets mis.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ludo schreef op zondag 16 januari 2005 @ 22:44:
Doe eens op beide pagina's na session_start() ergens een echo session_id() en controleer of die id's wel gelijk zijn. Anders gaat er bij het aanmaken van de session dus al iets mis.
Die id's verschillen inderdaad, maar wat kan ik hieraan doen?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Eigen server? Loop dan de settings voor sessie-handling eens na in je php.ini

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
crisp schreef op zondag 16 januari 2005 @ 22:48:
Eigen server? Loop dan de settings voor sessie-handling eens na in je php.ini
Oke dat klop! Ik kan in php.ini een aantal zaken veranderen, maar ik zou niet weten wat!
Ik ga geen copy paste geven, want dat is veel te lang. Wat me wel opviel is dit:
[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.
;
; As of PHP 4.0.1, you can define the path as:
;
; session.save_path = "N;/path"
Ik ben dus een windows gebruiker, moet ik nu path veranderen in de dir waar de sessies instaan?? Want dat werkt dus ook niet :S

Acties:
  • 0 Henk 'm!

Verwijderd

Ja dat moet je veranderen. naar zoiets als: session.save_path = "C:\server\tmp\"

[ Voor 50% gewijzigd door Verwijderd op 16-01-2005 23:23 ]


Acties:
  • 0 Henk 'm!

  • FF1987
  • Registratie: September 2003
  • Niet online
Nee je moet een path opgeven waar je de sessies in wilt opslaan op de server (het is veiliger om hem niet in je htdocs op te laten slaan). ;)

He hij was me voor. :(

[ Voor 9% gewijzigd door FF1987 op 16-01-2005 23:25 . Reden: Te laat ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op zondag 16 januari 2005 @ 23:21:
Ja dat moet je veranderen. naar zoiets als: session.save_path = "C:\server\tmp\"
Helaas werkt nog niet |:(
Had het dus veranderd naar: session.save_path = "E:\EasyPHP1-7\tmp\"

Ik had er misschien eerder bij moeten zetten dat ik easyPHP gebruik...DOM!!

[ Voor 28% gewijzigd door Verwijderd op 16-01-2005 23:31 ]


Acties:
  • 0 Henk 'm!

  • Hans1990
  • Registratie: Maart 2004
  • Niet online
Ik dacht dat er zoiets was dat een session ID voor een bepaald bestand word toegekent.

Bv als je een global.php hebt die als global functioneert en je zet daar session_start() in dan word de sessie ID voor global.php toegepast. En de bestanden die global.php invoegen of de bestanden die in global.php worden ingevoegt kunnen daar van meegenieten.

Mogelijke oplossing: Maak een globale file ofzo waar je session_start(); doet.

[ Voor 11% gewijzigd door Hans1990 op 16-01-2005 23:34 ]


Acties:
  • 0 Henk 'm!

  • FF1987
  • Registratie: September 2003
  • Niet online
Je hebt de ; toch wel weggehaald he? En bestaat die map wel?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
FF1987 schreef op zondag 16 januari 2005 @ 23:34:
Je hebt de ; toch wel weggehaald he? En bestaat die map wel?
Ja, ik heb de ; weggehaald en die map bestaat. Vind het maar vreemd...

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

Goed. Blijkbaar is het eein instelling probleem. MOve -> SA.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik in de link naar de 2e pagina de sessienaam + id meegeef zoals dit:

$sessionlink= session_name()."=".session_id();

en dan de url test2.php?$sessionlink dan werkt het wel! Hoewel ik dit een minder mooie oplossing vind!

Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt ook proberen om gewoon easyphp opnieuw te installeren (eerst uninstallen dus) want bij een schone installatie staan die settings wel goed.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat heb ik ook al geprobeerd! Maar dat werkt ook niet |:(

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Probeer eens een ander php-pakket, zoals phpdev of apache2triad (_/-\o_)

We are shaping the future


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Alex schreef op maandag 17 januari 2005 @ 19:47:
Probeer eens een ander php-pakket, zoals phpdev of apache2triad (_/-\o_)
Dit is net zoiets als easyPHP neem ik aan?

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22-09 21:46
Verwijderd schreef op maandag 17 januari 2005 @ 20:51:
[...]


Dit is net zoiets als easyPHP neem ik aan?
Klopt, zo zijn er veel meer van die 'all-in-one' pakketten. Het stukje code wat ik heb getest op mijn PC is niet van zo'n pakket. Ik gewoon zelf Apache + php + mysql, gedowload en geinstalleerd (tot zo ver je dat installeren kunt noemen.). Het kan best zijn dat de makers van die pakketten het een en ander hebben veranderd aan de instellingen. Dat zou een reden kunnen zijn waarom bij jouw je session's niet helemaal werken.

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Ik heb zelf Apache2Triad, en dat werkt heerlijk. Komt standaard ook met mail, MySQL en SSL server e.d., kan je zelf aangeven. Pakket neemt 200 mb ruimte in op de HD.

We are shaping the future


Acties:
  • 0 Henk 'm!

Verwijderd

Gebruik je heel toevallig ZoneAlarm? Ik heb het probleem ooit eens gehad en toen ik ZoneAlarm had uitgezet was het probleem weg. Ik heb er nooit een oplossing voor gevonden. hety is voor mij ook niet meer van toepassing, omdat ik nu een eigen linux server draai en ik ook zonealarm niet meer gebruik.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sweet!!! die zoneAlarm was de boosdoener!!

Ik dank u hartelijk RavEn50!!

(dat ik daar zelf niet aan gedacht heb :S)

[ Voor 114% gewijzigd door Verwijderd op 17-01-2005 21:53 ]


Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Je moet die sessie variable eerst registreren alvorens je hieraan een waarde kan toekennen op pagina 1.

PHP:
1
2
   session_register('test');
   $_SESSION['test'] = "test";

Always shoot for the moon. Even if you miss you will land among the stars...


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 22-09 21:46
seamus21 schreef op maandag 17 januari 2005 @ 21:56:
Je moet die sessie variable eerst registreren alvorens je hieraan een waarde kan toekennen op pagina 1.

PHP:
1
2
   session_register('test');
   $_SESSION['test'] = "test";
Zullen we dat maar niet doen. Zie hierover ook de PHP manual en dan vooral deze mededeling:
Caution
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(),

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op maandag 17 januari 2005 @ 21:51:
sweet!!! die zoneAlarm was de boosdoener!!

Ik dank u hartelijk RavEn50!!

(dat ik daar zelf niet aan gedacht heb :S)
Het was bij mij ook meer geluk dan wijsheid :+

Acties:
  • 0 Henk 'm!

  • seamus21
  • Registratie: December 2001
  • Laatst online: 24-02-2018
Sybr_E-N schreef op maandag 17 januari 2005 @ 22:01:
[...]

Zullen we dat maar niet doen. Zie hierover ook de PHP manual en dan vooral deze mededeling:

[...]
Oke tnx. Dat stukje text is nieuw voor mij. Wel mooi ook want het scheelt nog code ook :)

Always shoot for the moon. Even if you miss you will land among the stars...

Pagina: 1