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 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 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 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 Då är array-lösningen som Ledel föreslog bättre
yadorMedlem sedan mars 2004455 inlägg 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.
Tack för svaren. Ska testa
spangoMedlem sedan juni 20008 205 inlägg 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.