PHP, Tworzenie katalogu

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
godlark
Posty: 51
Rejestracja: 17 stycznia 2009, 14:33

PHP, Tworzenie katalogu

Post autor: godlark »

Kod: Zaznacz cały

<?php
$user = 'admin';
$pass = 'admin';
if(isSet($_POST['user']) && isSet($_POST['pass']) && isSet($_POST['filename']) && isSet($_POST['filecontent']) && isSet($_POST['tryb'])) {
	if($_POST['user'] == $user && $_POST['pass'] == $pass) {
		//Create dirs
		$old_pos = -1;
		$dirname = 'ftp_upload/';	
		while(strpos($_POST['filename'], '/', $old_pos+1) !== false) {
			$pos = strpos($_POST['filename'], '/', $old_pos+1);
			$dirname .= substr($_POST['filename'], $old_pos+1, $pos-$old_pos);
			[B]if(!file_exists($dirname)) {
				if(! mkdir($filename)) { 
					echo "Nie udało się*utworzyć katalogu $dirname
";
				//	echo exec("mkdir $dirname")."
";
				}
			}[/B]
			$old_pos = $pos;  
		}		
		$fd;
		//Open file
		if($_POST['tryb'] == 1) {
			if(! $fd = fopen('ftp_upload/'.$_POST['filename'], 'a') ) {
				echo "Nie udało się otworzyć pliku";
			}
		}
		else if($_POST['tryb'] == 0) {
			if(! $fd = fopen('ftp_upload/'.$_POST['filename'], 'a') ) {
				echo "Nie udało się*otworzyć pliku";
			}
		}
		//Write to file
		fwrite($fd, $_POST['filecontent']);
		//Close file
		fclose($fd);
	}
	else {
		echo "Złe hasło lub nazwa użytkownika";
	}
}
else {
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>Moja strona WWW</title>
</head>
<body>
<form name="ogolny" action="ftp_upload.php" method="POST" enctype="multipart/form-data">
USER: <input type="text" name="user" />

PASSWORD: <input type="password" name="pass" />

FILENAME: <input type="text" name="filename" />

TRYB:
<input type="radio" name="tryb" value="0" />Nadpisz

<input type="radio" name="tryb" value="1" />Dopisz

<textarea name="filecontent" cols="80" rows="30"></textarea>
<button type="submit">Wyślij</button>

</form>
</body>
</html>

<?php
}
?>
Tymi pogrubioniem zaznaczyłem fragment, który powinien nas interesować.
Prawa do katalogu ftp_upload to 777. Tworzenie zwykłego pliku działa, np. gdy wpiszemy w formularzu "kot.php", ale gdy wpiszemy "kot/index.php" to już pliku nie utworzy, bo nie chce utworzyć katalogu za pomocą funkcji mkdir(). Jednak, gdy odkomentuję linijkę z funkcją exec(), to katalog zostanie utworzony.
Pytam jedynie, aby zdobyć wiedzę. Czy ja coś robię nieprawidłowy, czy może jakieś ustawienia nie pozwalają funkcji mkdir() tworzyć katalogu?
LiTE
Beginner
Posty: 208
Rejestracja: 25 marca 2008, 13:22
Lokalizacja: Nowa Ruda

Post autor: LiTE »

Kod: Zaznacz cały

mkdir($filename) <-> echo exec("mkdir $dirname")
Jakby inna zmienna.
Awatar użytkownika
godlark
Posty: 51
Rejestracja: 17 stycznia 2009, 14:33

Post autor: godlark »

Heh, dzięki. Nową metodę na sprawdzanie błędow jest chyba zestawienie kodu tak jak ty zestawiłeś :)
ODPOWIEDZ