$_SESSION is dit de goede manier?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erwin b

Erwin b

20/08/2017 22:58:34
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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 } ?>


Ward:
[code][/code]-tags toegevoegd.
Gewijzigd op 21/08/2017 07:02:02 door Ward van der Put
 
PHP hulp

PHP hulp

23/12/2024 00:24:01
 
- Ariën  -
Beheerder

- Ariën -

21/08/2017 00:25:00
Quote Anchor link
Kan je het tussen code-tags zetten?
 
Ivo P

Ivo P

21/08/2017 09:31:45
Quote Anchor link
lijkt me een aardige benadering, maar ik zou wel wat beveiliging toevoegen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?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
 
Erwin b

Erwin b

21/08/2017 10:39:14
Quote Anchor link
@- 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?
 
- SanThe -

- SanThe -

21/08/2017 10:42:04
Quote Anchor link
De ! is hetzelfde als NOT.

if(isset()) is het geset?
if(!isset()) is het niet geset?
 
Erwin b

Erwin b

21/08/2017 10:45:50
Quote Anchor link
San bedankt voor de reactie. Ik weet wat de werking is. Maar waarom niet gewoon zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<div class="leftbar-title">
    <?php
        
       if(isset($_SESSION['logged_in'])){
           echo "Hallo " .$_SESSION['first_name'];
       }

       else {
           echo "Login of registreer";
       }

    ?>

   </div><!-- end leftbar-title -->
Gewijzigd op 21/08/2017 10:47:14 door Erwin b
 
- SanThe -

- SanThe -

21/08/2017 10:53:09
Quote Anchor link
Kan ook.

Vind ik zelf trouwens veel logischer.
 
Erwin b

Erwin b

21/08/2017 12:55:24
Quote Anchor link
Gelukkig, ik vond het zelf ook logischer maar ik heb nog niet genoeg ervaring om er 100% zeker van te zijn.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.