PHP Script

Hi.
Ich habe ein PHP Script gefunden, das mir / anderen ermöglicht, Dateien hochzuladen.
So, das funktioniert auch prima, nur hätte ich 3 Fragen dazu:
Wenn ich die upload Seite ( files21.bplaced.net/upload.php ) aufrufe, dann sehe ich sie zwar, jedoch steht unten gleich:
Sorry, there was a problem uploading your file.
Obwohl ich ja nix uploaden wollte. Sonst geht uploaden ganz normal.
Meine 2te Frage:
Wie kann ich es machen, dass der, der die Datei hochgeladen hat, gleich den Link dazu bekommt?
Und meine 3te Frage:
Wie kann ich es machen, dass zum Dateinamen eine zufällige Zahl angehängt wird?
Mein PHP Script sieht so aus:

[code]

Please choose a file:
<?php $target = "upload/"; $target = $target . basename( $_FILES['uploaded']['name']) ; $ok=1;

//This is our size condition
if ($uploaded_size > 5120000)
{
echo “Your file is too large.
”;
$ok=0;
}

//Here we check that $ok was not set to 0 by an error
if ($ok==0)
{
Echo “Sorry your file was not uploaded”;
}

//If everything is ok we try to upload it
else
{
if(move_uploaded_file($_FILES[‘uploaded’][‘tmp_name’], $target))
{
echo "The file “. basename( $_FILES[‘uploadedfile’][‘name’]). " has been uploaded”;
}
else
{
echo “Sorry, there was a problem uploading your file.”;
}
}
?>

[/code]

Ich hoffe, ihr könnt mir helfen. :slight_smile:

Hallo,

das PHP-Skript ist ziemlich unsicher. Damit kann man z.B. eine PHP-Datei hochladen und auf einem Server ausführen! Das PHP-Skript kann dann alles auf deinem Server machen, also Dateien löschen, anzeigen, und eben alles, was auch du mit deinen PHP-Skripts machst.

Hier das verbesserte Skript (so, wie du es wolltest und sicherer gemacht):

[code]

Please choose a file:
<?php if ($_POST['upload_submit']) { // Array mit erlaubten Erweiterungen $allowed_exts = array("txt", "odt", "zip", "rtf"); // muss ergänzt werden. // Array mit niemals erlaubten Erweiterungen. Diese gefährden die Sicherheit! $never_allowed_exts = array("php", "php3", "html", "htm", "cgi"); // Ergänzen! // .htaccess-Dateien dürfen auch niemals hochgeladen werden! $not_allowed_filenames = array(".htaccess"); // die bereits enthaltene Datei sollte drinbleiben, da man sonst eine .htaccess datei hochladen kann und dann auch Bilder als PHP-Skript ausführen lassen kann! $target = "upload/"; $filename = $_FILES['uploaded']['name']; $ext = substr($filename, strrpos($filename, ".") + 1); $file = substr($filename, 0, strrpos($filename, ".")); $uploaded_size = $_FILES['uploaded']['size'];
//zufallszahl ans ende
$filename = $file . rand(0, 99999) . "." . $ext;
$target .= basename($filename);
if (in_array($ext, $allowed_exts) && !in_array($ext, $never_allowed_exts) && !in_array($_FILES['uploaded']['name'], $not_allowed_filenames))
{
	$ok=1;
	//var_dump($_FILES);
	
	//This is our size condition
	if ($uploaded_size > 5120000)
	{
		echo "Your file is too large.<br>";
		$ok=0;
	}
	
	//Here we check that $ok was not set to 0 by an error
	if ($ok==0)
	{
		echo "Sorry your file was not uploaded";
	}
	
	//If everything is ok we try to upload it
	else
	{
		if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
		{
			echo "The file ". basename($filename). " has been uploaded<br />";
			echo "<a href=\"" . $target . "\">Zur Datei</a>";
		}
		else
		{
			echo "Sorry, there was a problem uploading your file.";
		}
	}
}
else 
{
	echo "You have uploaded a file with an extension, that is not allowed!<br />";
	echo "Allowed extensions: " . implode(", ", $allowed_exts) . "<br />";
	echo "Never allowed extensions: " . implode(", ", $never_allowed_exts) . "<br />";
	echo "Not allowed filenames: " . implode(", ", $not_allowed_filenames);
}

}
?>

[/code]

So ein Skript wie du gepostet hast, solltest du niemals auf einen Webserver hochladen!

MfG
Fabsch

Wow, vielen, vielen dank, dass du das gemacht hast!! :hail:
Und funktionieren tuts auch! :ps: :smiley: