[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-support] PHP



Hallo Martin

> Ich getrau mich schon fast nicht mehr...

Keine Bange...

> Jetzt öffnet sich bei mir nur die error Page. Funktioniert das bei dir?

Ich habe das Script nicht getestet, kann mir aber vorstellen wo der 
Fehler liegt (siehe unten)

>>>> OK, ich würde sagen, das Script müsste etwa wie folgt aussehen:
>>>>
>>>> <?PHP
>>>>
>>>>   $strFile = "home.php4";
>>>>   if (isset($_GET["open"]))
>>>>   {
>>>>     $strFile = $_GET["open"].".php4";
>>>
>>>
>>>
>>>
>>> Vielleicht noch ein bisschen Input-Validierung?
>>> Wie waere es mit GET /index.php4?open='/pfad/zu/script-mit-passwoertern'
>>
>>
>>
>> Ja, da gebe ich Dir recht, dass mein Beispiel nicht das höchste der 
>> Sicherheitsgefühle ist (ups, da ging mir das Script von gestern abend 
>> doch zu schnell durch). Ich hab das Script jedoch rel. einfach 
>> entsprechend der Frage gehalten.
>> Wenn ich etwas in der Art entwickle, mache ich das sonst immer über 
>> ein Array, so dass ich die Dateinamen vorgebe:
>>
>> <?PHP
>>
>>   $arrData[0] = "home.php4";
>>   $arrData[1] = "error.php4";
>>   $arrData[2] = "myfile.php4";
>>   $arrData[3] = "myproduct.php4";
>>
>>   $strFile = $arrData[0];
>>   if (isset($_GET["open"]))
>>   {
>>     $nData = $_GET["open"];

Da $_GET["open"] ein String enthalten dürfte, wird dieser Datentyp auch 
auf $nData übertragen. Die Zeile sollte besser heissen:

        $nData = intval($_GET["open"]);

Damit haben wir nun in $nData auf jeden Fall einen Integerwert, was auch 
eine Vereinfachung der folgenden Bedingung ermöglicht:
>>
>>     if (is_int($nData) && ($nData >= 0) && ($nData < count($arrData)))

        if (($nData >= 0) && ($nData < count($arrData)))
>>     {
>>       $strFile = $arrData[$nData];
>>     }
>>     else
>>     {
>>       $strFile = $arrData[1];
>>     }
>>  }
>> ?>
>> ....
>>    <a href="<?PHP echo $PHP_SELF."?open=0"; ?>">Link 1</a>
>>    <a href="<?PHP echo $PHP_SELF."?open=2"; ?>">Link 2</a>
>>    <a href="<?PHP echo $PHP_SELF."?open=3"; ?>">Link 3</a>
>> ....
>>    <?PHP include($strFile);
>> ....

Ich hoffe, dass es nun klappt und ich nicht wieder etwas übersehen habe ;-)

Gruss
Markus