Hi,
ich wollte in einem Gästebuchformular einen Avatarupload anbieten. Doch bei der Ausgabe wird lediglich der Dateiname ausgegeben und das Script behauptet auch steif und fest, es hätte die Datei hochgeladen, nur dass sie nirgendwo auf dem Server, geschweige denn im angegebenen Verzeichnis ist.
Wo liegt also mein Problem? Überall steht doch, dass damit eine Datei hochgeladen werden kann...
gaestebuch.php
neuerbeitrag.php
Weitere Möglichkeiten:
oder
MfG
SWFP
ich wollte in einem Gästebuchformular einen Avatarupload anbieten. Doch bei der Ausgabe wird lediglich der Dateiname ausgegeben und das Script behauptet auch steif und fest, es hätte die Datei hochgeladen, nur dass sie nirgendwo auf dem Server, geschweige denn im angegebenen Verzeichnis ist.
Wo liegt also mein Problem? Überall steht doch, dass damit eine Datei hochgeladen werden kann...
gaestebuch.php
PHP:
<form action="neuerbeitrag.php" Method="post">
Ihr Name:<br />
<input name="Name" size="40"><br /><br />
E-Mail:<br />
<input name="EMail" type="email" size="40"><br />
<br /><br />
Avatar <i>(optional)</i>:<br />
<input name="avatar" type="file" size="50" maxlength="100000" accept="image/*"><br />
<br /><br />
Titel <i>(optional)</i>:<br />
<input name="Titel" size="40"><br /><br />
Inhalt:<br />
<textarea name="inhalt" cols="40" rows="12"
wrap="physical"></textarea><br>
<input type="submit" value="Absenden">
</form>
neuerbeitrag.php
PHP:
<?php
$user = $_POST["Name"];
$user = htmlentities($user);
$avatar = $_POST["avatar"];
$titel = $_POST["Titel"];
$titel = htmlentities($titel);
$inhalt = $_POST["inhalt"];
$inhalt = htmlentities($inhalt);
$inhalt = str_replace("\n", "<br>", $inhalt);
$email = $_POST["EMail"];
$email = htmlentities($email);
[COLOR="Red"]//Bildverabeitung
$uploaddir = '/Bilder/';
$uploadfile = $uploaddir . basename($_FILES['avatar']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['avatar']['tmp_name'], $uploadfile)) {
echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
} else {
echo "Möglicherweise eine Dateiupload-Attacke!\n";
}
echo 'Weitere Debugging Informationen:';
print_r($_FILES);
print "[/COLOR]
//Überprüfung der eingegebenen Daten
if ($inhalt == "" or $user == "")
{
echo "Sie müssen das Feld \"Namen\"
und \"Inhalt\" ausfüllen";
}
//Verarbeitung der Daten
else
{
$datum= date("d.m.Y H:i:s");
$eintrag="$avatar|$email|$user|$datum|$titel|$inhalt";
$datei = fopen("gaestebuch.txt", "a");
fwrite($datei, "\n".$eintrag);
fclose($datei);
echo "Ihr Eintrag wurde erfolgreich gespeichert";
}
?>
Weitere Möglichkeiten:
PHP:
move_uploaded_file($_FILES['avatar']['tmp_name'], "Bilder/".$_FILES['avatar']['name']);
echo "Das Bild wurde erfolgreich nach Bilder/".$_FILES['avatar']['name']." hochgeladen!<br />";
PHP:
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if($dateityp[2] != 0)
{
if($_FILES['datei']['size'] < 102400)
{
move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
echo "Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen";
}
else
{
die("Das Bild darf nicht größer als 100 kb sein ");
}
}
else
{
die("Bitte nur Bilder im Gif bzw. jpg Format hochladen");
}
SWFP