Ordnerüberprüfung schlägt fehl

mike4004

Erfahrenes Mitglied
Hi

ich habe ein script für testzwecke gemacht das so aussieht.

Es soll zuerst über prüfen ob der Ausgangsordner $user_dir vorhanden ist und wenn ja überprüfen ob die übrigen 2 vorhanden sind zb wenn $user_save net vorhanden ist es erzeugen und gleich noch schauen ob $user_save_con auch vorhanden ist und wenn nicht es erzeugen.

Wenn kein Ordner erstellt werden musste gibt es 0 zurück wenn erstellt werden musste dann 1 und bei Fehlern <0.

Doch leider erhalten ich immer gleich beim ersten überprüfen die Meldung
Code:
Warning: mkdir() [function.mkdir]: No such file or directory in /opt/lampp/htdocs/test/test.php on line 12
doch warum? selbst wenn der Ordner existiert (ich ihn erzeugt habe per hand) kommt die Meldung mir kommt es so vor als wäre das Script an einem ganz anderen Ort.

hoffe ihr könnt mir helfen.

mfg mike4004

PHP:
<?
///
/// function user_settings
///
$user_dir = "dir";
$user_save = "dir/save";
$user_save_con = "dir/save";
	function user_settings_controll(){
	/* make all user dirs if dirs are not exist ----start*/
	if (!is_dir($user_dir)){
		
		if(!mkdir($user_dir, 0777)){  //hier ist der 1. Fehler 
			
			return -1;
		}
		
		
			
			if(!@mkdir ($user_save, 0777)){
			
			return -2;
		}
	
			
			
			if(!@mkdir ($user_save_con, 0777)){
			
			return -3;
		}
	return 1;
	}
/*--------------ende--------------------*/



/* conntroll if only $user_save dir didn't exist if  $user_dir exist*/

	elseif (!is_dir($user_save)){
			
			if(!@mkdir ($user_save, 0777)){
			
			return -4;
			}

		if (!is_dir($user_save_con)){
			
			if(!@mkdir ($user_save_con, 0777)){
			
			return -5;
		}return 1;
		}return 1;
}elseif (!is_dir($user_save_con)){
			
			if(!@mkdir ($user_save_con, 0777)){
			
			return -6;
		}return 1;
		}
	


return 0;

	
}

echo user_settings_controll();

?>
 
Ich behaupte jetzt mal $user_dir muss den kompletten pfad enthalten von "/" angefangen. $DOCUMENT_ROOT kann auch verwendet werden

Marcus
 
Hallo,
hat mich auch etwas zum grübeln gebracht, aber ic hhab die Lösung...
also du hast $user_dir und $user_save natürlich außerhalb der klasse stehen, die musst du in der funktion selbst alks global definieren um an die werte ranzukommen.
Hab deine Funktion auch leicht umgeändert, jetzt gibt sie dir auf jeden zurpck, welche ordner erzeugt wurden und falls alles ok ist "alles OK"...

Code:
$user_dir = "dir/";
$user_save = "dir/save/";
#$user_save_con = "./dir/save"; //mal deaktiviert, nehme an sollte ein check sein
function user_settings_controll(){
  global $user_dir,$user_save;
    /* make all user dirs if dirs are not exist ----start*/
if (!is_dir($user_dir) || !is_dir($user_save)){
	if(!is_dir($user_dir)){  
	if(mkdir($user_dir, 0777)) $returner.= "userdir erzeugt.<br>\n";
	}
	
	if(!is_dir ($user_save)){
	if(mkdir($user_save, 0777))	$returner.= "savedir erzeugt.<br>\n";
	}
	#if(!is_dir($user_save_con)){
	#mkdir($user_save_con, 0777);
	#$returner.= "savecon erzeugt";
	#}
}
else {
  $returner = "Alles OK";
}
return $returner;
}
 
Hi

danke für die Hilfe ich habe es jetzt nicht mit globalen vars gemacht sondern einfach die Variablen übergeben. DANKE DANKE

mfg mike4004
 
Zurück