Toon posts:

[PHP] verschillende prob met $_GET

Pagina: 1
Acties:
  • 30 views sinds 30-01-2008

Verwijderd

Topicstarter
Ben ik weer...

Ik ben nog steeds een site aan het maken die in 3 talen moet verschijnen. Dit wou ik doen met behulp van $_GET.

Als mensen naar de site gaan zal worden gekeken of er $_GET variabelen worden meegegeven, zoniet dan is de taal standaard nederlands. Ook wordt met behulp van $_GET variabelen bepaald welke pagina wordt weergegeven.
Dus dan wordt het zoiets als "index.php?lang=nederlands&p=biografie".
Als dan de taal en pagina zijn vastgesteld wordt er een link gevormd die dan als iframe wordt geladen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (isset($_GET['lang'])) {
   if (isset($_GET['p'])) {
      $lang_array = array('nederlands','english','papiamentu');
      if (!in_array($_GET['lang'], $lang_array)) $lang = 'nederlands'; else $lang = $_GET['lang'];
      $pag_array = array('home','biografie','contact');
      if (!in_array($_GET['p'], $pag_array)) $pagina = 'body'; else $pagina = $_GET['p'];
   }
   else {
      $pagina = 'home';
   }
}
else {
   $lang = 'nederlands';
   $pagina = 'home';
}
$link = $pagina.'.php?lang='.$lang.'&p='.$pagina;


Dit heeft allemaal goed gewerkt, tot op een zeker moment het niet meer werkte |:( Ik denk dat ik iets veranderd heb waardoor het niet meer werkt (moet wel :P).

Het begin, dus als gewoon 'home' geladen wordt, werkt het goed, maar als je dan naar een andere pagina gaat blijft $lang nederlands |:(

Hier staat het: http://cubus99.freehosting123.com

[ Voor 12% gewijzigd door Verwijderd op 12-12-2004 20:47 ]


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:00
Ik vind je code niet erg overzichtelijk. Zo iets zo ik er van maken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
##DATA
//languages
$lang_array = array('nederlands','english','papiamentu');
//pages
$pag_array = array('home','biografie','contact');

##LANGUAGE
$lang = (isset($_GET['lang']) && in_array($_GET['lang'], $lang_array)) ? $_GET['lang'] : 'nederlands';

##PAGE
$pagina = (isset($_GET['p']) && in_array($_GET['p'], $pag_array)) ? $_GET['p'] : 'home';

$link = $pagina.'.php?lang='.$lang.'&p='.$pagina;


Met als belangrijkste verschil dat de twee zaken die los van elkaar staan (taal en pagina) ook los van elkaar worden bepaald ipv een lus in een lus. Op je pagina werkt het trouwens prima hoor. De link wordt goed opgebouwd. Blijkbaar gaat er iets mis in contact.php of body.php.

Regeren is vooruitschuiven


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Bij de else op regel 8 mist het zetten van de goeie taal. Verder is je code nogal smerig, ik was een minuut bezig met het ontcijferen van welke } er bij welke { hoorde. Kun je de code even inspringen? Dan krijg je waarschijnlijk ook meer replies.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op zondag 12 december 2004 @ 20:42:
Kun je de code even inspringen?
Done :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Er wordt in je code alleen iets met $_GET['lang'] gedaan als $_GET['p'] ook bestaat. Zoals T-MOB dus ook al zei (en voordoet), moet je die twee condities uit elkaar halen. Dingen die niet bij elkaar horen moet je niet nesten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
damn het werkt nog steeds niet

* knip (wil niet dat nog meer mensen mijn fout zien :> ) knip *

waarom komt er nou niet wat er hoort te staan als je talen gaat invullen |:(

[ Voor 39% gewijzigd door Verwijderd op 13-12-2004 17:33 ]


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21:16
Vergelijken van strings, en consorten doe je met '==' en niet met '='. Dat laatste is juist een toekennig, waardoor de variabele wordt gevuld.

Verwijderd

Topicstarter
Sybr_E-N schreef op maandag 13 december 2004 @ 17:31:
Vergelijken van strings, en consorten doe je met '==' en niet met '='. Dat laatste is juist een toekennig, waardoor de variabele wordt gevuld.
pfff hoe kan ik zo stom zijn :X |:( 8)7 ;(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:45

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 gaat het topic maar sluiten; discussies over deze zaken behoren tot de basis van PHP :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.