Hallo,

Mijn PHP kennis is heel summier. Maar ik vind het wel heel leuk en met kopiëren plakken kom ik meestal wel wat verder. Het werkt allemaal maar ik weet niet of deze manier wel de goede is of misschien wel heel oud of omslachtig?

Hier wil ik een extra button "profiel" tonen die alleen zichtbaar is na het inloggen.

<div id="header_menu">
   <nav role="navigation">
	  <ul class="menu">
	   <li class="item-101 active"><a href="/index.php">Home</a></li>
	   <?php if(isset($_SESSION['logged_in'])){ ?>
	   	   <li class="item-103"><a href="/profile.php">profiel</a></li>
	   <?php } ?> 
   	 </ul>
   	</nav>
   </div><!-- end header_menu -->


Hier wil ik de titel "Login of registreer" veranderen in "Hallo en de username" na het inloggen.

<div class="leftbar-title">
	<?php
		
	   if(!isset($_SESSION['logged_in'])){
		   echo "Login of registreer";
	   }
	   else {
		   echo "Hallo " .$_SESSION['first_name'];
	   }
	?>
   </div><!-- end leftbar-title -->


Hier wil ik de button "registreer" veranderen in "Uit loggen" na het inloggen.

<?php if(!isset($_SESSION['logged_in'])){ ?>
   <span class="b_registreer"><a rel="nofollow" href="register_form.php" title="Registreer">Registreer</a></span>
   <?php }else{ ?>
   <span class="b_registreer"><a rel="nofollow" href="logout.php" title="Uit loggen">Uit loggen</a></span>
   <?php } ?> 


Kan je het tussen code-tags zetten?
lijkt me een aardige benadering, maar ik zou wel wat beveiliging toevoegen:

<?php echo "Hallo " .htmlspecialchars($_SESSION['first_name']); ?>

omdat je userinput altijd moet beveiligen.
Stel dat je ergens een lijst van users wilt weergeven als zijnde admin.
Dan wil je ook dat "piet<script>alert(1);</script>" geen javascript laat uitvoeren.

(en ipv alert() zal iets met "stuur login cookie admin door" een eerder te verwachten actie zijn).

Zoek op XSS of cross site scripting
@- Ariën - bedankt voor het toevoegen van de code-tags. @Ivo P bedankt voor de reactie ik ga het aanpassen.

Toch nog een vraagje.. Waarom gebruikte ze het ! teken bij isset bij de voorbeelden die ik vond, ik heb het maar zo overgenomen. Maar je kan toch ook gewoon de echo uitkomst omdraaien?
De ! is hetzelfde als NOT.

if(isset()) is het geset?
if(!isset()) is het niet geset?
San bedankt voor de reactie. Ik weet wat de werking is. Maar waarom niet gewoon zo:

<div class="leftbar-title">
    <?php
        
       if(isset($_SESSION['logged_in'])){
           echo "Hallo " .$_SESSION['first_name'];
       }
       else {
           echo "Login of registreer";
       }
    ?>
   </div><!-- end leftbar-title --> 

Kan ook.

Vind ik zelf trouwens veel logischer.
Gelukkig, ik vond het zelf ook logischer maar ik heb nog niet genoeg ervaring om er 100% zeker van te zijn.

Reageren