Avatar billede itmouse Nybegynder
03. januar 2008 - 10:02 Der er 14 kommentarer og
1 løsning

Forsiden skal vises ved id=0

Jeg har en forside, som bliver kaldt med id=1, men jeg vil også gerne have den samme forside kaldt når id=0, altså lige så snart man kommer ind på siden.
Hvordan gøres det?

Takker
Avatar billede w13 Novice
03. januar 2008 - 10:09 #1
Kan du ikke bare redirecte til id=1 eller bare skrive i koden: "hvis id=0 så id=1"?
Dvs. lægge id ned i en variable, så du kan arbejde med det.
Avatar billede fant0mas Nybegynder
03. januar 2008 - 10:34 #2
<a href="side.php?id=1">side 1</a>
<a href="side.php?id=2">side 2</a>
<?
switch($_GET['id']) {
case 1:
include_once 'sider/side1.php';
break;
case 2:
include_once 'sider/side2.php';
break;
default:
include_once 'sider/default.php';
break;
}
?>

Så vil den gå til din default hvis id ikke findes i din case.
Avatar billede itmouse Nybegynder
03. januar 2008 - 14:20 #3
Jeg kunne godt bruge lidt mere hjælp. Kan man ikke gøre noget lign:
(if $_GET[id] == "0" then $_GET[id] == "1") - på en eller anden måde?
Avatar billede fant0mas Nybegynder
03. januar 2008 - 14:42 #4
Joo, men det andet er meget smartere.

if($_GET[id] == "0" || $_GET[id] == "1"){
vis forside
}
Avatar billede smitten1 Nybegynder
03. januar 2008 - 15:14 #5
case 0:
case 1:
  include_once 'sider/side1.php';


men jeg ville nok bruge default-delen..

switch($_GET['id']) {
  case 2:
    include_once 'sider/side2.php';
    break;
  case 3:
    include_once 'sider/side3.php';
    break;
  default:
    include_once 'sider/side1.php';
}

hvis id er alt andet end 2 eller 3, så inkluderes side1
Avatar billede itmouse Nybegynder
03. januar 2008 - 17:11 #6
Er det ikke usmart, at hvis id'et er alt andet end 2 og 3, så viser den side 1?
Jeg mener, hvis jeg nu har mange sider, så skal jeg skrive dem ind som cases, for ikke at linke over til side 1 hele tiden..

Kan du følge mig..
Er det rigtigt forstået? ;P
Avatar billede itmouse Nybegynder
03. januar 2008 - 17:30 #7
Jeg har måske også formuleret mig lidt forkert. Jeg mener selvfølgelig, at når id=*igenting* (altså blank) www.domæne.dk og ikke www.domæne.dk/?id=0
Avatar billede fant0mas Nybegynder
03. januar 2008 - 17:31 #8
Ja så skal de selvfølgelig tilføjes til din case.
Ellers skal du lave noget ala:

<?
if($_GET[id] == "0" || $_GET[id] == "1"){
include_once 'side1.php';
}else{
include_once 'side'.$_GET[id].'.php';
}
?>
Avatar billede fant0mas Nybegynder
03. januar 2008 - 17:35 #9
Ahhh, så er det:
<?
if($_GET[id] == "" || $_GET[id] == "1"){
    include_once 'side1.php';
}else{
    $filename = 'side'.$_GET[id].'.php';
    if (file_exists($filename)) {
        include_once 'side'.$_GET[id].'.php';
    }else{
        include_once 'side1.php';
    }
}
?>
Avatar billede w13 Novice
03. januar 2008 - 17:41 #10
Men hvis siderne ligger i databasen og ikke som reelle sider, skal det se lidt anderledes ud.
Avatar billede itmouse Nybegynder
03. januar 2008 - 17:43 #11
Tak for de hurtige svar.
Du skriver include_once 'side1.php'; - hvilken side skal side1.php være, det er jo egentlig et ?id tag, er det ikke?
Min forside www.domæne.dk er selvfølgelig index.php

Kunne du evt. i mit tilfælde sætte mine værdier ind..
Forside uden id tag er: index.php
Forside med id tag er: ?id=1
Avatar billede fant0mas Nybegynder
03. januar 2008 - 18:15 #12
Jamen jeg ved jo ikke hvad det er. Først skriver du det er reelle sider, altså side1, side2 osv. Nu lyder det som om du snakker om index.php?id=1, 2 osv. Altså bare en reference til en kodestump. Er det sådan, så er case vejen, istedet for at inkludere sider, kan du så bare udskrive din html der, eller måske gemme det i en lidt pænere funktion.
Avatar billede dkfire Nybegynder
03. januar 2008 - 18:28 #13
Måske ville det være en rigtig god ide at vise hvordan dine nuværende side ser ud mht. kode, og forklare lidt om hvordan din opbygning af dine sider er.
Ligger dine sider i databasen eller er det html/php filer som alle dine sider ligger som.
Avatar billede fant0mas Nybegynder
03. januar 2008 - 18:32 #14
Sådan:
<?
switch($_GET['id']) {
        case 2: to; break;
        case 3: tre; break;
        default: et; break;
    }
function et(){   
?>
Html her
<?
}
function to(){
?>
Html her
<?
}
function tre(){
?>
Html her
<?
}
?>

Men så skal der laves ny case og funktion til hver id. Der er ingen vej udenom. Men tit er det rarere for overskueligheden at arbejde i mange filer.
Avatar billede itmouse Nybegynder
04. januar 2008 - 17:08 #15
Jeg fik det til at virke. Brugte:

$id = $_GET[id];
if ($id == '') {
    $id = "1";
}

include_once('index'.$id.'.php');

Men tak for de gode råd, næste gang linker jeg lige til siden:)=
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