Hallo

Ik heb een script van:
https://github.com/jcampbell1/simple-file-manager

Maar krijg div. meldingen Notice: Undefined index: file in... te beginnen met regel 4, 18 en 19 hieronder
iemand een idee wat er mis kan zijn=



// must be in UTF-8 or `basename` doesn't work
setlocale(LC_ALL,'nl_NL.UTF-8');
$tmp = realpath($_REQUEST['file']);
if($tmp === false)
	err(404,'File or Directory Not Found');
if(substr($tmp, 0,strlen(__DIR__)) !== __DIR__)
	err(403,"Forbidden");

if(!$_COOKIE['_sfm_xsrf'])
	setcookie('_sfm_xsrf',bin2hex(openssl_random_pseudo_bytes(16)));
if($_POST) {
	if($_COOKIE['_sfm_xsrf'] !== $_POST['xsrf'] || !$_POST['xsrf'])
		err(403,"XSRF Failure");
}

$file = $_REQUEST['file'] ?: '.';
if($_GET['do'] == 'list') {
	if (is_dir($file)) {
		$directory = $file;
		$result = array();
		$files = array_diff(scandir($directory), array('.','..'));
	    foreach($files as $entry) if($entry !== basename(__FILE__)) {
    		$i = $directory . '/' . $entry;
	    	$stat = stat($i);
	        $result[] = array(
	        	'mtime' => $stat['mtime'],
	        	'size' => $stat['size'],
	        	'name' => basename($i),
	        	'path' => preg_replace('@^\./@', '', $i),
	        	'is_dir' => is_dir($i),
	        	'is_deleteable' => (!is_dir($i) && is_writable($directory)) || 
	        					   (is_dir($i) && is_writable($directory) && is_recursively_deleteable($i)),
	        	'is_readable' => is_readable($i),
	        	'is_writable' => is_writable($i),
	        	'is_executable' => is_executable($i),
	        );
	    }
	} else {
		err(412,"Not a Directory");
	}
	echo json_encode(array('success' => true, 'is_writable' => is_writable($file), 'results' =>$result));
	exit;
} elseif ($_POST['do'] == 'delete') {
	rmrf($file);


De index 'file' bestaat niet. Het is jammer dat er $_REQUEST gebruikt wordt als global, terwijl dit beter expliciet $_POST of $_GET moet zijn, afhankelijk van de opbouw van het script.

Voor mijn gevoel ga ik even uit van $_POST. In dat geval zal er een formulier-element missen met een name die file heet.
Aar bedank voor je reactie

Ik dacht dat ik kon opmaken dat het een kant en klaar script was, maar waarschijnlijk niet dus.
Het werkt overigens voor de rest wel.
Dan zal k verder moeten zoeken.

Reageren