Mailinglisten-Archive |
Sebastian Tobias Mendel genannt Mendelsohn wrote:
> Christian Vosen wrote:
>
>> Warning: is_dir() [function.is-dir]: open_basedir restriction in effect.
>> File(..) is not within the allowed path(s): (/www/htdocs/v09xxxx/) in
>> /www/htdocs/v09xxxx/gallerie.php on line 84
>>
>> Das Skript selbst an dieser Stelle sieht so aus:
>>
>> if (empty($_REQUEST['sr']))
>> {
>> $gal = dir("./g_bilder");
>> $nr = 0;
>> while($eintrag = $gal->read())
>> {
>> if ((!is_dir($eintrag)) && ($eintrag!=".") && ($eintrag!="..") &&
>> ($eintrag!="admin") && ($eintrag!="gallery.opt")) // das ist zeile 84
>> {
>> $gallery_verzeichnis[$nr]=$eintrag;
>> $nr+=1;
>> }
>> }
>> sort($gallery_verzeichnis);
>
>
>
> du darfst nur auf Dateien/Verezichnisse unterhalb von
> "/www/htdocs/v09xxxx/" zugreifen, da du dich bereits in
> "/www/htdocs/v09xxxx/" befindest wäre das Verzeichnis ".." eine Stufe
> höher, deshalb der Fehler
>
> da du aber eh das Verzeichnisse ".." nicht haben willst musst due bloß
> die Überprüfungen in deiner IF-Bedingung umsortieren
>
> da deine IF-Bedingungen durch && verknüpft bricht PHP eh ab so bald eine
> Bedingung nicht erfüllt ist, also nimmst du die Überprüfung nach ".."
> einfach nach vorne!
>
> (normalerweiße würde man die Bedingung nach vorne nehmen welche am
> wahrscheinlichsten ist das sie zutrifft - sparrt Zeit)
>
> if ( $eintrag != "."
> && $eintrag != ".."
> && ! is_dir($eintrag)
> && $eintrag != "admin"
> && $eintrag != "gallery.opt" )
> {
> ...
> }
>
> oder (viel schönsten):
>
> $notwanted = array('.', '..', 'gallery.opt', 'admin');
>
> if ( ! in_array($eintrag, $notwanted) && ! is_dir($eintrag) )
> {
> ...
> }
>
achso, vergessen zu sagen, der genaue Code der den Fehler verursacht ist
das is_dir(), deshalb muss das auch verschoben werden
--
Sebastian Mendel (www.sebastianmendel.de)
*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com
php::bar PHP Wiki - Listenarchive