PHP-Uploadscript

Dieses Thema im Forum "Web-Know-how für die Homepage" wurde erstellt von tdhp, 15. Februar 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. tdhp

    tdhp Halbes Megabyte

    Registriert seit:
    27. August 2005
    Beiträge:
    535
    Wollte meinen Homepagebesuchern einen upload Ihrer Daten auf meinen Webspace ermöglichen, jedoch kam es zu ein paar Problemen.

    Ich habe dafür 2 php Dateien. Die eine heißt "form.php". Diese enthält folgenden code:
    PHP:
    <form action="hochladen.php" method="post" enctype="multipart/form-data">
    Datei: <input type='file' name="bilddatei" value="Durchsuchen"><br>
    Ihre E-Mail-Adresse: <input type="text" name="email"><br>
    <
    input type="submit" name="Senden" value="Hochladen">
    </
    form>
    Die andere heißt "hochladen.php". Diese enthält folgenden code:
    PHP:
    <?php
    $host 
    "localhost";            //Mysql-Host
    $user "voegerl";                 //Mysql-User
    $pass "meinpasswort";                 //Mysql-Passwort
    $data "voegerl";             //Mysql-Datenbank
    $m_table "upload";            //Mysql-Tabelle
    $ordner "file/";            //Upload-ordner (CHMOD777)
    $email "meineemailadresse";     //E-Mail-Adresse @ Admin

    $extlimit "yes"//nur bestimmte Endungen zu lassen?
    $limitedext = array(".rar",".zip",".jpg"); //Dateiendungen die erlaubt sind
    $sizelimit "yes"//Größenbegrenzung ja oder nein?
    $sizebytes 1572800//maximale größe in bytes
    $sizeBytesinmb=$sizebytes/1024/1024;
    if(
    $bilddatei!= "") {
       if ((
    $sizelimit == "yes") && ($bilddatei_size $sizebytes)) {
          echo 
    "Die Datei ist zu gross, sie darf maximal $sizeBytesinmb MB groß sein.";
       }
       else {
          
    $ext strrchr($bilddatei_name,'.');
             if ((
    $extlimit == "yes") && (!in_array($ext,$limitedext))) {
                echo 
    "Die Datei hat nicht die richtige Endung.";
             } elseif (
    file_exists("$bilddatei_name")) {
                echo 
    "Die Bilddateiname existiert bereit. Bitte ändere deine Bilddateiname und versuche es nochmal.";
             } else {
                if (
    $_POST['email'] == "") {
                   echo 
    "Sie müssen eine E-Mail-Adresse eingeben, um den Upload-Dienst nutzen zu können. Der Link der hochgeladenen Datei wird Ihnen dann an Ihre Email-Adresse geschickt";
                } else {
                   
    move_uploaded_file($_FILES['bilddatei']['tmp_name'],"".$ordner."".$_FILES['bilddatei']['name']);
                   
    $dir dirname ($_SERVER['PHP_SELF']);
                   
    $message1 "Upload-File\n\nIP: ".$_SERVER['REMOTE_ADDR']."\nEmail: ".$user_mail."\n\n\nhttp://".$_SERVER['HTTP_HOST']."".$dir."/".$ordner."".$_FILES['bilddatei']['name']."";
                   
    $message2 "Upload-File\n\nVielen Dank, dass Sie den Upload-Dienst auf unserer Seite genutzt haben. Ihre Datei wurde erfolgreich hochgeladen und ist unter folgendem Link zu erreichen:\nhttp://".$_SERVER['HTTP_HOST']."".$dir."/".$ordner."".$_FILES['bilddatei']['name']."\n\nMit freundlichen Grüßen\n";
                   
    mail($email,"Upload-File",$message1,"FROM: $user_mail");
                   
    mail($user_mail,"Upload-File",$message2,"FROM: $email");
                   
    $vb mysql_connect($host,$user,$pass);
                   
    mysql_select_db($data);
                   
    $result mysql_query("INSERT INTO $m_table (ip, url) VALUES ('".$_SERVER['REMOTE_ADDR']."', 'http://".$_SERVER['HTTP_HOST']."".$dir."/".$ordner."".$_FILES['bilddatei']['name']."')",$vb);
                   if (
    mysql_affected_rows($vb) > 0) {
                      echo 
    "Ihr Upload war erfolgreich!";
                   }
                }
             }
       }
    }
    ?>
    Doch bei der e-mail, die mir zugeschickt wird, wird nur die IP des Uploaders angezeigt, aber nicht die e-mail-adresse. Was muss ich ändern, dass beides angezeigt wird? Hier ein Bild, das dies verdeutlicht.

    Kann man auch machen, dass der Uploader die gleiche E-Mail bekommt, die ich auch bekomme, damit er den Download-Link bekommt?

    Wenn ich die gleiche Datei hintereinander hochlade, kommt trotzdem "Upload war erfolgreich" und nicht, dass die Datei schon existiert und deshalb die zu hochladende Datei umbenannt werden muss.

    Was muss ich ändern, damit die 3 Probleme, die ich habe, behoben sind. Bin auch jedem dankbar, der eines der drei Probleme lösen kann.
     
  2. tdhp

    tdhp Halbes Megabyte

    Registriert seit:
    27. August 2005
    Beiträge:
    535
    Probleme haben sich gelöst.

    --> Thread kann geschlossen bzw. gelöscht werden.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen