Goedemorgen U allen,

Ik probeer voor mijn eenvoudige website die alleen voor privé doeleinde wordt gebruikt, een menu te maken dat kijkt wie er is ingelogd.
Het inloggen gaat prima nu wil ik een 2 tal menu links voor de gebruiker niet zichtbaar maken.

Gebruiker

home
dashboard
logboek



Beheerder

home
dashboard
logboek
service

Waar ik na laat kijken is


<?php
if (isset($_POST['submit']))
{
    $UserName=$_POST['UserName'];
    $Password=$_POST['Password'];
    
    if ($UserName=="user1" && $Password=="pw1")
        
    {
        session_start();
        $_SESSION['member']="User1";
        header('location:service.php');
    }
    elseif ($UserName=="user2" && $Password=="pw2")
    {
        session_start();
        $_SESSION['member']="User2";
        header('location:settings.php');
    }
    else
    {
        header("location:index.php?error=1");
    }
}
?>


En dit doe ik om te kijken of de menu link zichtbaar mag worden.

<?php
$UserName = "user2"; 
 
if ($UserName == "user2"):?>
    <p><a href="service.php">Service</a></p>
<?php else:   
    echo "  ";
 endif; ?>



Nu weet ik dat mijn kennis van PHP niet erg groot is maar ik kom met mijn kennis een heel eind voor mijn website.
Helaas is dit voor mij een struikelblok waar ik niet uit kom ik heb het idee dat ik er heel dicht bij ben maar ik zie niet.
Dus klop ik hier maar weer even aan om raad te vragen.

Ps. ik weet dat mijn kennis van PHP niet zo is als die van de meeste hier.
Waar loop je precies op vast? Je username staat nu nog wel hardcoded. Die kan je uit je sessie ophalen.

Persoonlijk zou ik gewoon { en } bij je if-statement gebruiken, i.p.v. if: en endif. Het maakt het beter leesbaarder, vind ik.

Een database gaat overigens verder op in mijn voorkeur.
Hallo Arien,

Het loopt vast bij het niet of wel zichtbaar maken van de link.
Op de site kan ik wel zien wie er is ingelogd, dat zie door middel van
<?php
$member=$_SESSION['member'];
echo "Welkom"."<br/>";
echo $member. "<br/>";
?>
Dus zou het naar mijn menig aan het wel en niet zichtbaar maken van de link
Ik zou je session_start() beter altijd bovenaan je pagina inladen, dan hoef je deze niet meer steeds halverwege per statement uit te voeren. Zonder deze functie worden sessions niet opgestart.
Deze staat ook op elke pagina boven aan


 <?php
session_start();
if (!isset($_SESSION['member']))
{header('location:index.php');}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />

We hebben gelukkig code-tags op het forum, om je code tussen te plaatsen ;-)

Met dit zou het moeten lukken. Een afhandeling in de else is niet verplicht nodig.

<?php
session_start();
if (isset($_SESSION['member'])) {
	if ($_SESSION['member'] == "user2") {?>
  	  <p><a href="service.php">Service</a></p>
	<?php } 
} else { ?>
	<p>je bent niet ingelogd.</p>
<?php } ?> 
Ik denk dat ik iets fout doe de link wordt niet zichtbaar.
Zo heb ik het in mijn site staan.

	<p><a href="logbuch.php">Logbuch</a></p>
	<p><a href="hilfe.php">Hilfe</a></p>
	<p><a href="settings.php">Settings</a></p>
	 <?php
session_start();
if (isset($_SESSION['member'])) {
    if ($_SESSION['member'] == "user2") {?>
   <p><a href="service.php">Service</a></p>
    <?php }
} else { ?>
    <p>je bent niet ingelogd.</p>
<?php } ?> 
<br>
<br>


[size=xsmall]Toevoeging op 04/02/2016 13:10:07:[/size]

SORRY het gaat wel goed had van "user2" in mijn login file als "beheerder" staan.


Toppie

Mijn Dank is groot
session_start() hoort niet tussen de HTML-code thuis, maar enkel bovenaan je script.
Dit zou bij voorbaat nu al een error op moeten leveren.

Zet dus bovenaan je code:

<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
Andreas Krale op 04/02/2016 11:34:10

Deze staat ook op elke pagina boven aan


 <?php
session_start();
if (!isset($_SESSION['member']))
{header('location:index.php');}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />






[size=xsmall]Toevoeging op 04/02/2016 13:34:27:[/size]

De error reporting ga ik er nu ook in bouwen

Dank je
Okee, succes.

Onthoud wel dat dit inlogsysteem niet flexibel is. Het beste is om een database te gebruiken, dan kan je gebruikers eenvoudig toevoegen, de rechten heel makkelijk aan een gebruiker koppelen en een wachtwoord wijzigen.
Arien Dank je voor je hulp

Helaas kan ik geen database gebruiken en het is puur thuis gebruik hangt ook niet aan het net.

Reageren