Avatar billede danic Nybegynder
06. august 2003 - 21:19 Der er 13 kommentarer og
1 løsning

Benytte variabler på links

Jeg påtænker at benytte variabler på alle mine links således at jeg kan spare kode, 3 af de fire include går igen på alle mine sider det eneste der ændres er $valgtlink

<?PHP
include($_SERVER["DOCUMENT_ROOT"] . "/top.php");
include($_SERVER["DOCUMENT_ROOT"] . "/membermenu.php");
include($_SERVER["DOCUMENT_ROOT"] . "$valgtlink");
include($_SERVER["DOCUMENT_ROOT"] . "/publicmenu.php");
?>

Her er mine links,

<a href="/1.php?valgtlink="1.php">1</a>
<a href="/2.php?valgtlink="2.php">2</a>
<a href="/3.php?valgtlink="3.php">3</a>

Er det her en god måde???
Avatar billede zkn Nybegynder
06. august 2003 - 21:33 #1
Det er ikke smart da folk kan åben alle filer på din server ved at gennemskue det meget simple sammenhæng,  kør dem igennem nogle if's eller en
switch ($_GET[valgt link]):
case '1': include("1.php"); break;
case '2': include("1.php"); break;
case '3': include("1.php"); break;
endswitch;

og så.
<a href="/1.php?valgtlink="1">1</a>
<a href="/2.php?valgtlink="2">2</a>
<a href="/3.php?valgtlink="3">3</a>
Avatar billede danic Nybegynder
06. august 2003 - 21:42 #2
Jeg er ikke meget for case, findes der en anden måde?
Avatar billede schaefner Juniormester
06. august 2003 - 21:44 #3
Avatar billede zkn Nybegynder
06. august 2003 - 21:45 #4
if($_GET[valgtlink] == "1"){include("1.php"); }
else if($_GET[valgtlink] == "2"){include("2.php"); }
else if($_GET[valgtlink] == "3"){include("3.php"); }

Er stort set det samme
Avatar billede schaefner Juniormester
06. august 2003 - 21:46 #5
logisk indrykning gør det hele mere overskueligt:

if ($_GET['valgtlink'] == 1) {
  include("1.php");
} else if ($_GET['valgtlink'] == 2) {
  include("2.php");
} else if ($_GET['valgtlink'] == 3) {
  include("3.php");
}
Avatar billede gonza.dk Nybegynder
06. august 2003 - 21:48 #6
og for at spare kode ved mange sider:

if ($valgtlink != NULL){
$valgtlink_file    = $valgtlink.'.php';
    if (file_exists($valgtlink_file)) {
        include($valgtlink_file);
    } else {
        include('fejl.php');
    }
}
else {
include('main.php');
}
Avatar billede danic Nybegynder
06. august 2003 - 22:14 #7
Det virker nu!

index.php ->
    include($_SERVER["DOCUMENT_ROOT"] . "/membership/top.php");
    include($_SERVER["DOCUMENT_ROOT"] . "/membership/membermenu.php");

        if ($valgtlink != NULL){
        $valgtlink_file    = $valgtlink.'.php';
        if (file_exists($valgtlink_file)) {
            include($valgtlink_file);
        } else {
            include('fejl.php');
        }
    }
    else {
    include('mainpage.php');
    }

   
    include($_SERVER["DOCUMENT_ROOT"] . "/membership/publicmenu.php");

og mine link ser sådan her ud ->

<a href="index.php?valgtlink=se_profil" class="menu">Se profil</a>


Er det sikkert nok nu?
Avatar billede gonza.dk Nybegynder
06. august 2003 - 22:19 #8
du skal nok lige have en $_GET['valgtlink'] ind

du kan jo også placere dine sider i en undermappe, og så lave:

$valgtlink_file    = $valgtlink.'.php';

til

$valgtlink_file    = 'undermappe/'.$valgtlink.'.php';
Avatar billede danic Nybegynder
06. august 2003 - 22:21 #9
Hvor skal $_GET['valgtlink'] ind?
Avatar billede gonza.dk Nybegynder
06. august 2003 - 22:22 #10
det er hvis din server kører i safemode, ellers kan du ikke trækker variablen ud af linket, kører fin server med savemode = off, ja så skal det ikke ind.
Avatar billede gonza.dk Nybegynder
06. august 2003 - 22:23 #11
altså...

$valgtlink =  $_GET['valgtlink'];
Avatar billede danic Nybegynder
06. august 2003 - 22:28 #12
Nu har jeg sat den ind i index.php

        $valgtlink =  $_GET['valgtlink'];
   
        if ($valgtlink != NULL){
        $valgtlink_file    = $valgtlink.'.php';
        if (file_exists($valgtlink_file)) {
            include($valgtlink_file);
        } else {
            include('fejl.php');
        }
    }
    else {
    include('mainpage.php');
    }

Hvad er dens funktion ( $valgtlink =  $_GET['valgtlink']; ) ?
Avatar billede gonza.dk Nybegynder
06. august 2003 - 22:31 #13
du har en url:

http://domain.dk/index.php?link=25

$_GET['link'] vil så hive indholdet af 'link' ned fra urlen, i dette tilfælde 25.

$var = $_GET['link'];

her sætter vi så det der står i 'link' i urlen ind i en variabel ved navn $var.
Avatar billede danic Nybegynder
06. august 2003 - 22:34 #14
Ok, det var fordi det virker måde med og uden $_GET['valgtlink']; på min side.
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