kostenloser Webspace werbefrei: lima-city


Bilder Upload Script

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hi !

    Ich habe hier ein PHP Upload Script:

    <?php
    
    if ($_POST['submit']=='Upload') {
    
    $filename = $_FILES[userfile][name];
    $filetype = $_FILES[userfile][type];
    
    function upload_file() {
    
    /****************
    *****************
    ***DATEIUPLOAD***
    ******START******
    *****************
    ****************/
    
    $file_temp = $_FILES[userfile][tmp_name];
    $random = rand(1111111111, 9999999999);
    $filename = $_FILES[userfile][name];
    
    echo $filetype;
    
    move_uploaded_file($_FILES[userfile][tmp_name], "uploaded/$random"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!HIER WIRD DER RELATIVE PFAD ANGEGEBEN (Pfad/$random) (ZUM BILDERVERZEICHNIS)
    
    echo "Die Datei wurde erfolgreich hochgeladen!<br><br />";
    
    echo "<img src=\"uploaded/$random\" /><br><br>";
    
    $filepath = "http://davy.lima-city.de/uploaded/$random"; //!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER ABSOLUTE PFAD ANGEGEBEN WERDEN (ZUM BILDERVERZEICHNIS)
    $htmlpath = "http://davy.lima-city.de/uploaded/".$random.".htm"; //!!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER ABSOLUTE PFAD ANGEGEBEN WERDEN (ZUM BILDERVERZEICHNIS)
    
    $n = "
    Hier ist der Text, der auf der Vorschauseite angzeigt wird.<br />
    <img src=\"$random\" height=\"200\" />";
    $handle = fopen("uploaded/".$random.".htm","w"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER RELATIVE PFAD HIN (ZUM BILDERVERZEICHNIS)
    fputs($handle,$n);
    fclose($handle);
    
    echo "Du findest dein Bild unter:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"$filepath\" /><br /><br />Eine Seite mit Infos findest du hier:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"$htmlpath\" /><br /><br />Bild in HTML-Seite einbetten mit Link zur Vorschauseite:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"<a href='$htmlpath' target='_blank'><img src='$filepath' height='200' /></a>\" />";
    //TEXT, DER ANGEZEIGT WIRD, WENN DIE DATEI HOCHGELADEN WURDE (OBEN)
    
    
    /****************
    *****************
    *****************
    *******ENDE******
    *****************
    *****************
    ****************/
    
    };
    
    
    if ($_FILES['userfile']['size']>'50000000' or $_FILES['userfile']['size']=='0') { echo "Die Datei ist leider zu gross oder du hast keine Datei ausgewaehlt!"; }
    elseif (!($filetype=='image/jpeg' or $filetype=='image/gif' or $filetype=='image/bmp' or $filetype=='image/png' or $filetype=='image/tiff' or $filetype=='image/x-portable-bitmap' or $filetype=='image/pjpeg')) { echo "Dieser Dateityp ist nicht erlaubt!"; }
    else {
    
    upload_file();
    
    };
    };
    
    ?>


    Ist es möglich, die IP des Benutzers bei jedem Bildupload mitzuspeichern. Wenn ja, wo speichert man die dann normalerweise?

    Wäre sehr dankbar über eure Antworten !
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hast du schon eine MySQL-Datenbank?

    Falls ja, funktioniert das so:

    <?php
    
    if ($_POST['submit']=='Upload') {
    //EINSTELLUNGEN
    $mysqlhost = 'mysql.lima-city.de'; //bleibt bei Lima-city so
    $mysqluser = 'USER'; //Dein MySQL-Username
    $mysqlpass = ''; //Dein MySQL-Passwort
    $mysqldaba = 'db_'; //Deine MySQL-Datenbank
    
    
    
    $mysqltabl = 'upload';
    $verbindung = mysql_connect($mysqlhost, $mysqluser, $mysqlpass);
    mysql_select_db($mysqldaba, $verbindung);
    
    $ip1 = $_SERVER['REMOTE_ADDR'];
    $ip = eregi_replace(", 127.0.0.1", "", $ip1);
    
    $filename = $_FILES[userfile][name];
    $filetype = $_FILES[userfile][type];
    
    function upload_file() {
    
    /****************
    *****************
    ***DATEIUPLOAD***
    ******START******
    *****************
    ****************/
    
    $file_temp = $_FILES[userfile][tmp_name];
    $random = rand(1111111111, 9999999999);
    $filename = $_FILES[userfile][name];
    
    echo $filetype;
    
    move_uploaded_file($_FILES[userfile][tmp_name], "uploaded/$random"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!HIER WIRD DER RELATIVE PFAD ANGEGEBEN (Pfad/$random) (ZUM BILDERVERZEICHNIS)
    
    echo "Die Datei wurde erfolgreich hochgeladen!<br><br />";
    
    echo "<img src=\"uploaded/$random\" /><br><br>";
    
    $filepath = "http://davy.lima-city.de/uploaded/$random"; //!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER ABSOLUTE PFAD ANGEGEBEN WERDEN (ZUM BILDERVERZEICHNIS)
    $htmlpath = "http://davy.lima-city.de/uploaded/".$random.".htm"; //!!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER ABSOLUTE PFAD ANGEGEBEN WERDEN (ZUM BILDERVERZEICHNIS)
    
    $n = "
    Hier ist der Text, der auf der Vorschauseite angzeigt wird.<br />
    <img src=\"$random\" height=\"200\" />";
    $handle = fopen("uploaded/".$random.".htm","w"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER RELATIVE PFAD HIN (ZUM BILDERVERZEICHNIS)
    fputs($handle,$n);
    fclose($handle);
    
    echo "Du findest dein Bild unter:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"$filepath\" /><br /><br />Eine Seite mit Infos findest du hier:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"$htmlpath\" /><br /><br />Bild in HTML-Seite einbetten mit Link zur Vorschauseite:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"<a href='$htmlpath' target='_blank'><img src='$filepath' height='200' /></a>\" />";
    //TEXT, DER ANGEZEIGT WIRD, WENN DIE DATEI HOCHGELADEN WURDE (OBEN)
    
    $sql = "INSERT INTO ".$mysqltabl." (ID, IP) VALUES ('".$random."', '".$ip."')";
    mysql_query($sql);
    
    
    /****************
    *****************
    *****************
    *******ENDE******
    *****************
    *****************
    ****************/
    
    };
    
    
    if ($_FILES['userfile']['size']>'50000000' or $_FILES['userfile']['size']=='0') { echo "Die Datei ist leider zu gross oder du hast keine Datei ausgewaehlt!"; }
    elseif (!($filetype=='image/jpeg' or $filetype=='image/gif' or $filetype=='image/bmp' or $filetype=='image/png' or $filetype=='image/tiff' or $filetype=='image/x-portable-bitmap' or $filetype=='image/pjpeg')) { echo "Dieser Dateityp ist nicht erlaubt!"; }
    else {
    
    upload_file();
    
    };
    };
    
    ?>


    Vorher loggst du dich in PHPMyAdmin ein (phpmyadmin.lima-city.de), klickst links auf deine Datenbank, klickst dann oben auf SQL und gibst in das Feld ein:

    CREATE TABLE `upload` (
    `ID` TEXT NOT NULL ,
    `IP` TEXT NOT NULL
    ) ENGINE = MYISAM

    dann klickst du auf OK.
    Dann änderst du hier in dem Script auch noch den Username, das Passwort und die Datenbank.
    Das findest du unter Verwaltung->Addons->Datenbank-Zugang nachdem du dir eine Datenbank ersteigert hast.


    Beitrag zuletzt geändert: 14.3.2009 14:24:51 von cookies
  4. Eine MySQL-Datenbank ist für so eine Mini-Aufgabe eigentlich überdimensioniert. ;)

    Warum nicht einfach in einer kleinen Textdatei? (kannst du ja unter $random . ".txt" abspeichern) Dann noch chmod richtig setzen, damit nicht jeder die IP auslesen kann und fertig.

    In deinem Script solltest du noch eine Routine einbauen, die überprüft, ob die ID in $random vielleicht schon vergeben ist...
  5. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    cookies schrieb:
    Hast du schon eine MySQL-Datenbank?

    Falls ja, funktioniert das so:

    <?php
    
    if ($_POST['submit']=='Upload') {
    //EINSTELLUNGEN
    $mysqlhost = 'mysql.lima-city.de'; //bleibt bei Lima-city so
    $mysqluser = 'USER'; //Dein MySQL-Username
    $mysqlpass = ''; //Dein MySQL-Passwort
    $mysqldaba = 'db_'; //Deine MySQL-Datenbank
    
    
    
    $mysqltabl = 'upload';
    $verbindung = mysql_connect($mysqlhost, $mysqluser, $mysqlpass);
    mysql_select_db($mysqldaba, $verbindung);
    
    $ip1 = $_SERVER['REMOTE_ADDR'];
    $ip = eregi_replace(", 127.0.0.1", "", $ip1);
    
    $filename = $_FILES[userfile][name];
    $filetype = $_FILES[userfile][type];
    
    function upload_file() {
    
    /****************
    *****************
    ***DATEIUPLOAD***
    ******START******
    *****************
    ****************/
    
    $file_temp = $_FILES[userfile][tmp_name];
    $random = rand(1111111111, 9999999999);
    $filename = $_FILES[userfile][name];
    
    echo $filetype;
    
    move_uploaded_file($_FILES[userfile][tmp_name], "uploaded/$random"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!HIER WIRD DER RELATIVE PFAD ANGEGEBEN (Pfad/$random) (ZUM BILDERVERZEICHNIS)
    
    echo "Die Datei wurde erfolgreich hochgeladen!<br><br />";
    
    echo "<img src=\"uploaded/$random\" /><br><br>";
    
    $filepath = "http://davy.lima-city.de/uploaded/$random"; //!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER ABSOLUTE PFAD ANGEGEBEN WERDEN (ZUM BILDERVERZEICHNIS)
    $htmlpath = "http://davy.lima-city.de/uploaded/".$random.".htm"; //!!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER ABSOLUTE PFAD ANGEGEBEN WERDEN (ZUM BILDERVERZEICHNIS)
    
    $n = "
    Hier ist der Text, der auf der Vorschauseite angzeigt wird.<br />
    <img src=\"$random\" height=\"200\" />";
    $handle = fopen("uploaded/".$random.".htm","w"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!HIER MUSS DER RELATIVE PFAD HIN (ZUM BILDERVERZEICHNIS)
    fputs($handle,$n);
    fclose($handle);
    
    echo "Du findest dein Bild unter:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"$filepath\" /><br /><br />Eine Seite mit Infos findest du hier:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"$htmlpath\" /><br /><br />Bild in HTML-Seite einbetten mit Link zur Vorschauseite:<br /><input type=\"text\" size=\"50\" onclick=\"this.select();\" readonly value=\"<a href='$htmlpath' target='_blank'><img src='$filepath' height='200' /></a>\" />";
    //TEXT, DER ANGEZEIGT WIRD, WENN DIE DATEI HOCHGELADEN WURDE (OBEN)
    
    $sql = "INSERT INTO ".$mysqltabl." (ID, IP) VALUES ('".$random."', '".$ip."')";
    mysql_query($sql);
    
    
    /****************
    *****************
    *****************
    *******ENDE******
    *****************
    *****************
    ****************/
    
    };
    
    
    if ($_FILES['userfile']['size']>'50000000' or $_FILES['userfile']['size']=='0') { echo "Die Datei ist leider zu gross oder du hast keine Datei ausgewaehlt!"; }
    elseif (!($filetype=='image/jpeg' or $filetype=='image/gif' or $filetype=='image/bmp' or $filetype=='image/png' or $filetype=='image/tiff' or $filetype=='image/x-portable-bitmap' or $filetype=='image/pjpeg')) { echo "Dieser Dateityp ist nicht erlaubt!"; }
    else {
    
    upload_file();
    
    };
    };
    
    ?>


    Vorher loggst du dich in PHPMyAdmin ein (phpmyadmin.lima-city.de), klickst links auf deine Datenbank, klickst dann oben auf SQL und gibst in das Feld ein:

    CREATE TABLE `upload` (
    `ID` TEXT NOT NULL ,
    `IP` TEXT NOT NULL
    ) ENGINE = MYISAM

    dann klickst du auf OK.
    Dann änderst du hier in dem Script auch noch den Username, das Passwort und die Datenbank.
    Das findest du unter Verwaltung->Addons->Datenbank-Zugang nachdem du dir eine Datenbank ersteigert hast.



    Ja, ich habe eine Datenbank !

    Danke für deine Beschreibung, nur leider geht es noch nicht ! Nach dem Hochladen wird in der Datenbank nichts gespeichert !

    Geht so was?

    EDIT: Jetzt geht es doch ! Habe was kleines geändert. Nur die IP wird nicht gespeichert. Also das Feld in der DB ist leer

    Beitrag zuletzt geändert: 14.3.2009 15:08:22 von davy
  6. davy schrieb:
    Nur die IP wird nicht gespeichert. Also das Feld in der DB ist leer


    Weil die Variable $ip außerhalb der Funktion upload_file() definiert wird, ist sie innerhalb der Funktion nicht verfügbar.

    Du kannst jetzt entweder den Teil
    $ip1 = $_SERVER['REMOTE_ADDR'];
    $ip = eregi_replace(", 127.0.0.1", "", $ip1);


    in die Funktion verschieben, oder innerhalb der Funktion die Zeile
    global $ip;

    einbauen...
  7. gr00vy schrieb:
    davy schrieb:
    Nur die IP wird nicht gespeichert. Also das Feld in der DB ist leer


    Weil die Variable $ip außerhalb der Funktion upload_file() definiert wird, ist sie innerhalb der Funktion nicht verfügbar.

    Du kannst jetzt entweder den Teil
    $ip1 = $_SERVER['REMOTE_ADDR'];
    $ip = eregi_replace(", 127.0.0.1", "", $ip1);


    in die Funktion verschieben, oder innerhalb der Funktion die Zeile
    global $ip;

    einbauen...


    Ja, aber dann müsste es wirklich gehen.
  8. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Super, funktioniert !
  9. 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!