In een script heb ik


<?php
$_SESSION['username'] = $row['username'];
echo "Ingelogd als :". $_SESSION['username']   ;
?>


Dat wordt mooi geprint "Ingelogd als :...". dus daar werkt het nog
Dan probeer ik dit in een ander php weer op te halen via de code:


<?php
session_start();

include('config.php');

if (isset($_session['username'] )) {
  echo "je bent ingelogd als ".$_session['username'];
 } else {
  echo "je bent NIET ingelogd  ";
  echo $_session['username'];
}
?>


Maar dit geeft fout, krijg melding

je bent NIET ingelogd als
Notice: Undefined variable: _session in bp.php on line 10.
Het zit dus in: echo $_session['username'];

Wat doe ik fout? Iemand een idee?

Hoofdletters!
Variabelen zijn case sensitive = hoofdletter gevoelig in PHP. Het moet dus $_SESSION zijn (en niet $_session - dat is voor PHP heel wat anders).
Oke dat heb het nu aangepast naar
 
<if (isset($_SESSION['username'] )) {
  echo "je bent ingelogd als ".$_SESSION['username'];
 } else {
  echo "je bent NIET ingelogd als ";
  echo $_SESSION['username'];;
}


maar krijg nog steeds: je bent NIET ingelogd als
Notice: Undefined index: username in bp.php on line 10
Na aanpassing naar hoofdletters, komt nu melde undefined index

Je maakt $_SESSION['username'] niet aan. Mogelijk doe je dit op een andere pagina waar de session_start(); mist.
Aha de session_start() had ik niet op pagina waar aan de $_SESSION['username'] een waarde werd toegekend. Het werkt nu ! Bedankt Ariën en Rob
Sowieso kun je in je else-block geen gebruik maken van $_SESSION['username'], omdat je 100% zeker weet dat die niet zal bestaan. Dat heb je immers in je if-conditie al getest.
Willem vp op 05/06/2018 13:43:27
Sowieso kun je in je else-block geen gebruik maken van $_SESSION['username'], omdat je 100% zeker weet dat die niet zal bestaan. Dat heb je immers in je if-conditie al getest.


Niet helemaal waar, $_SESSION['username'] (de key "username" in het superglobale $_SESSION array) kan best bestaan, maar isset levert toch false op ingeval de waarde hiervan gelijk is aan NULL (misschien is !empty() dan een betere check?). Ik ben het met je eens dat het gebruik van $_SESSION['username'] in het else-statement niet erg zinnig is.
Thomas je gooit isset en empty door elkaar volgens mij? Iig kijkt isset gewoon of een variabele of element in een array geinitialiseerd is. Empty of is_empty wat is het eigenlijk? Die gebruik ik zelf nooit omdat deze functie voor verwarring kan zorgen.
@Frank: https://secure.php.net/manual/en/function.isset.php voorbeeld 1,5 (tussen #1 en #2 in - specifiek over arrays, zie 'hello'). Als je wilt weten of een key bestaat (ook als de waarde null is) moet je array_key_exists() gebruiken.

$a = ['x' => null];
print(isset($a['x']) ? 'true' : 'false'); //false
print(array_key_exists('x', $a) ? 'true' : 'false'); //true
Dat, of het gebruik van NULL-waarden in arrays verbannen ;).

Reageren