[php] inlog pagina pas na f5

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb op mijn site een klein probleempje. Ik werkt met sessions in combinatie met een cookie.

Nu werkt het inloggen prima, maar als je op de bevestigings pagina komt, dan heb je in je menu nog niet je persoonlijke menu. Dat vind ik een beetje raar. Pas als je naar de index gaat, of op f5 druk, laat hij de gegevens als ingelogd lid.

if($submit).......

bak sessie + cookie


en dan show rest van de site, zo werkt het. Dus hij plaatst het cookie + sessie wel eerst, en dan haalt hij pas de content van de site op. Dus ik snap niet waarom hij het pas na een refresh van de pagina werkt.

Acties:
  • 0 Henk 'm!

Verwijderd

Welke manier gebruik je om je sessie-variabelen op te slaan? Volgens mij was er een verschil tussen $_SESSION['iets'] = 'bla'; en session_register('iets');

edit:
Ik bedoel eigenlijk $_COOKIE en setcookie... Lekker wakker vandaag :Z

[ Voor 30% gewijzigd door Verwijderd op 17-05-2003 17:03 ]


Acties:
  • 0 Henk 'm!

  • EL_Loco
  • Registratie: Oktober 2001
  • Laatst online: 08-11-2023

EL_Loco

alias Haco

ja dat probleem had ik ook, maar naderhand niet meer, terwijl ik niets had verandert :?

rumores non hiatus dremelunt
malleo omnia consentiunt
Lid van het Anti-Jamba front!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
<?
$expiry     = 60*60*24*100;

// cookie bakken met sessie informatie
setcookie(session_name(), session_id(), time()+$expiry, "/");

// seesie bakken
session_register("LoginId"); 
?>


Ik doe het zo, hieronder wordt dan de content van de pagina ingeladen.

Ja, en als ik $_SESSION['LoginId'] opvraag, direct na het plaatsen van de sessie, dan echo't hij ook niets. Dus ik doe iets niet goed :S

[ Voor 25% gewijzigd door Verwijderd op 17-05-2003 17:08 ]


Acties:
  • 0 Henk 'm!

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05 22:30

FendtVario

The leader drives Vario!

Verwijderd schreef op 17 mei 2003 @ 17:02:
Ja, en als ik $_SESSION['LoginId'] opvraag, direct na het plaatsen van de sessie, dan echo't hij ook niets. Dus ik doe iets niet goed :S
Dat klopt, als je een cookie naar de browser stuurt kun je hem in de pagina die de cookie stuurt ook niet lezen, dit kan pas de volgende keer laden. Dit komt omdat een cookie op de client is opgeslagen dus eerst naar de server verstuurt moet worden. Dit gebeurt op het moment de dat de client een pagina aanvraagt tijdens of na het HTTP GET commando. Dus, als je een cookie opslaat is bij nog niet bekend en kan dus ook niet verstuurd worden.

Vaak zie je dat dit probleem wordt opgelost door het maken van een soort tussen pagina met de melding "je wordt nu ingelogd" of je kan de pagina zo maken dat een van twee variabelen waarmee je een geldige inlogcode controleert goed moet zijn. Je zou dan bijvoorbeeld dit kunen gebruiken (wel even aanpassen natuurlijk):

PHP:
1
2
3
if (($geldige_login == true) || ($_SESSION['LoginId'] == "ingelogd"])) {
  print_pagina();
}

www.fendt.com | Nikon D7100 | PS5


Acties:
  • 0 Henk 'm!

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 00:01

me1299

$ondertitel

Je kan desnoods een hmtl refresh header met 0 seconden meesturen.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 17 May 2003 @ 17:02:
PHP:
1
2
3
4
5
6
7
8
9
<?
$expiry     = 60*60*24*100;

// cookie bakken met sessie informatie
setcookie(session_name(), session_id(), time()+$expiry, "/");

// seesie bakken
session_register("LoginId"); 
?>


Ik doe het zo, hieronder wordt dan de content van de pagina ingeladen.

Ja, en als ik $_SESSION['LoginId'] opvraag, direct na het plaatsen van de sessie, dan echo't hij ook niets. Dus ik doe iets niet goed :S
uit de manual:
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().
ik zie trouwens nergens waar $LoginId gezet wordt??

Acties:
  • 0 Henk 'm!

Verwijderd

Ik doet 't altijd dmv header(), het is niet echt netjes. Maar het werkt wel prima.

PHP:
1
2
3
4
5
<?php

header('dezelfdepagina.php');

?>


Dan refresht 'ie de pagina, maar de bezoeker merkt er niks van...

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Ik zie geen session_start() staan, kan dat ermee te maken hebben?
Ofheb je die gewoon weggelaten uit je code?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info

Pagina: 1