hallo, ich habe, wie der titel schon sagt, ein problem mit der mkdir() funktion von php.
hier erstmal der Code:
$docroot = $_SERVER['DOCUMENT_ROOT'];
$doc_root = "".$docroot."/images/upload/".$id."/";
$new_dir = mkdir($doc_root, 0777);
if(isset($_POST["pic1"]) && !empty($_POST["pic1"])) {
if(@ini_set("upload_max_filesize", "3M")) {
echo 'ini set exc.';
}
else {
echo 'error -> ini_set';
}
if (move_uploaded_file($HTTP_POST_FILES[´pic1´][´1´], $doc_root.$HTTP_POST_FILES[´pic1´][´1´])){
$pic1 = TRUE;
}
else {
$pic1 = FALSE;
}
}
der soll einfach einen ordner erstellen, welcher eine vorher angegebene ID hat und darein dann eine datei laden.
nun kommt der fehler:
Warning: mkdir() [function.mkdir]: Unable to access home/strato/www/fd/www.domain.de/htdocs/images/upload/3/
wobei 3 die ID ist die angegeben wurde. ich habe der php datei 777 rechte gegeben, daher verstehe ich nicht so richtig wo das problem ist.
könnte das an Strato liegen, also das das irgendwie auf einem windows server liegt und daher nicht geht? ich stehe auf dem schlauch :(
das / am anfang wird durch $docroot gemacht, da so ja der genaue pfad ausgelesen wird per PHP. daher verstehe ich das nicht, habe / davor gemacht und es geht immer noch nicht.
soll ich die Funktion einfach streichen? es ist nicht lebensnotwendig denke ich das die eingebaut wird, wäre mehr ein nettes feature. kann es ggf. an Strato und dem Server liegen? ist das größte PowerWeb packet, ich habe den server aber nicht bestellt, ist für jmd. anderen
Versuche es mal damit:$oldumask = umask(0);<br />$new_dir = mkdir($doc_root, 0777);<br />umask($oldumask);<br />
Ohne unmask wird durch mkdir das Verzeichnis nur auf 0755 gesetzt!
PHP unmask()
also bei mir gehts bei strato ohne probs mit mkdir.
hier nen bsp (codeschnipsel aus meinem filemanager)
wende den filemanager haben willst sags mir (also file upload script mit ordner anlegen grundlagen)<br />/* schnipsel */<br /> // aktuellen pfad ermitteln<br /> // dazu dateiname + endung weg -> ergibt aktuellen, absoluten pfad<br /> // dateinname + endung feststellen, idem man letztes vorkommen von "/" gesucht wird<br /> $tmppos = strrpos($_SERVER['ORIG_SCRIPT_FILENAME'], '/');<br /> // pfad ermitteln, indem substring vom start bis zum vorkommen vom letzten "/"<br /> $path = substr($_SERVER['ORIG_SCRIPT_FILENAME'], 0 , $tmppos);<br /><br />/*<br />$destinationpath -> der pfad AB deiner aktuelle position (des scriptes) bis zu dem ordner der angelegt werden soll<br />$destination -> das was noch angelegt werden soll<br />*/<br /><br />/* schnipsel */<br /> // wenn zielordner nicht existiert anlegen<br /> if (!is_dir($path."/".$destinationpath."/".$destination)){<br /> mkdir($path."/".$destinationpath."/".$destination);<br /> }<br />
läuft zu 300% bei strato mit php5 cfg
[PHPINFO]
so viel spaß
It looks like you're new here. If you want to get involved, click one of these buttons!