http://www.jesite.nl/index.php?cat=home
Wei wete hoe je zo'n link moet maken?
die geeft ei als fuot aan:S
Haal de laatste } weg en probeer het nog eens , anders moet je even de haakjes proberen te volgen waar ze open gaan en wanneer ze sluiten.
er is hiervoor weer een tutorial 'overzichtelijk programmeren'
Code (php)
Zoiets moet werken :)
kun je hier beter uitleg over geven?
Quote:
Haal de laatste } weg en probeer het nog eens , anders moet je even de haakjes proberen te volgen waar ze open gaan en wanneer ze sluiten.
nee hetw erkt niet dan komt er te staan on line 52 hier moet de fout inzitten:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
switch($_GET[cat]) # Wil dus zeggen dat hij gaat kijken welke waarde $_GET[cat] heeft
# Dan komt ie dit tegen:
case 'home':
print('in home');
break;
# Als $_GET[cat] de waarde home heeft print ie "in home" en stopt switch anders gaat hij ze allemaal af
default:
print('naar home');
break;
# Als $_GET[cat] een waarde heeft die er niet in voorkomt wordt de default waarde gebruikt
?>
switch($_GET[cat]) # Wil dus zeggen dat hij gaat kijken welke waarde $_GET[cat] heeft
# Dan komt ie dit tegen:
case 'home':
print('in home');
break;
# Als $_GET[cat] de waarde home heeft print ie "in home" en stopt switch anders gaat hij ze allemaal af
default:
print('naar home');
break;
# Als $_GET[cat] een waarde heeft die er niet in voorkomt wordt de default waarde gebruikt
?>
Zo wel duidelijk?
http://nl.php.net/switch
Maar omdat ook ik in het begin niks snapte van php.net :P...
met switch, wissel je tussen variabele waarden. JE switcht in dit geval met de var $_GET['cat'] (Een via het adres meegegeven waarde, bijv file.php?cat=downloads. Nu weet php dat we tussne die var gaan switchen. Moetne we wel even de mogelijke waarde geven
case 'downloads':
// code
break;
Zo doe je dat. "case" (in het geval dat) de waarde van $_GET['cat'] "downloads" is, dan doe het onderstaande. Ik kom er zo op wat je dar kunt neerzetten.
Na die neergezette code komt er een break;. Om aan te geven dat de pagina van "in het geval van "downloads"" stopt.
Zo gaat dat even door, en aarna komt "default"
Als je voor $_GET['cat'] een waarde invult die je niet hebt definieerd (met case ''), pakt hij de default page.
Ok dan nu, wat kun je voor // code invullen. Nou, meestal is dat een include (include('downlads.php');) bijv.
Nu maak ik maar eens een eind aan dit bericht :P. Lees ff die pagina die ik je gaf door.
zie switch statement op php.net: Maar omdat ook ik in het begin niks snapte van php.net :P...
met switch, wissel je tussen variabele waarden. JE switcht in dit geval met de var $_GET['cat'] (Een via het adres meegegeven waarde, bijv file.php?cat=downloads. Nu weet php dat we tussne die var gaan switchen. Moetne we wel even de mogelijke waarde geven
case 'downloads':
// code
break;
Zo doe je dat. "case" (in het geval dat) de waarde van $_GET['cat'] "downloads" is, dan doe het onderstaande. Ik kom er zo op wat je dar kunt neerzetten.
Na die neergezette code komt er een break;. Om aan te geven dat de pagina van "in het geval van "downloads"" stopt.
Zo gaat dat even door, en aarna komt "default"
Als je voor $_GET['cat'] een waarde invult die je niet hebt definieerd (met case ''), pakt hij de default page.
Ok dan nu, wat kun je voor // code invullen. Nou, meestal is dat een include (include('downlads.php');) bijv.
Nu maak ik maar eens een eind aan dit bericht :P. Lees ff die pagina die ik je gaf door.
@Mitch: Niet echt netjes om $_GET[cat] te gebruiken ;). Het is geen getal, maar een tekstwaarde. Altijd ' of " omheen :). Ja ik weet dat het "dan ook werkt" maar zo hoort het niet :)
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
if(isset($_GET['page'])){
if(preg_match('/[a-z_-0-9]/i',$_GET['page']){
if(file_exists($_GET['page'].'.php')){
require($_GET['page'].'.php');
}
}
}
?>
if(isset($_GET['page'])){
if(preg_match('/[a-z_-0-9]/i',$_GET['page']){
if(file_exists($_GET['page'].'.php')){
require($_GET['page'].'.php');
}
}
}
?>
Edit:
paar typfoutjes en iets extra's erbij :P
Gewijzigd op 14/03/2004 20:11:00 door Rick
$num = 1 wordt hetzelde als $num = "1"
Waarom dan twee extra keertjes drukken?
Mogen de TS lkkr zelf doen :P
omdat het veel sneller is, ga een script met en zonder undefined variables maar eens timen
en een script waar je ' en ' wel gebruik en een script waar je ze niet gebruikt
dat scheelt echt heeeeeeeeel veel
voor de kleine homepages maakt het niet uit nee, maar voor grote sites waar honderduizenden bezoekers per dag komen scheelt het je zo 50% aan cpu load en dus een extra server op een gegeven moment
Verder, ik geloof dat het ook een notice geeft, als je een constante ipv een string gebruikt.
echo hallo;
geeft wel hallo weer, maar ook een notice.
echo M_PI;
wat zou dat weergeven? Niet M_PI maar 3.14159265358979323 ofzo.
What's ur point? Nou, een echte programmeur programmeert goed ;).
p.s. Rick, je code, waaorm gebruik je preg_match. Je check nu toch of het alleen alfabetisch is. Sinds wanneer mogen er geen -, _ en 1-9 worden gebruikt :P
de _ deed ie namelijk wel, maar ik heb nooit cijfers of - in m'n links staan dus die had ik eruit gelaten
maar op jouw verzoek eventjes aangepast ;)