Toon posts:

PHP session_id

Pagina: 1
Acties:

Onderwerpen


  • KNTA
  • Registratie: Juni 2010
  • Laatst online: 13-05 21:34
Hoi, ik loop momenteel tegen een kleine error aan waarvan ik niet weet hoe ik het moet oplossen.

ik heb een index pagina waar je kan inloggen. Op diezelfde pagina zit een php script die zichzelf laat zien als je bent ingelogd met wat teksten. Als je niet ingelogd bent dan krijg je een inlog formulier te zien ipv die tekst.

PHP:
1
2
3
4
5
<?php
if(!$_SESSION['id']):
?>

formulieren/teksten als je NIET bent ingelogd


PHP:
1
2
3
4
5
6
7
<?php
else:{
echo 'click here to <a href="?logout">logoff</a>'; // als je WEL bent ingelogd
}

endif;
?>


voor de rest staat dit wat denk ik relevant is boven aan mijn pagina:
PHP:
1
2
3
session_name('xxx');
session_set_cookie_params(xxx);
session_start();


de error die ik erbij krijg is:
Notice: Undefined index: id in G:\xampp\htdocs\Test\login.php on line 23

weet iemand hoe je dit moet oplossen?

Ps: ik ben een noob betreft PHP.

Anoniem: 20531

Er vanuit gaan dat regel 23 is: !$_SESSION['id'];

Dan is je ID key niet defined.

Zoek isset || array_key_exists op in de handleiding.

[Voor 26% gewijzigd door Anoniem: 20531 op 12-09-2011 19:17]


  • Noork
  • Registratie: Juni 2001
  • Niet online
Idd, het zijn notices. Je krijgt ze omdat je variabelen niet initialiseert.
Zie b.v.: http://www.phphulp.nl/php...ned-variable-p-in-/14486/

  • KNTA
  • Registratie: Juni 2010
  • Laatst online: 13-05 21:34
ok dankje voor de snelle reply! zal de links ff bekijken :)

  • KNTA
  • Registratie: Juni 2010
  • Laatst online: 13-05 21:34
Ik heb het bekeken en gelezen maar kom er niet echt uit :P..
als ik het goed begrijp moet ik dus die session id iets toekennen zodat ik die notice niet krijg toch?

maar hoe doe ik dat dan? want stel er komt een nieuwe bezoeker aan op mijn site die heeft zich natuurlijk nog niet geregistreerd of een terugkerende bezoeker heeft nog niet ingelogd. Dus er is nog helemaal niks toegekend aan die bezoekers..

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Je checkt of de waarde van $_SESSION['id'] false is. Je wilt waarschijnlijk eerst checken of het element bestaat voordat je de waarde checkt:
PHP:
1
2
3
<?php
if(!isset($_SESSION['id']))
?>

[Voor 10% gewijzigd door KabouterSuper op 12-09-2011 19:47]


  • BCage
  • Registratie: Juni 2008
  • Laatst online: 20-03 11:49
Probeer dit eens:

PHP:
1
2
3
<?php
if(!isset($_SESSION['id']) || !$_SESSION['id']):
?>


Zo kijk je of de key 'id' bestaat, en zo ja of hij niet false is.

[Voor 26% gewijzigd door BCage op 12-09-2011 19:48]


  • KNTA
  • Registratie: Juni 2010
  • Laatst online: 13-05 21:34
bedankt! nu laat die geen notice meer zien =)!

  • BCage
  • Registratie: Juni 2008
  • Laatst online: 20-03 11:49
Je kunt er overigens ook voor kiezen om die foutmeldingen helemaal niet meer weer te geven. Ik raad het je voorlopig niet aan, maar toch:

error_reporting

  • RobIII
  • Registratie: December 2001
  • Nu online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

BCage schreef op maandag 12 september 2011 @ 20:08:
Je kunt er overigens ook voor kiezen om die foutmeldingen helemaal niet meer weer te geven. Ik raad het je voorlopig niet aan, maar toch:

error_reporting
Geef me 1 goede reden waarom je die foutmeldingen zou verbergen anders dan in productie.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


Anoniem: 20531

Hoezo raad je dat voorlopig niet aan maar later wel dan?

  • BCage
  • Registratie: Juni 2008
  • Laatst online: 20-03 11:49
RobIII schreef op maandag 12 september 2011 @ 20:11:
[...]

Geef me 1 goede reden waarom je die foutmeldingen zou verbergen anders dan in productie.
Ik heb geen andere reden. Daarom raad ik het ook niet aan.

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 11:57

Ventieldopje

I'm not your pal, mate!

BCage schreef op maandag 12 september 2011 @ 19:47:
Probeer dit eens:

PHP:
1
2
3
<?php
if(!isset($_SESSION['id']) || !$_SESSION['id']):
?>


Zo kijk je of de key 'id' bestaat, en zo ja of hij niet false is.
Het lijkt me niet verstandig om van $_SESSION['id'] een boolean te maken, lijkt me nogal tegenstrijdige naam en kun je in de problemen komen dat 0 (int) wordt gezien als boolean en dus false terug geeft en 1 als true. Een isset check met optioneel een is_numeric check zal voldoen lijkt mij.

Wat betreft je fout, misschien is het handig als je je inleest in sessies en arrays dan leer je ook snel genoeg waarom het niet werkt wat je wil (aan de hand van de code die je hier gepost hebt).

Sessies:
http://www.sitemasters.be/tutorials/1/1/4/PHP/Sessies_in_PHP (negeer hier het gebazel van "session.auto_start = 1;". Overal waar je sessies gebruikt bovenin het bestand session_start() aanroepen.)

Arrays:
http://www.sitemasters.be/tutorials/1/1/57/PHP/Arrays_Basics

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee