webForumDet fria alternativet

Includera / Adress

7 svar · 715 visningar · startad av parabol_daniel

parabol_danielMedlem sedan juni 200721 inlägg
#1
if($_GET['p'] == "text1")
{
include("text1.php");
}

elseif($_GET['p'] == "text2")
{
include("text2.php");
}

elseif($_GET['p'] == "text3")
{
include("text3.php");
}

Om jag vill att text1 ska includeras på sidan så skriver jag ju adressen index.php?p=text1 men hur blir adressen om jag ska includera både text1 och text3 index.php?p=text1&p=text3 (Fungerade inte) Hur ska jag göra?

effataMedlem sedan apr. 2008137 inlägg
#2

Då behöver du skriva en ifsats som tar hänsyn till det. Variabeln p kan bara anges en gång. Vill du kunna ange flera alternativ där måste du skriva någon form av logik för det, t.ex. att p kan ha flera texter separerade med något tecken (|,; etc).
Sen är det nog enklast att använda strpos för att se om strängen du letar efter finns i $_GET['p']. Glöm heller inte att ersätta elseif med if, eftersom else if förutsätter att föregående ifsats returnerade false.

LedelMedlem sedan dec. 2004736 inlägg
#3

Annars (kanske!) det här kan fungera, eftersom PHP, i alla fall i POST, tolkar det här som en array med namnet p: index.php?p[]=text1&p[]=text3

yadorMedlem sedan mars 2004455 inlägg
#4

Såhär kan du nog lösa det.

$files = explode($_GET[”p”],'|');
foreach($files as $value)
{
	if(file_exists($value))
	{
		include($value.'.php');
	}
}

Det är dock en ganska dålig lösning.

colioneMedlem sedan juni 20014 421 inlägg
#5

Då är array-lösningen som Ledel föreslog bättre

yadorMedlem sedan mars 2004455 inlägg
#6

Såklart är den det om den fungerar :) Då kan han väl direkt bara skriva en foreach sats och inkludera allt. Men nu visste jag inte om den fungerade.

parabol_danielMedlem sedan juni 200721 inlägg
#7

Tack för svaren. Ska testa

spangoMedlem sedan juni 20008 205 inlägg
#8

Jag vill råda emot att direkt inkludera filer på det viset. Det kan få oanade konsekvenser om någon inkluderar en fil som inte är tänkt att inkluderas och öppna potentiella säkerhetsluckor. Kolla att värdet verkligen är en fil som ska inkluderas.

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)