[PHP5] Datei Upload mit dem Browser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] Datei Upload mit dem Browser

    Einen wunderschönen guten morgen und frohe Weihnachten.

    Bisher habe ich mich noch nciht damit beschäftigt wie man Dateien über des Browsers hochlädt. Aber jetzt benötige ich dieses Feature für ein kleines Projekt. Was ich erreichen möchte ist, das ich über ein Formular ein paar Einträge in eine MySQL Datenbank machen lasse und er gleichzeitig zwei Bilddatein hochlädt (es sind immer zwei, nie mehr oder weniger und immer jpg). Diese Bilddatein soll er dann automatisch umbennen und zwar vergibt er beim speichern der Daten in der MySQL Tabelle automatisch eine einmalige ID. Die beiden Bilddatein sollen nun folgendermaßen automatisch umbenannt werden:

    [Datensatzt-ID]-1.jpg
    [Datensatzt-ID]-2.jpg

    Also das mit dem Formular ist ja relativ einfach (für die Daten in die Datenbank):

    Formular:
    Code:
    <form method="post" action="meldung.php">
    <table>
    <tr>
    <td>Bottername:</td>
    <td><input type="text" name="botter"></td>
    </tr>
    <tr>
    <td>Opfername:</td>
    <td><input type="text" name="opfer"></td>
    </tr>
    </table>
    <input type="submit"> 
    </form>
    Verarbeitung:
    PHP-Code:
    $bot $_POST[botter]; 
    $opfer $_POST[opfer]; 

    $insert mysql_query("INSERT INTO botter 
    (bot, opfer, time) 
    VALUES 
    ('
    $bot', '$opfer', '".time()."') ")
    or die(
    mysql_error());

    echo 
    "Botter wurden gespeichert."
    Aber wie gesagt bei der Aktion mit dem Dateiupload und der Dateiumbennung bräucht ich mal Hilfe.


    Vielen Dank im Vorraus und noch ein schönes Weihnachtsfest und ein guten Rutsch ins neue Jahr

    Markus"Laire"Bodmann


    EDIT

    Den Eintrag im Formular für den Dateiupload habe ich nun schon:

    Code:
    <form method="post" enctype="multipart/form-data" action="meldung.php">
    <table>
    <tr>
    <td>Bottername:</td>
    <td><input type="text" name="botter"></td>
    </tr>
    <tr>
    <td>Opfername:</td>
    <td><input type="text" name="opfer"></td>
    </tr>
    <tr>
    <td>Bild 1:</td>
    <td><input name="pica" type="file"></td>
    </tr>
    
    </table>
    <input type="submit"> 
    
    </form>


    EDIT2

    So gehts schonmal nicht:

    PHP-Code:

    $uploaddir 
    '/var/www/images/';

      
    mysql_connect("localhost","*****","******");
      
    mysql_select_db("bots");

    $bot $_POST[botter]; 
    $opfer $_POST[opfer]; 

    $insert mysql_query("INSERT INTO botter 
    (bot, opfer, time) 
    VALUES 
    ('
    $bot', '$opfer', '".time()."') ")
    or die(
    mysql_error());

    move_uploaded_file($_FILES['pica']['tmp_name'], $uploaddir $_FILES['pica']['name']);
    move_uploaded_file($_FILES['picb']['tmp_name'], $uploaddir $_FILES['picb']['name']);

    echo 
    "Botter wurden gespeichert."
    Zuletzt geändert von Laire; 26.12.2004, 10:57.

  • #2
    Laos da das ganze nicht so klappt, habe ich mal die Meldungseinstellung von php.net mit eingebaut:

    PHP-Code:
    $uploaddir '/var/www/images/';

      
    mysql_connect("localhost","*****","*****");
      
    mysql_select_db("bots");

    $bot $_POST[botter]; 
    $opfer $_POST[opfer]; 

    $insert mysql_query("INSERT INTO botter 
    (bot, opfer, time) 
    VALUES 
    ('
    $bot', '$opfer', '".time()."') ")
    or die(
    mysql_error());

    print 
    "<pre>";
    if (
    move_uploaded_file($_FILES['pica']['tmp_name'], $uploaddir $_FILES['pica']['name'])) {
       print 
    "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
       
    print_r($_FILES);
    } else {
       print 
    "Possible file upload attack!  Here's some debugging info:\n";
       
    print_r($_FILES);
    }

    echo 
    "Botter wurden gespeichert.";

    mysql_close(); 

    Als Meldung bekomme ich jetzt nun folgendes auf meinen Bildschirm:

    Code:
    Possible file upload attack!  Here's some debugging info:
    Array
    (
        [pica] => Array
            (
                [name] => bannergb.gif
                [type] => image/gif
                [tmp_name] => /tmp/phptjSbLv
                [error] => 0
                [size] => 27497
            )
    
    )
    Botter wurden gespeichert.

    Kommentar


    • #3
      Re: [PHP5] Datei Upload mit dem Browser

      Code:
      <form method="post" action="meldung.php">
      Da fehlt was....

      Lies nochmal im PHP-Handbuch nach!
      hopka.net!

      Kommentar


      • #4
        Oh Sorry war oben noch die alte Version, habe aber:

        enctype="multipart/form-data"

        schon eingefügt. Ändere es oben. Problem besteht trotzdem.

        Kommentar


        • #5
          lass dir mal einzeln
          $_FILES['pica']['tmp_name']
          und
          $uploaddir . $_FILES['pica']['name']
          ausgeben

          Kommentar


          • #6
            PHP-Code:
            $uploaddir $_FILES['pica']['name'])) 
            Da fehlt ein slash

            Kommentar


            • #7
              PHP-Code:
              $uploaddir '/var/www/images/'
              warum?

              Kommentar


              • #8
                Original geschrieben von penizillin
                PHP-Code:
                $uploaddir '/var/www/images/'
                warum?
                hat er übersehen
                [color=blue]MfG Payne_of_Death[/color]

                [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                [color=red]Merke:[/color]
                [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                Murphy`s Importanst LAWS
                Jede Lösung bringt nur neue Probleme
                Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                Kommentar

                Lädt...
                X