Ich versuche mich zur Zeit an einem Bilduploadscript.
Frage 1:
Wie kann ich überprüfen, ob in dem Uploadformular überhaupt eine .jpg-Datei angehängt wurde (Prüfabfrage) ???
Frage 2:
Per CHMOD habe ich dem Verzeichnis die Rechte 777 gegeben, damit das Script im angegebenen Verzeichnis das Bild speichern kann. Ist das nicht ein Sicherheitsrisiko, weil da jetzt jeder reinschreiben kann, was er will? Kann ich das eleganter lösen ?
Dankeschön für eure Beiträge :-)
PHP-Code:
<?php
// abfrage ob bild bereits hochgeladen wurde
if (isset($_FILES['probe'])) {
//Bild auf server kopieren
$bild=$_SERVER['DOCUMENT_ROOT'].'/test/'.$_FILES['probe']['name'];
move_uploaded_file($_FILES['probe']['tmp_name'], $bild);
$groesse=getimagesize($bild);
// Die Höhe ist um die Relation zu erhalten die alte Höhe geteilt durch den Quotienten aus grösse alt und grösse neu
$hei=($groesse[1]*160)/$groesse[0];
//Bildgroesse aendern
//Hier den Dateinamen des gewünschten Bildes angeben
$z=time();
$picname="$z.jpg";
// Hier Breite des gewünschten Bildes angeben
$wid=160;
$bildalt=imagecreatefromjpeg($bild);
$bildneu=imagecreatetruecolor($wid,$hei);
$weiss=imagecolorallocate($bildneu,255,255,200);
imagecopyresized( $bildneu, $bildalt, 0, 0, 0, 0, $wid, $hei, $groesse[0], $groesse[1]);
imagejpeg($bildneu, $picname, 60);
imagedestroy($bildneu);
unset($_FILES['probe']);
//Bild anzeigen
echo "<img src=".$picname.">";
echo "<a href='upload.php'>weiteres Bild hochladen</a><br>";
unlink ($bild);*/
}
else{
//uploadformular
echo " <form name='mf' action='upload.php' method='post' enctype='multipart/form-data'>";
echo " Bild auswählen:";
echo " <input type='file' name='probe' value='durchsuchen'><br>";
echo " <input type='submit' NAME='senden' VALUE='Bild hochladen'>";
echo " </form>";
} //ende uploadformular
?>
Wie kann ich überprüfen, ob in dem Uploadformular überhaupt eine .jpg-Datei angehängt wurde (Prüfabfrage) ???
Frage 2:
Per CHMOD habe ich dem Verzeichnis die Rechte 777 gegeben, damit das Script im angegebenen Verzeichnis das Bild speichern kann. Ist das nicht ein Sicherheitsrisiko, weil da jetzt jeder reinschreiben kann, was er will? Kann ich das eleganter lösen ?
Dankeschön für eure Beiträge :-)
Kommentar