PHP switch functie gebruikers (gebruikers niet ingelogd? pagina wordt niet weergeven)

Status
Niet open voor verdere reacties.

Kabeimanteka

Gebruiker
Lid geworden
25 mei 2014
Berichten
63
Hallo Allemaal :)

Ik heb het volgende probleem op dit moment:

norankfound.jpg


In mijn sessie haal ik de gegevens $username en $rank op. gegevens van $rank houden in dat deze opgehaald word van het database:

norankfound.jpg

Deze beslist dan welke case er opgeroepen wordt met het SWITCH functie van php.

Nummer 1 staat als normale gebruiker aangegeven
Nummer 2 staat als admin aangegeven

Nu heb ik ook nog dat ik klanten die nog niet ingelogd zijn het volgende pagina toch nog kunnen bekijken.

maar voor gebruikers die nog niet ingelogd zijn hebben nog geen Sessie variable $rank kan dan dus ook niet opgehaald worden.
hoe kan ik de switch functie hiermee combineren?




Het code:
PHP:
<div id="loggedinlayout" align="right">

		<?php 
			require('jemeppedatabasecon.php');
			session_start();
			//controleert of Sessie bestaat.
			if (isset($_SESSION['username'])){
				$username = $_SESSION['username'];
				$rank = $_SESSION['rank'];
				echo "<div><b>Ingelogd als: ".$username." </b>";
				echo "<a class='reserveerbutton' href='logout.php'>Logout</a></div>";
				
			}
			else{
				//3.2 When the user visits the page first time, simple login form will be displayed.
			}
		?>
		
</div>



<?php
switch ($rank){
	
	case "1":
	?>


		<div id="tablelayoutkamers">
			<table border="0" id="tablelayoutkamers2" width=98% class="tablelayout2">
				<form method="POST">
					<tr class="tablelayout1">
						<td><b><img class='kamerfoto' src='logowhite.png'/></b></td>
						<td><b>Kamernaam</b></td>
						<td><b>Kamernr</b></td>
						<td><b>Omschrijving</b></td>
						<td><b>Kamersoort</b></td>
						<td><b>Wc</b></td>
						<td><b>Douche</b></td>
						<td><b>Wastafel</b></td>
						<td width='100' class="collumlayout2"><b>Prijs per nacht</b></td>
						<td align="center" width='100'><img class='icons1' src='bekijk.png'/></td>
						<td align="center" width='150'><img class='icons1' src='reserveer.png'/></td>
					</tr>
					
					<?php
						require ('jemeppedatabasecon.php');
						$query = "SELECT * FROM kamer";
						//begint query
						$results = mysql_query($query);
					
						
						while($row = mysql_fetch_array($results)){
					?>
					
					<tr>
						<td><img class='kamerfoto' src='kamer.png'/></td>
						<td><?php echo $row['kamernaam']; ?></td>
						<td class="collumlayout2"><?php echo $row['idkamer']; ?></td>
						<td><?php echo $row['omschrijving']; ?></td>
						<td><?php echo $row['kamersoort']; ?></td>
						<td class="collumlayout2"><?php echo $row['wc']; ?></td>
						<td class="collumlayout2"><?php echo $row['douche']; ?></td>
						<td class="collumlayout2"><?php echo $row['wastafel']; ?></td>
						<td class="collumlayout2">€ <?php echo $row['prijs']; ?>,-</td>
						<td class="collumlayout2"> <a class="reserveerbutton" href = "bekijkkamer.php?idkamer=<?php echo $row['idkamer']; ?>">bekijk kamer</a></td>
						<td class="collumlayout2"> <a class="reserveerbutton" href = "reserveer.php?idkamer=<?php echo $row['idkamer']; ?>">Reserveer kamer</a></td>
						
					</tr>
					
					<?php 
						}
					?>
					
				</form>	
			</table>
		</div>
		
		
		<?php
		case "2":
		?>
		<b> Helleuw </b>
		
		<?php
		}
		?>
 
Laatst bewerkt door een moderator:
Best allemaal ik heb het probleem al opgelost door een IF en ELSE statement te gebruiken.
PHP:
<?php
if(empty($_SESSION['username'])){
(zelfde code laten zien dat wat ik bij als een gebruiker ingelogd is zien)
}
Else{
( de code die ik in mijn vraag heb gesteld )
}
?>

Opgelost :)! ( wel iets langer maar voor nu even een oplossing voor mij)

Als iemand een kortere manier weet. laat het alstublieft even weten

Alvast bedankt :)
 
Laatst bewerkt door een moderator:
PHP:
if ($_SESSION['rank']) == '1' || '2' {
          switch ($rank){
              
              case "1":

              case "2":
               }
          }
else {
          echo "Registreer om deze pagina te bezoeken."
}

Zo iets zal je kunnen doen,

Want als iedereen die pagina moet kijken is het niet logisch om in dit geval een switch case te gebruiken, dan kan je beter een switch case gebruiken om een aantal knoppen bijvoorbeeld zichtbaar te laten komen wanneer iemand een geregistreerde gebruiker is of een admin is.

Gr,
Patrick
 
Je kunt toch ook gewoon gebruik maken van de default van een switch?
PHP:
switch ($_SESSION['rank']) {
    case "1":
        // Rang 1
        break;
    case "2":
        // Rang 2
        break;
    default:
        // Geen rang 1 of 2
        break;
}

Maar het is sowieso verstandiger om gebruik te maken van een check of de gebruiker ingelogd is dus :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan