login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Session

Offline roy - 04/10/2006 13:58
Avatar van royPHP gevorderde Beste sitemasters,

Ik heb het volgende stuk code geschreven:
  1. <?PHP
  2. if(isset($_GET['B']) && ctype_digit($_GET['B']) && $_GET['B'] > 0 && $_GET['B'] < 7)
  3. {
  4. $_SESSION['B'] = $_GET['B'];
  5. echo $_SESSION['B'];
  6. } else
  7. {
  8. $_SESSION['B'] = 1;
  9. $i = "pag1";
  10. }
  11.  
  12. ?>


Hij mag hier alleen inkomen als $_SESSION['B'] leeg is/niet gezet is.
Hoe kan ik dit probleem oplossen?

Groetjes,
Roy

11 antwoorden

Gesponsorde links
Offline Rens - 04/10/2006 14:08
Avatar van Rens Gouden medaille

Crew algemeen
Alles wat je nodig hebt, staat al in je code...
Offline roy - 04/10/2006 14:13 (laatste wijziging 04/10/2006 14:13)
Avatar van roy PHP gevorderde dat dacht ik ook, maar als ik een pagina van het submenu aanroep dan vergeet hij welke waarde in SESSION B zat. (hij voert dan de ELSE uit). Link ziet er zo uit: index.php?i=pag1 (waarde B zit er niet in, omdat de SESSIE al geset is).

OF:

moet je de B-waarde altijd meegeven?
Als dat laatste zo is, wat is dan het nut van sessies?
Offline Rens - 04/10/2006 14:14
Avatar van Rens Gouden medaille

Crew algemeen
Je moet een functie gebruiken die ook in de code die je nu hebt gebruikt.
PHP.net: isset
Als je de volgende keer niet weet wat een stukje code doet, vraag het dan ipv het zomaar te kopieren/plakken, zo leer je nog niks...
Offline Simon - 04/10/2006 14:15 (laatste wijziging 04/10/2006 14:15)
Avatar van Simon PHP expert
  1. <?php
  2. if(isset($_GET['B'])
  3. && ctype_digit($_GET['B'])
  4. && $_GET['B'] > 0
  5. && $_GET['B'] < 7
  6. && $_SESSION['B'] == 1)
  7. {
  8. ...
  9. }
  10. ?>
Offline roy - 04/10/2006 14:28
Avatar van roy PHP gevorderde Het werkt niet...

Zie volgende link: http://www.rdek...php?i=pag7

Klik op de tweede knop bovenaan, klik dan op een van de (tekst knoppen) van het submenu. En zie hij voert de else uit/ hij gaat terug naar de begin pagina...
Offline Rens - 04/10/2006 14:29
Avatar van Rens Gouden medaille

Crew algemeen
*zucht*
En hoe is je code nu?
Kan het nog steeds niet ruiken...
Offline roy - 04/10/2006 14:34
Avatar van roy PHP gevorderde index.php (deze include Topmenu.php en Submenu.php
  1. <?PHP
  2.  
  3. if(isset($_GET['B']) && ctype_digit($_GET['B']) && $_GET['B'] > 0 && $_GET['B'] < 7)
  4. {
  5. $_SESSION['B'] = $_GET['B'];
  6. echo $_SESSION['B'];
  7. } else
  8. {
  9. $_SESSION['B'] = 1;
  10. $i = "pag1";
  11.  
  12. }
  13. ?>


Topmenu.php
Alleen hier worden de B-waarden meegegeven.

Submenu.php
  1. <?PHP
  2. if($_SESSION['B'] == 1) {
  3. echo "<a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag1\">Welkom</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag2\">Totstandkoming</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag3\">Specificaties</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag4\">Sitemap</a>";
  4. } elseif($_SESSION['B'] == 2){
  5. echo "<a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag5&B=2\">Cijfers</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag6\">CV</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag7\">Studieschema</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag8\">Projecten</a> | <a style=\"text-decoration: none; color: #CCCCCC;\" href=\"index.php?i=pag9\">Lezingen_Trainingen</a>";
  6. }?>
Offline ikkedikke - 04/10/2006 15:10
Avatar van ikkedikke PHP expert heb je ergens session_start(); staan?
Offline roy - 04/10/2006 22:46 (laatste wijziging 05/10/2006 17:25)
Avatar van roy PHP gevorderde Gelukkig, het werkt nu bijna

zie code:
  1. <?PHP
  2. if($_SESSION['B'] != $_GET['B'] && isset($_GET['B'])) {
  3.  
  4. $_SESSION['B'] = $_GET['B'];
  5.  
  6. }
  7. elseif (($_SESSION['B'] == $_GET['B']))
  8. {
  9. $_SESSION["B"] = $_GET['B'];
  10. }
  11. ?>


Er ontbreekt nu nog 1 ding, er moet gecontroleert worden of $_SESSION['B'] en $_GET['B'] leeg zijn. Als deze allebij! leeg zijn dan moet er een bepaalde actie plaatsvinden.

Hoe ziet zo'n controle eruit?

GR. Roy
Offline GTW - 05/10/2006 17:31
Avatar van GTW Gouden medaille

PHP gevorderde
  1. <?
  2. if($_SESSION['b']==""$$$_GET['b']==""){
  3. //actie
  4. }
Offline Thomas - 06/10/2006 11:51
Avatar van Thomas Moderator Jemig... Schrijf dit soort dingen eens voor jezelf uit wat er in elk van de gevallen moet gebeuren en breng eens wat commentaar aan in je code - hier is geen touw aan vast te knopen.

Schrijf eerst eens achter elkaar op wat er in elk van de gevallen moet gebeuren, dan heb je een specificatie van wat er uiteindelijk geprogrammeerd moet worden...

@GTW: Controleer je oplossing
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.509s