Avatar billede flappen Nybegynder
16. november 2005 - 12:11 Der er 9 kommentarer og
1 løsning

switch, burde den ikke bytte koden ud?

Jeg har et spørgsmål angående den her stump kode:

<?
print'
<a href=index.php?page=ja>ja</a>
<a href=index.php?page=nej>nej</a>
';
switch ($page) {
case nej:
print'
svaret er nej
';
break;
case ja:
print'
svaret er ja
';
break;
default:
print '
dette er en test
';
}
?>

filen hedder index.php!
Burde denne stump kode ikke ændre "dette er en test" til enten "ja" eller "nej" alt efter hvilket link man trykker på!?
Det skal ikke bruges til noget specielt, blev bare nsygerrig og ville finde ud af hvordan det virkede. Kan det evt være noget med min server at gøre hvis den ikke vil "switche" teksten?
Avatar billede jaw Nybegynder
16. november 2005 - 12:13 #1
For det første bør du nok bruge $_GET['page']. For det andet, bør du også bruge case "ja": og case "nej":
Avatar billede hmortensen Nybegynder
16. november 2005 - 12:13 #2
case "nej":
osv...
Avatar billede flappen Nybegynder
16. november 2005 - 12:17 #3
Tak for det... en af jer smid lige et svar :)
Avatar billede showsource Seniormester
16. november 2005 - 12:17 #4
Som jaw og hmortensen:

<?php
print'
<a href=index.php?page=ja>ja</a>
<a href=index.php?page=nej>nej</a>
';

// Definer $page
$page = (isset($_GET["page"]) ? $_GET["page"] : "");


switch ($page) {
case "nej":
print'
svaret er nej
';
break;
case "ja":
print'
svaret er ja
';
break;
default:
print '
dette er en test
';
}
?>
Avatar billede flappen Nybegynder
16. november 2005 - 12:20 #5
Er det nødvendigt at definere $page? og hvad kan der ske ved ikke at gøre det?
Avatar billede jaw Nybegynder
16. november 2005 - 12:22 #6
Det umiddelbare svar er nej, det er ikke nødvendigt. Men så forudsætter du, at register_globals er off på serveren. Dvs. at ?page=xxx vil kunne bruges som $page. Hvis register_globals derimod er on, vil du aldrig få nogen data fra adresselinien på den måde, men skal så bruge $_GET['page']. $_GET['page'] vil dog virke i begge tilfælde, og er derfor sikret hvis en du en dag skulle komme på et webhotel hvor $page ikke vil virke.

Og et lille svar herfra :)
Avatar billede hmortensen Nybegynder
16. november 2005 - 12:24 #7
Og det er så lige omvendt jaw ;)
Avatar billede jaw Nybegynder
16. november 2005 - 12:26 #8
Argh, jeg får altid byttet om på dem, tak for rettelsen :)

Flappen -> Du skal så som hmortensen siger lige bytte om på on og off i min tekst - men pointen er der da :)
Avatar billede showsource Seniormester
16. november 2005 - 12:27 #9
Bortset fra det er omvendt :O), så er det også et spm. om hvad error_reporting er sat til.
Hvis alle fejl vises, skal der lige bruges isset()
Altså, switch($_GET["page"]) ville så fejle, hvis den ikke er sat
Avatar billede flappen Nybegynder
16. november 2005 - 12:32 #10
tak for det :) nu forstår jeg det hele meget bedre :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester