[PHP] sessie en header?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok ik heb het volgende probleem. Ik heb een index.php file die checkt of een browser html of WAP is.

Als het html is dan wordt ie geredirect naar html_index.php.

Als ik nu naar index.php ga en dan probeer in te loggen krijg ik geen sessie aangemaakt.
Ga ik nu direct naar html_index.php en log ik in, dan werkt alles gewoon goed.

Ik zal even de code van index.php geven:

index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
session_start();
session_unset();
session_destroy();

if (strstr(strtolower($HTTP_ACCEPT), "text/vnd.wap.wml")) {
        $nexturl="wap_index.php";
} else {
        $nexturl = "html_index.php";
}
header("Location: $nexturl");
exit;


bovenste van html_index.php
PHP:
1
2
3
session_start();
session_unset();
session_destroy();


En hoe ik mijn sessie aanmaak:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function startsessie($klantstatusid,$klantid){
    $dr=$this->docroot;

    //variabele $sessieid global maken
    global $sessieid;

    $sessieid = $klantid;
        
    session_start();
    session_register("sessieid");
    //echo $sessieid;
    
    //echo "sessie is aangemaakt";
    header("Location: $dr/member.php");
}


Iemand enig idee wat ik fout doe?

Acties:
  • 0 Henk 'm!

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Bij redirects dmv Location: wordt de sessie informatie niet meegegeven volgens mij. Je moet dan ff header( "Location:filename.php?". SID ); doen, dan wordt de sessie id eraan geplakt en zou het goed moeten gaan...

Acties:
  • 0 Henk 'm!

Verwijderd

Voordat je die header stuurt doe je even een session_write_close(); dan wordt de sessie opgeslagen.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
session_start(); 
session_unset(); 
session_destroy(); 

if (strstr(strtolower($HTTP_ACCEPT), "text/vnd.wap.wml")) { 
        $nexturl="wap_index.php"; 
} else { 
        $nexturl = "html_index.php"; 
} 

// volgende regel tussenvoegen
session_write_close();

header("Location: $nexturl"); 
exit;

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het allebei geprobeerd, en het werkt allebei niet :(

Hij maakt bij allebei de manieren gewoon geen sessie aan :'(

Iemand anders nog suggesties?

[ Voor 15% gewijzigd door Verwijderd op 15-05-2003 20:20 ]


Acties:
  • 0 Henk 'm!

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 05:35

JSchut

.....

Scheelt het als jeje session_start() buiten je functie aanroept?

PSN jschut_82 | Xbox: JSchut82


Acties:
  • 0 Henk 'm!

Verwijderd

Probeer je nu niet twee keer per pagina een sessie aan te maken?
Die functie start_sessie, waar gebruik je die? Verderop in html_index.php ?

Acties:
  • 0 Henk 'm!

  • Harm
  • Registratie: Mei 2002
  • Niet online
Als ik je code zo bekijk dan zet je aan het begin van onder andere index.php een sessie door middel van session_start () die je daarna direct weer destroy dmv session_destroy (). Klopt dat en heeft dat een bepaald nut? Want als ik in mijn eigen code op die manier sessies aanmaak gebeurt er ook niks en blijf ik terugkomen op de loginpagina.

Acties:
  • 0 Henk 'm!

  • Eegee
  • Registratie: Januari 2000
  • Laatst online: 23:35
Kijk eens naar de tips onder session_destroy op php.net, bijvoorbeeld die van xox (commentaar van mij erbij):
code:
1
2
3
4
5
6
7
8
9
10
11
destoying a session in php4 

session_start(); // sessieid uit cookie ophalen (indien meegezonden)

session_unset(); // unset die sessie
setcookie(session_name()); // wis cookie PHPSESSID
$HTTP_COOKIE_VARS=Array(); // 'wis' cookievar
$_COOKIE=Array();  // idem
$_REQUEST=Array(); // hoeft niet perse
session_destroy(); // kill de opgehaalde sessie
session_start();  // start een nieuwe sessie met een nieuwe cookie
Pagina: 1