login  Naam:   Wachtwoord: 
Registreer je!
 Forum

switch probleem

Offline Ultimatum - 11/01/2007 00:47
Avatar van UltimatumPHP expert Ik heb 2 switches, switch($_GET['pagina']), waar de pagina's in staat zoals nieuws/verslagen/teams etc.. en een switch $_GET['act'] met de acties zoals toevoegen/verwijderen/keuren etc..

Maar nu heb ik ook een functie die kijkt of de pagina in de database staat en de actie ook en zoniet moet er een error komen. Had dat nu bij de default: gezet maar doet niet helemaal en hoe kan ik mijn functie aan een case toevoegen

Dit is de 2 switches:

  1. <?php
  2. switch($_GET['pagina'])
  3. {
  4. //Toevoegen/wijzigen/verwijderen/keuren/bekijken van nieuws
  5. case 'nieuws':
  6. switch($_GET['act'])
  7. {
  8. //toevoegen van nieuws
  9. case 'toevoegen':
  10.  
  11. break;
  12.  
  13. //wijzigen van nieuws
  14. case 'wijzigen':
  15.  
  16. break;
  17.  
  18. //verwijderen van nieuws
  19. case 'verwijderen':
  20.  
  21. break;
  22.  
  23. //keuren van nieuws
  24. case 'keuren':
  25.  
  26. break;
  27.  
  28. //bekijken van nieuws
  29. case 'bekijken':
  30.  
  31. break;
  32.  
  33. //Access denied voor 1 van de opties van nieuws
  34. default:
  35. ?>
  36. <div class='fout'>Geen toegang</div>
  37. <div class='tekst'>
  38. Om deze pagina te bekijken moet u ingelogd zijn of u heeft niet de juiste rechten om deze pagina te bekijken.<br /><br />
  39. Ga naar de <a href='<?= $config['url'] ?>/login/inloggen'>login pagina</a> als u een account heeft of
  40. ga naar de <a href='<?= $config['url'] ?>/login/registreren'>registreer pagina</a> om een account aan te maken.
  41. </div>
  42.  
  43. <br /><hr /><br />
  44. <?php
  45. }
  46. break;
  47. ?>


en dit is de functie
  1. <?php
  2. //userid, de pagina, de actie, db class (don't ask :p)
  3. rechten($_COOKIE['id'], 'verslagen', 'verwijderen', $db)
  4. ?>


en dan als het true oplevert heeft de persoon toegang en anders niet. Dus hoe kan ik dat bij mijn case neerzetten?

met een if statement weet ik het wel
  1. <?php
  2. //voorbeeld voro de duidelijkheid
  3. if(isset($_GET['act']) && $_GET['act'] == 'verwijderen' && (rechten($_COOKIE['id'], 'verslagen', 'verwijderen', $db) == TRUE))
  4. ?>


Heeft iemand enig idee?

4 antwoorden

Gesponsorde links
Offline Chupskie - 11/01/2007 01:11
Avatar van Chupskie MySQL beginner Moet je default: ook niet afsluiten, met een break; ?
Offline Ultimatum - 11/01/2007 07:57
Avatar van Ultimatum PHP expert Owja, klopt wel. Ik heb het niet overal toegevoed. Weet iemand ook iets om die functie aan een case toe te voegen?
Offline Kr4nKz1n - 11/01/2007 08:59
Avatar van Kr4nKz1n Onbekend Probeer eens iets met

  1. <?php
  2. case (isset($_GET['act']) && $_GET['act'] == 'verwijderen' && rechten($_COOKIE['id'], 'verslagen', 'verwijderen', $db)):


Als een functie 2 waardes terug kan geven, false en true kun je het gewoon controleren zoals hierboven bij rechten.
Offline Ultimatum - 11/01/2007 09:34 (laatste wijziging 11/01/2007 10:25)
Avatar van Ultimatum PHP expert Hmm.. maak jij van die switch nu een case? En er is geen case verwijderen etc.. meer in jou voorbeeld?

Oke, was een beetje voor de hand liggend , maar dit werkt:
  1. <?php
  2. case ('wijzigen' && rechten($_COOKIE['id'], 'teams', 'wijzigen', $db)):
  3. ?>


Was me eigelijk met logisch nadenken zelf ook wel gelukt 

Bedankt...

Edit: probleem blijft.. Want hoe ik het nu heb gedaan pakt hij bij elke volgende case van 1 switch de eerste case, dus bij case verwijderen pakt hij case toevoegen etc.. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.352s