kostenloser Webspace werbefrei: lima-city


Benutzerdefiniertes Formular zur Uebermittlung von Daten

lima-cityForumDie eigene HomepageHomepage Allgemein

  1. Autor dieses Themas

    theworldlywisdoms

    theworldlywisdoms hat kostenlosen Webspace.

    Hi Leute!

    Welche eleganten Moeglichkeiten habe ich, um folgendes zu realisieren:

    Der Besucher der Seite kann Informationen sowie ein Bild an die Homepage (also mich) uebermitteln. Dazu brauche ich eine Art Formular mit notwendigen Feldern und eben einer Moeglichkeit ein Bild hochzuladen. Eine CAPTCHA Ueberpruefung soll auch stattfinden. Als naechstes soll ich von meiner Homepage informiert werden, dass neue Inhalte eingetroffen sind. Die weitere Ueberpruefung und Verarbeitung kann manuell erfolgen.

    Welche Vorgehensweise bietet sich hier an?

    Gruesse
    Sebastian
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Kombination aus

    1. HTML
    Formular zum Eintragen der Nachricht (info) und Auswählen der Upload-Datei (Bild)
    ... für Formular mit Upload braucht man im FORM Tag ein
    enctype="multipart/form-data"

    paar grundlegende Infos zum Upload per Formular siehe z.B. hier selfhtml

    Senden nur mit Captcha (z.B. Re-Captcha oder andere)

    2. PHP
    a) Eingaben aus Formular überprüfen (User Berechtigung, ist Datei ein Bild, etc.)
    b) wenn Ok, dann gesendete Daten speichern (Texte,Datum, etc. in MySQL und Bild in Verzeichnis)
    c) Info-Mail an Andmin senden, evtl. auch gleich mit Link zur Überprüfungs-Seite

    also User-Bereich, wo man (nach Login) neue Daten senden (hochladen) kann
    und Admin-Bereich, wo Du diese Daten überprüfen und freischalten bzw. löschen kannst

    insgesamt würde ich das Thema unter PHP ansiedeln,
    ... also @Moderatoren evtl verschieben ins PHP-Forum ?
  4. n******t

  5. Datei-Upload (PHP) mit Formular (HTML)

    Datei: test1.php


    <?php 
    // ----------------------------------------------------------------- 
    header("Content-Type: text/html; charset=utf-8"); 
    date_default_timezone_set('Europe/Berlin');
    
    $timestamp = time(); 
    $max_bytes = (1024*1024); 
    $uploaddir = 'uploads'; 
    $user_name = 'testuser';  
    
    ## $run_file = 'test1.php'; 
    $run_file = $_SERVER['PHP_SELF']; 
    
    // --------------------------------------------- 
    
    $formular1 = '
    <form action="'.$run_file.'" method="post" enctype="multipart/form-data">
       Titel: <input type="text" name="titel" value="" size="46" maxlength="100" /> <br /> 
       <input type="hidden" name="MAX_FILE_SIZE" value="'.$max_bytes.'" /> 
       Datei: <input type="file" name="datei" size="36" maxlength="200" /> <br /> 
       Info: <input type="text" name="info" value="" size="46" maxlength="150" /> <br /> 
       <input type="hidden" name="tstp" value="'.$timestamp.'" /> 
       <input type="hidden" name="user" value="'.$user_name.'" /> 
       OK: &nbsp;&nbsp; <input type="submit" name="go" value="Hochladen" />
    </form>
    '; 
    
    // --------------------------------------------- 
    
    function print_debug($var) { 
    
    print "<br />\n"; 
    print "<br />\n"; 
    print "<pre style=\"margin:4px; padding:6px; background:#DEDEDE; text-align:left;\">\n"; 
    print_r($var); 
    print "</pre>\n";
    print "<br />\n"; 
    print "<br />\n"; 
    
    }
    
    // ----------------------------------------------------------------- 
    
    
    print "<br />\n";
    print "<br /> --- <a href=\"".$run_file."\">HOME</a> --- \n";
    print "<br />\n";
    print "<br />\n";
    
    // ----------------------------------------------------------------- 
    
    
    if (isset($_FILES['datei']['size']) && !empty($_FILES['datei']['size'])) { 
    
    // -------------------------------------
    if($_FILES['datei']['size'] < $max_bytes) { 
    
    $uploaddir = trim($uploaddir,'/'); 
    
    if (!is_dir($uploaddir)) { mkdir($uploaddir,0755); } 
    
    $dateiname = basename($_FILES['datei']['name']); 
    $zieldatei = $uploaddir .'/'. $dateiname;
    
    // ------------------------------- 
    if (!file_exists($zieldatei)) { 
    
    move_uploaded_file($_FILES['datei']['tmp_name'], $zieldatei);
    
    print "<br />\n";
    print "<br />Die Datei wurde erfolgreich hochgeladen: ".$uploaddir."/<a href=\"".$zieldatei."\" target=\"_blank\">".$dateiname."</a>\n";
    print "<br />\n"; 
    print "<br />Titel: ".$_POST['titel']."\n"; 
    print "<br />Name:  ".$dateiname."\n"; 
    print "<br />Path:  ".$uploaddir."\n"; 
    print "<br />Type:  ".$_FILES['datei']['type']."\n"; 
    print "<br />Size:  ".$_FILES['datei']['size']."\n"; 
    print "<br />Info:  ".$_POST['info']."\n"; 
    print "<br />Time:  ".$_POST['tstp']." --- ". date('Y-m-d (H:i:s)',$_POST['tstp']) ."\n"; 
    print "<br />User:  ".$_POST['user']."\n"; 
    print "<br />\n"; 
    
    // ------------------------------- 
    }
    else { 
    
    print "<br />\n";
    print "<br />Die Datei ist bereits vorhanden: <a href=\"".$zieldatei."\" target=\"_blank\">".$zieldatei."</a>\n";
    print "<br />\n"; 
    unset($_FILES); 
    }
    // ------------------------------- 
    
    // -------------------------------------
    }
    else { 
    print "<br />Das Bild darf nicht gr&ouml;&szlig;er als 1 MB sein.\n"; 
    unset($_FILES); 
    }
    // -------------------------------------
    
    print "<hr />\n"; 
    print "<br />#### DEBUG ####\n"; 
    print_debug($_FILES); 
    print "<br />\n"; 
    print "<br />\n"; 
    
    
    // ----------------------------------------------------------------- 
    } 
    else { 
    
    print "<br />\n"; 
    print "<br />\n"; 
    
    print $formular1; 
    
    print "<br />\n"; 
    print "<br />\n"; 
    
    } 
    // ----------------------------------------------------------------- 
    
    
    print "<br />\n"; 
    print "<br />\n"; 
    print "<br />\n"; 
    
    
    // --------------------------------------------- 
    ?>



    Features
    + Formular zur Eingabe: Titel, Datei-Auswahl, Info
    + Hochgeladene Datei im Ordner 'uploads' Speichern
    + Ausgabe wichtiger Parameter / Variablen (DEBUG)


    TO-DO:
    + Zusatz-Infos zurm Upload speichern (Titel, Info, Time, User, ...)
    + Unique Dateiname für Upload z.B.: md5 (name+time+user)
    + nur bestimmte Datei-Typen zulassen (z.B.: nur .jpg .gif .png)
    + .....

  6. Als Formular würde ich ein sogenanntes Affenformular verwenden.
    Der Vorteil eines solchen Formulars liegt darin, dass nur die Felder neu ausgefüllt werden müssen,
    die falsche Eingaben hatten.
    Fehlerhafte Eingaben passieren ja recht häufig.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!