login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cases

Offline Ultimatum - 08/08/2006 21:16 (laatste wijziging 08/08/2006 21:18)
Avatar van UltimatumPHP expert Het volgende probleem, op mijn admin panel pagina, heb ik een totaal van 20 links welke er zo uit zien:

  1. <div class='l'><b>News</b></div>
  2. <div class='r'>
  3. <a href='?page=admin/admin&amp;p=news&amp;act=add'>Add News</a> |
  4. <a href='?page=admin/admin&amp;p=news&amp;act=edit'>Edit News</a>
  5. </div>


Ik had het eerst altijd met een if/else statement(s) gedaan wat perfect gaat, maar ik wil het nu met switches proberen wat op het begin goed gaat totdat ik bij de cases aankom want hoe moet ik verder

  1. <?php
  2. switch($_GET['p'])
  3. {
  4. }
  5. ?>


Het bovenstaande gaat nog, maar als ik bijvoorbeeld aan de hand van de voorbeeld links wil doen moet ik 2 cases news hebben en wat meot ik dan verder in die cases zetten, want in elke case moet dan weer een afzonderlijke switch van $_GET['act'] komen.

Ben ik nu heel moeilijk aan het doen of snap ik het gewoon niet 

Kan iemand mij een beginnetje voorschotelen door bovenstaande links voor te doen. (Zodat ik het ook begrijp en de rest kan doen )

Bijvoorbaat dan 

Edit: met if/else statement zou de code zo worden
  1. <?php
  2. if($_GET['p'] == 'news' && $_GET['act'] == 'edit')
  3. {
  4. //iets
  5. }
  6. ?>


Dit bovenstaande even voor de duidelijkheid 

9 antwoorden

Gesponsorde links
Offline Tuinstoel - 08/08/2006 21:24
Avatar van Tuinstoel PHP expert Euhm kun je niet gewoon deze methode hanteren?
Offline Ultimatum - 08/08/2006 21:26
Avatar van Ultimatum PHP expert ik begrijp je niet helemaal, want dat is nog steeds niet een antwoord op mijn vraag of ik snap je antwoord niet
Offline Button - 08/08/2006 22:03 (laatste wijziging 08/08/2006 22:07)
Avatar van Button PHP ver gevorderde ik ga het uitleggen hoe ik het doe ahv deze link:
  1. <a href="?pagina=nieuws/nieuws&amp;nieuws=add">Nieuwstoevoegen</a>

>>>laten we beginnen>>>
ik heb een hoofdmap (met index.php en bv.paginas_inc.php) met alle submappen (loginsysteem, nieuwssysteem,...)


  1. -hoofdmap
  2. -loginsysteemmap
  3. -nieuwssysteemap


in de paginas_inc.php die in de hoofdmap staat, staat dit:
  1. <?php
  2. switch($_GET['pagina']) {
  3.  
  4. case "login/login":
  5. include("login_paginasinc.php");//hier heb ik het sewwens over.
  6. break;
  7.  
  8. case "nieuws/nieuws":
  9. include("nieuws_paginasinc.php");//hier heb ik het sewwens over.
  10. break;
  11.  
  12. //en zo kunnen we verder gaan
  13. }
  14. ?>

die login_paginasinc.php en nieuws_paginasinc.php staan elk in hun eigen map dus login_paginasinc.php in loginsysteemmap en nieuws_paginasinc.php in nieuwssysteemmap.
wat staat er nu bv. in zo nieuws_paginasinc.php?
wel weer een switch zoals dit:
  1. <?php
  2. switch($_GET['nieuws']) {//let vooral op de getwaarde die hij nu ophaalt! die van nieuws.
  3.  
  4. case "add":
  5. include("nieuws_add.php");//hier heb ik het sewwens over.
  6. break;
  7.  
  8. case "delete":
  9. include("nieuws_add.php");//hier heb ik het sewwens over.
  10. break;
  11.  
  12. //en zo kunnen we verder gaan.
  13.  
  14. }
  15. ?>


Ik heb het niet ahv jouw link uitgelegd, maar ik hoop dat je dit ook snapt.
Dit is volgens dezelfde methode die jij wil gebruiken.
Offline Ultimatum - 08/08/2006 22:29
Avatar van Ultimatum PHP expert ok, maar als ik alles op 1 pagina wil houden kan ik dus niet includen met de eerste switch die je voordoet, hou ga ik het dan bereiken dat hij dan op dezelfde pagina pakt, ook kan ik dan voor elk 'module' een aparte switch gaan aanmaken.

Ik denk dat ik weer overstap naar me if/else statements omdat ik dacht dat het met switches makkelijker ging

nog bedankt voor je uitleg btw 
Offline Xtent - 08/08/2006 23:10 (laatste wijziging 08/08/2006 23:11)
Avatar van Xtent Onbekend Misschien op zo'n manier?

  1. <?php
  2. switch($_GET['p']) {
  3. case 'news':
  4. switch($_GET['act']) {
  5. case 'add':
  6. // Add dingetjes
  7. break;
  8. case 'edit':
  9. // Edit dingetjes
  10. break;
  11. }
  12. break;
  13. case 'nogiets':
  14. // Hier is dus weer wat anders
  15. break;
  16. }
  17. ?>


In ieder geval als ik je goed begrijp.
Offline Wim - 08/08/2006 23:47
Avatar van Wim Crew algemeen oh btw; vergeet geen controle 

  1. <?php
  2. $admin = true;
  3. //switch...
  4. ?>


je files:
  1. <?php
  2. if(!isset($_SESSION['admin']))
  3. die ('Hacking attemp detected!');
  4.  
  5. //pagina
  6. ?>
Offline Ultimatum - 09/08/2006 00:04
Avatar van Ultimatum PHP expert Hmm verkeerd topic :o

Dat is de vraag toch niet? En ik heb al beveiliging alhoewel ik toch niet zeker weet of het veilig is, maar dat is de vraag niet 
Offline haytjes - 09/08/2006 00:55 (laatste wijziging 09/08/2006 01:28)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
een switch is wel sneller dan een if().
Dus misschien wel interessant om het om te zetten:

  1. <?php
  2. switch($_GET['p'])
  3. {
  4. case "news":
  5. switch($_GET['act'])
  6. {
  7. case "add":
  8. //do add stuff
  9. break;
  10. case "edit":
  11. //do edit stuff
  12. break;
  13. case "delete":
  14. //do delete stuff
  15. break;
  16. default:
  17. die("You are a bastard. You tried to do something that don't exist.");
  18. }
  19. break;
  20. case "forum":
  21. // other things to do
  22. break;
  23. case "contact":
  24. // other things to do
  25. break;
  26. default:
  27. die("You are a bastard. You tried to look at a page that don't exist.");
  28. }
  29. ?>

Offline Ultimatum - 09/08/2006 00:58
Avatar van Ultimatum PHP expert Bedankt Haytjes, precies wat ik zocht 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.305s