greymaneMedlem sedan juli 2001661 inlägg
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]
SPiNMedlem sedan mars 20005 832 inlägg
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");
------------------
SPiN, bjorne.w@telia.com
-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --
ChavezMedlem sedan maj 20001 297 inlägg
Kan väl kanske vara lite farligt i vissa fall .. om man med en querystring ger ett eget värde till $cat!
------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020
Första PHP portalen på svenska!!
greymaneMedlem sedan juli 2001661 inlägg
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?
SPiNMedlem sedan mars 20005 832 inlägg
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! :)
------------------
SPiN, bjorne.w@telia.com
-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --
greymaneMedlem sedan juli 2001661 inlägg
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 :)
spangoMedlem sedan juni 20006 147 inlägg
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.
------------------
You can be a coward for a few minutes, or dead forever. /Rincewind