login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session met include/header

Offline Erwt - 07/04/2009 12:36
Avatar van ErwtPHP beginner Hey allemaal,

Ik heb bestand test2.php:
  1. <?php
  2. $_SESSION['account'] = array("naam"=>"Erwin","age"=>5);
  3. header("Location:test.php");
  4. ?>


en test.php:
  1. <?php
  2. print_r($_SESSION);
  3. ?>


Wanneer ik nu test2.php open, krijg ik de sessie variabelen NIET te zien.. hij geeft de sessie niet mee, maar wie weet waarom niet?

Als ik nu de header verwissel met een include.. dan doet hij het wel, het gaat dus puur om het wisselen van data tussen de bestanden.

Alvast bedankt.

9 antwoorden

Gesponsorde links
Offline Martijn2008 - 07/04/2009 12:49 (laatste wijziging 07/04/2009 12:50)
Avatar van Martijn2008 PHP beginner Probeer dit eens:
  1. <?php
  2.  
  3. if(isset($_SESSION['account']) && !empty($_SESSION['account']))
  4. {
  5. echo '<span style="color: #009900;">Session exist</span><br />';
  6.  
  7. $arAccount = $_SESSION['account'];
  8. foreach($arAccount as $key)
  9. {
  10. echo $key . "<br />\n";
  11. }
  12. }
  13. else
  14. {
  15. echo '<span style="color: #FF0000;">Session doesn&#39;t exist</span>';
  16. }
  17.  
  18. ?>


Let op! Ik heb de security in dit stukje code achterwegen gelaten. Je zal dit dus zelf verder dicht moeten timmeren. Je kunt met deze code bekijken of de sessie daadwerkelijk bestaat of niet. Hopelijk kom je met deze uitleg verder.
Offline svghosting - 07/04/2009 12:52
Avatar van svghosting Lid Misschien lijkt het me handig als je session_start(); bij test2.php even weghaald.
Offline Martijn2008 - 07/04/2009 12:58
Avatar van Martijn2008 PHP beginner Krijg je errors? Nee? Zet error reporting dan is op E_ALL. Voeg dit toe aan jouw code.

  1. <?
  2.  
  3.  
  4. ?>
Offline ArieMedia - 07/04/2009 13:07
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
De code "header('Location: test2.php');
is een doorsturing. dit moet je vervangen door include('test2.php');

Code word dan:

test.php
  1. include('test2.php');
  2. print_r($_SESSION);


test2.php
  1. $_SESSION['account'] = array("naam"=>"Erwin","age"=>5);
Offline Erwt - 07/04/2009 13:13 (laatste wijziging 07/04/2009 13:15)
Avatar van Erwt PHP beginner @svghosting:

Als ik session_start(); daar weghaal, kan ik togh de sessie niet vullen?

@Martijn:

error reporting levert niets op en ik krijg Session doesn't exist.

@Arie2Zero

Maar ik wil JUIST een header, want include werkt gewoon.
Offline Martijn - 07/04/2009 13:14
Avatar van Martijn Crew PHP Je moet 'exit;' na je header zetten. En ja, klinkt raar maar dat is wel de oplossing
Offline Erwt - 07/04/2009 13:20 (laatste wijziging 07/04/2009 13:23)
Avatar van Erwt PHP beginner Update:

exit(); werkt ook niet.

Wat ik ondervonden heb is dat dezelfde code WEL op mijn webserver werkt, maar niet bij mijn redirect op hosting2go.

Wat hij doet is:

In de header voert hij de code van de test.php wel uit, maar hij blijft gewoon op test2.php, terwijl mijn eigen webserver waar hij het wel doet.. wel naar test.php gaat.

Ik ga nu testen of het op de originele host wel werkt.

Edit: Raar..

www.erwinokken.nl is gelinkt aan:
www.detoezebolle.nl/erwinokken/

Ik ging dus nu naar:
http://www.detoesebolle.nl/erwinokken/test2.php

en die deed het wel.

Ik ga weer naar:
http://www.erwinokken.nl/test2.php

En nu werkt die ook.. en ik heb al 'meerdere' pc's en andere mensen gevraagd..

En de fout was ook alleen maar op Internet Explorer.
Offline svghosting - 07/04/2009 13:23 (laatste wijziging 07/04/2009 13:29)
Avatar van svghosting Lid
Citaat:
Je moet de session_start(): bij test 2 weghalen, omdat er al een pagina met een session wordt geladen zal dus test2 automatisch die session mee pakken;)


nee niet. Dat zou zijn als ie de enige pagina include in de andere. Hij redirect nu naar een ander bestand, als het ware opent er een neiuw bestand, dus moet er opnieuw session_start() komen
Offline Erwt - 07/04/2009 13:27 (laatste wijziging 08/04/2009 22:23)
Avatar van Erwt PHP beginner @svghosting:

Dat zal best, maar dat is het niet.. zo moet het werken (niet te negatief opvatten plz) want nu doet hij het weer niet..

Met firefox doet hij het goed.
Met Internet Explorer op de redirected .nl domein zegt hij: session doesnt exist, en op de originele host doet hij het wel..

Conclusie:

Op een combinatie van Internet Explorer (8??) en mijn redirect gaat het mis, de rest werkt allemaal prima.

Heeft iemand een idee hoe ik dit aan moet pakken?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s