include([b]"[/b]info.php[b]"[/b]);
För att göra det ännu snyggare skulle du kunna göra så här istället för switch-satsen:
include($cat . ".php");
6 svar · 192 visningar · startad av greymane
varför skriver följande kod inte ut nånting när man klickar på ngn av de två översta länkarna? inte nåt!
<a href="<?echo($HTTP_SERVER_VARS["PHP_SELF"])?>?cat=info">info</a><br>
<a href="<?echo($HTTP_SERVER_VARS["PHP_SELF"])?>?cat=kontakta">kontakta oss</a><br>
<?
switch ($cat) {
case "info":
include(info.php);
break;
case "kontakta":
include(kontakta.php);
break;
}
jag har aldrig använt include() förr och vet inte om jag har gjort rätt där heller. men även om jag bara sätter in ett enkelt echo("text"); så skriver koden inte heller ut nåt.
nån som vet nåt?
red: halvtaskiga indenteringar
[Redigerat av greymane den 03 nov 2001]
include([b]"[/b]info.php[b]"[/b]);
För att göra det ännu snyggare skulle du kunna göra så här istället för switch-satsen:
include($cat . ".php");
Kan väl kanske vara lite farligt i vissa fall .. om man med en querystring ger ett eget värde till $cat!
jag e inte så insatt i säkerheten i php, men vad kan hända om man användaren skulle sätta ett eget värde på $cat? e det hela världen?
Det beror helt och hållet på vad du har för dokument på servern. Har du inga som helst känsliga dokument kan du använda det här sättet, därmot håller jag med Chavez, det kan vara för riskabelt... Så håll dig till dina switch-satser!
jo det e ju sant iofs. fast om man bara har include-filerna i en egen mapp, som inte innehåller nåt annat, kan det väl inte va så farligt va?
eller så lägger man in nån form av kontroll så att bara rätt filer kan visas.
jag fick inte ordning på switch-satsen... det e därför jag söker alternativa vägar
FYI så finns det alltid en "genväg" till föräldrakatalogen som heter .. som man kan smyga in i sökvägen. En smidig och säker variant är den här...
function enkel_include($name){
$file = "include.$name.php";
if(strstr($name, '/') || strstr($name, '\\'))
trigger_error('Får inte klänga runt i olika kataloger!');
else if(!is_file($name))
trigger_error('Men hallå, du måste för fan inkludera en *fil*!');
else
include($file);
}
Sen så kan du anropa den funktionen med enkel_include($cat) för att visa filen include.music.php om du går till sidan med url:en dinserver.com/parp.php?cat=music. Försöker man hoppa runt mha .. eller liknande genereras ett fel.