rename () funktion

coOl_bOoy

Grünschnabel
Hi Leute erstmal vor weg colles Board hier!

So jetzt sofort mal meine Erste Frage

Ich programmiere mit meim Kumpel n Script und wir kommen leider beide nicht dran weiter...

das Ziel ist es im übergeordneten Ordner und dort drinne einen anderen Ordner umzubennen mit hile von rename().

das haben wir mal probiert:

PHP:
$oldname = '/../$ordner1/$ordner2/';
		$newname = '/../$ordner1/$newname/';
		rename("$oldname/", "$newname");

Doch das funktioniert leider nicht;:

HTML:
Warning: rename() [function.rename]: open_basedir restriction in effect.
File(/../$ordner1/$ordner2//) is not within the allowed path(s):
(/home/vhosts/XXXXXXXXX/XXXXXXXXX) in
/home/vhosts/XXX/XXXXXXXX/edit_folder2.php
on line 106

Was bedeuted nun diese Fehlermeldung?
 
Strings die von einfachen Anführungszeichen umschlossen werden, werden nicht von PHP interpretiert.

Also:

PHP:
$name = '../'.$ordner.'/'.$datei;

Oder:

PHP:
$name = "../$ordner/$datei";
 
Das schöne an den Fehlermeldungen in PHP ist, dass sie den Fehler sehr direkt zeigen. Dort steht:

File(/../$ordner1/$ordner2//) is not within the allowed path(s)

Das Problem hierbei ist wohl das ein String mit Single-Quotes ( ' ) nicht geparsed wird (deine Variablennamen stehen im Text, statt deren Werte).
Daher verwende einmal Double-Quotes ( " ) und schau dir an was dann passiert.

Hier mal was zum lesen:
http://de.php.net/manual/de/language.types.string.php#language.types.string.parsing
 
ok ich hab das nun mal in

PHP:
		$oldname = "/../$art/$galerie/";
		$newname = "/../$art/$name/";
		rename("$oldname/", "$newname");

geändert doch nun taucht folgende Fehlermeldung auf:

HTML:
Warning: rename() [function.rename]: open_basedir restriction in effect.
File(/..////) is not within the allowed path(s):
(/home/vhosts/XXX/XXXYYY.de) in
/home/XXX/XXX/XXXYYY.de/XXX/XXX/edit_folder2.php
on line 106

was heiß das nun auf gut Deutsch?
 
open_basedir beschreibt das Basisverzeichnis, auf das mit Dateisystemfunktionen zugegriffen werden darf. Damit können unerlaubte Zugriffe verhindert werden.
Du versuchst auf ein Verzeichnis oder eine Datei innerhalb eines Verzeichnisses zuzugreifen, dass nicht innerhalb des in open_basedir stehenden Verzeichnisses befindet. Der Schrägstrich am Anfang des Pfads bedeutet nämlich bereits die Wurzel des Dateisystems und ein übergeordnetes Verzeichnis (..) existiert dort auch nicht.
 
Zurück