Gå til innhold

Lage "index.php?page=" side?


Anbefalte innlegg

Videoannonse
Annonse
Heisann, er det noen som hvet hvordan index.php?page= sider?

Takker for alle svar!

 

<?php

if($side == "hva_du_vil"){

include "sti_til/hva_du_vil.php";

}

else if($side == "hva_jeg_vil"){

include "sti_til/hva_jeg _vil.php";

}

else{

include "sti_til/hva_vi_vil.php";

}

?>

 

Lenke blir da: ?side=hva_du_vil

 

Dette gir riktignok ikke "index.php?page= sider" men er fullt ut brukbart.

 

Om "include" ikke er ønskelig å bruke så kan "switch" brukes i steden. Det kan da bli seende slik ut.

 

<?php

switch (@$_GET['bar']) {

case '1':

include 'hva_du_vil.php';

break;

case '2':

include 'hva_jeg_vil.php';

break;

default:

end;

}

?>

 

Lenke blir da: ?bar=1 (for hva_du_vil.php)

 

Håper dette var til hjelp. :)

 

Forøvrig er det meste dokumentert her: P H P

--

eTrollet

Lenke til kommentar
<?php

if($side == "hva_du_vil"){

include "sti_til/hva_du_vil.php";

}

else if($side == "hva_jeg_vil"){

include "sti_til/hva_jeg _vil.php";

}

else{

include "sti_til/hva_vi_vil.php";

}

?>

 

Lenke blir da: ?side=hva_du_vil

 

Dette gir riktignok ikke "index.php?page= sider" men er fullt ut brukbart.

 

Du har glemt å gi $side en verdi her. For at koden skal fungere må du legge til $side = $_GET['side']; før if-setningen.

 

Når det gjelder index.php?page=sider så henter man ut verdien av page med $_GET['page']

F.eks.

<?php

if (isset($_GET['page'])) {
$page = $_GET['page'];
echo 'Page: ' . $page;
}

?>

Lenke til kommentar
[snip]

Du har glemt å gi $side en verdi her. For at koden skal fungere må du legge til $side = $_GET['side']; før if-setningen.

 

Det er mulig jeg bør det, men det fungerer uten for meg.

 

--

eTrollet

 

Da kjører du PHP med register globals påslått.

Register globals påslått er et stort sikkerhetshull og fyfy! :thumbdown:

Heldigvis fjernes det helt i PHP6.

Lenke til kommentar
Da kjører du PHP med register globals påslått.

Register globals påslått er et stort sikkerhetshull og fyfy! :thumbdown:

Heldigvis fjernes det helt i PHP6.

 

Det har du faktisk helt rett i. Det står on både i Local Value og i Master Value. Riktignok er det ikke jeg som kjører med on men dem som hoster domene og webserver. Kanskje jeg skal be om å få skrudd av? Forøvrig kjøres det på v.4.4.4

 

--

eTrollet

Lenke til kommentar

Det finnes mange måter å gjøre dette på, selv liker jeg best mySQL og mappe varianten.

 

<?php

$side = strip_tags($_GET['side']);

$sporring = "select * from sider where tittel='$side'"; // Databasespørring
$resultat = mysql_query($sporring);

if(mysql_affected_rows() !== 0) { // Skjekker om siden finnes i databasen
$rad = mysql_fetch_array($resultat);

echo $rad['innhold'];

} else { // Siden finnes ikke i databasen, skjekker mappe

$fil = "undersider/".$side.".php";
if(file_exists($fil)) {

include($fil); // Inkluderer fil

}

}

?>

 

Med denne metoden kan du ha enkle informasjons sider i databasen og større script i en mappe.

Du kan jo også bruke eval til php script i databasen, men det syns jeg er en treg løsning.

 

Har ikke testet scriptet, det er kun ment for å gi kunnskap!

Endret av Goggen90
Lenke til kommentar

Her er en jeg bruker (er ikke sikker i hele tatt!):

 

<?php
$side = (isset($_GET['side']) && $_GET['side'] != '') ? $_GET['side'] : 'hovedside';
if (file_exists("sider/$side.php")) {
include_once("sider/$side.php");
} else {
echo "<h2>Error: 404</h2>Siden finnes ikke.<title>ERROR: 404 - Siden finnes ikke</title>";
}
?>

du legger alle sidene dine i "sider" mappen, og hvis det ikke finnes en variabel i GET attributen så redirecter den til hovedsiden

Lenke til kommentar

Her er den jeg brukte da jeg hadde hjemmeside

$side = $_GET['side'];

$mappe = "ink/";

if( empty( $side ) )
{
include($mappe . "main.php");
}
elseif( !empty( $side ) AND !preg_match( "#\.\./|^/#", $side ) AND file_exists( $mappe . $side .".php" ) )
{
include( $mappe . $side . ".php" );
}
else
{
include( $mappe . "404.php" );
}

Litt sikrere enn Famen sin. Her kan man feks ikke bruke ?side=../../../../../../../etc/passwd

Lenke til kommentar
<?php
/**
* @author Hellkeepa
*/

$Folder = 'include/';

$Action = ($Action = substr (strtolower (preg_replace ('([^a-zA-Z])', '', $_GET["action"])), 0, 20)) ? $Action : "main";
$Inc = $Folder.$Action . '.php';

if (is_file($Inc) && is_readable($Inc)) {
include $Inc;
} else {
header ("HTTP/1.0 404 Not Found");
include 'pagedontexists.php';
}
?>

Lenke til kommentar
*snip*

Litt sikrere enn Famen sin. Her kan man feks ikke bruke ?side=../../../../../../../etc/passwd

 

Hmm, dette så faktisk ganske bra ut... tror jeg skal bytte :) (hvis jeg får lov og bruke det)

Tror nok du får lov til å bruke det. Begynner å bruke det jeg òg.

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å
×
×
  • Opprett ny...