Gå til innhold

PHP - Lage websider med index.php?id=5


Anbefalte innlegg

Videoannonse
Annonse

Nå er det lenge siden jeg har drevet med PHP. Men det du vil, er å hente ut variablene etter "?" feks. id. Dette er en vanlig variabel med innhold "1245". Nå har jeg ikke manualen foran meg, men se på de predefinerte variablene (med store bokstaver) (predefined variables). Tror den hentes med $HTTP_POST_VARS eller lignende. Anbefaler deg å laste ned php manualen i chm format på php.net.

 

Du må videre bestemme hva du skal gjøre med variabelen.

Du kan feks si if (id=1245) print "hei fra id 1245".

 

Men dette er som Mr.Ueland lite hensiktsmessig. Du kan også skrive inn index.php?page=hovedside, for å hente frem hovedsiden osv.

Lenke til kommentar

Det er ganske enkelt. Linken lager du slik

 

 
<a href="index.php?id=noe">

 

Dermed skriver du litt php over html - en

<?php 

if( isset($_GET['id']) ) {

$id = $_GET['id'];

} else {

$id = "";

}

?>

Så skriver du denne koden hvor du vil siden skal komme opp :

<?php

if( $id == "noe" ) {

include("et_eller_annet.php");

}

 

Sjønner :thumbup:

Endret av rogbiff
Lenke til kommentar

Hmm, hvordan kan folk få php scriptet til å inkludere noe annet enn det som er spesifisert i php-scriptet?

 

Altså hvis du har noe sånt som dette, kan jeg forstå det.

include ($side);

 

Og bruker url som index.php?side=filenjegvilinkludere.php

 

Men hvis du har

if ($_GET["side"] == "filenjegvilinkludere") {
 include ( "filenjegvilinkludere.php" )
   }

 

Hvordan kan folk få den til å inkludere andre filer enn "filenjegvilinkludere.php"?

Endret av Blodhemn
Lenke til kommentar

Hvis du ikke sjekker hva folk bruker som input i ?id= Så kan de strengt tatt åpne hva som helst.

I den siste kodesnutten din så kjører jo du en validering på om det faktisk er sidenjegvilinkludere, men hvis man ikke gjør det, og enda bedre - lar vedkommende skrive inn extention selv så er man ute å kjøre

Lenke til kommentar
  • 1 måned senere...

Jeg bruker denne:

<?
$side = $_GET['side'];
if (!file_exists($side . '.php')) {
 $side = 'forside';
}
if (empty($side)) {
 $side = 'forside';
}
$siden = "./$side.php";
include($siden);
?>

Linken blir da index.php?side=navnet-på-siden-uten-dot-php

Hvis du linker til en side som ikke eksisterer så spretter man tilbake til forside.php det gjør man også hvis $side variablen er tom.

Lenke til kommentar
(Vet posten er litt gammel, men jeg bruker heller denne en å lage en ny en om akkurat det samme)

 

Var inne på http://tutorials.dotgeek.org/tutorial.php?action=view&id=10 og leste litt...

Hva er vitsen med .inc.php, er det ikke bedre med bare .php?

Er "index.php?id=Main" det samme som "main.php" bare at med id=Main er siden dynamisk?

1: Hvis PHP-parseren på webserveren svikter, vises PHP-filer som plain text, mens .inc.php ikke vil vises (tror jeg).

 

2: I en vanlig side brukes det et design som er likt for (nesten) hele siden. Istedenfor å måtte kopiere koden for design/struktur for hver ekstra side man lager, kan man bare inkludere en fil som kun inneholder innhold. Det gjør det også mye lettere å bytte design på et senere tidspunkt.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...