PHP Upload - Problem?

fUnKuCh3n

Erfahrenes Mitglied
Hallo,

ich habe eben das Uploadformular von Christian Fein in meine Seite eingebaut, doch irgendwie funktioniert das ganze nicht so wie es soll.

Der Code ist nachfolgend angehängt.

Lg und danke schon mal. Sash
PHP:
<?
if (isset($_REQUEST['submit']))
{

session_start();
$filename = "$userid.gif";
$tempname = $_FILES['file']['tmp_name'];

$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];

if($type != "image/gif" && $type != "image/jpeg") {
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "15000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
}

if(empty($err)) {
    copy("$tempname", "avatare/$filename");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
else {
    foreach($err as $error)
    echo "$error<br>";
}
}
else
{
?>
<form action="?go=avatar" method="post" enctype="multipart/form-data">
<table width="418" border="0">
  <tr>
    <th colspan="2" scope="col">Avatar</th>
  </tr>
  <tr>
    <th colspan="2" scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th colspan="2" scope="col">Avatar Hochladen </th>
  </tr>
  <tr>
    <td width="159">Lokaler Pfad:</td>
    <td width="249"><input type="file" name="file" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">Maximale Dateigr&ouml;&szlig;e: <strong>200 kB</strong> </td>
    </tr>
  <tr>
    <td colspan="2">Erlaubte Dateitypen: .<strong>gif .jpg .jpeg</strong> </td>
    </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2">
      <div align="center">
        <input type="submit" value="Senden" />&nbsp;
        <input type="reset" value="Zur&uuml;cksetzen" />
        </div>
    </label></td>
    </tr>
  <tr>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>
</form>
<?
}
?>
 
Ersetz mal
PHP:
if (isset($_REQUEST['submit']))
durch
PHP:
if(isset($_GET['go']) AND $_GET['go'] == "true")

Ansonsten ist $userid in deinem Snippet jetzt undefiniert.
 
Auch das Error Reporting bringt keine sichtbaren erfolge, der springt automatisch dann halt zum HTML Formular wieder um nach dem absenden des Formulars.
 
Ist das ein Script hier von der Tutorial-Seite als Tutorial ?
Wenn ja kann man das nicht auf Richtigkeit bzw Aktualität prüfen ?
Sowas wie copy() is doch veraltet bzw. nicht geeignet für Datei-Uploads ?

Datei-Uploads

mfg
 
Das Lustige an der ganzen Sache ist ja, ich hatte das Script vorher in mehreren anderen Projekten verwendet und ja, dann hab ich es einfahc mal just 4 fun ausprobiert gerade und mit dem unten folgendem Code funktioniert es einwandfrei, wobei ich sagen muss, ich habe an dem Code halt nur einiges entfernt und modifiziert ( vllt auch zu viel was mir ja nicht aufgefallen sein kann )

PHP:
<?php
session_start();

$delete = $_POST['delete'];
$avafoto = $_POST['avafoto'];
$userid = "3333";
if($delete == 1)
{
 copy("../../avatare/no.gif", "../../avatare/$userid.gif");
 echo "Dein Avatar wurde gelöscht!";
}
else
{

$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];

$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];

if($type != "image/gif" && $type != "image/jpeg") {
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "75000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 75 KB!";
}
if(empty($err)) {
    copy("$tempname", "$userid.gif");
    echo "Die Datei $userid.gif wurde erfolgreich hochgeladen!";
}

else {
    foreach($err as $error)
    echo "$error<br>";

}
/*
if($avafoto == 1)
{
    copy("$tempname", "../../userpics/$userid.jpg");
    echo "<br>Dein Avatar wurde als Userfoto gesetzt";
}
*/
}
?>
Aber was ich halt erreichen wollte, ist dass ich das HTML Formular und die PHP Verarbeitung in einer Datei habe, weil sonst das System zu unübersichtlich wird...Darum halt noch das HTML Gerüst dazu.
 
Zuletzt bearbeitet:
Zurück