bildupload in datenbank

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

  • bildupload in datenbank

    hallo cracks,

    habe mich schon im forum umgeschaut und auch schon vieles ausprobiert, habe aber leider immer noch keine lösung gefunden.
    ich möchte per formular ein newsscript schreiben.
    es wird eine überschrift, eine unterüberschrift, text und auch ein bild hochgeladen.
    beim bild versage ich aber.

    hier mein eingabeformular:
    PHP-Code:
    /******************************************************************
    *    Formular zum Anlegen neuer News
    *    von:    index.php    
    *    zu:        
    ******************************************************************/


    //  ***** Einfügen der DB-Verbindung *****
            
    require_once("./inc/connect.cfg");

    //    ***** Datum *****
            
    $date date("d.m.Y");
            
    //  ***** SQL-Befehl zum Auswählen aus DB Tabelle " " *****
            
    $sql_select "SELECT * FROM newsarchiv WHERE newsid='newsid'";

    //  ***** Absetzen des Befehls für Auswahl *****
            
    $erg_select mysql_db_query($db$sql_select); 
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <!-- Formular zum Bearbeiten der News-Einträge-->
    <form name="newsupload" method="post" action="news_insert.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="2000000"> <!-- max. Grösse auf 2 MB begrenzt -->
    <table width="400" border="0" cellspacing="0" cellpadding="0">
    <tr valign="top">
    <td width="180">Datum:</td>
    <td width="220">
    <?php echo $date; ?>
    </td>
    </tr>
    <tr valign="top">
    <td width="180">
    <p>&Uuml;berschrift:</p>
    </td>
    <td width="220">
    <input type="text" name="headline" size="66">
    </td>
    </tr>
    <tr valign="top">
    <td width="180">Unter&uuml;berschrift:</td>
    <td width="220">
    <input type="text" name="subtitle" size="66">
    </td>
    </tr>
    <tr valign="top">
    <td width="180">Text</td>
    <td width="220">
    <textarea name="content" rows="10" cols="50" wrap="VIRTUAL"></textarea>
    </td>
    </tr>
    <tr valign="top">
    <td width="180">Bild:</td>
    <td width="220">
    <input type="file" name="picture" size="45">
    </td>
    </tr>
    <tr valign="top">
    <td width="180">aktiv:</td>
    <td width="220">
    <input type="radio" name="status" value="aktiv" checked>
    </td>
    </tr>
    <tr valign="top">
    <td width="180">inaktiv:</td>
    <td width="220">
    <input type="radio" name="status" value="inaktiv">
    </td>
    </tr>
    <tr valign="top">
    <td width="180">
    <input type="submit" name="upload" value="News senden">
    </td>
    <td width="220">
    <input type="reset" name="reset" value="reset">
    </td>
    </tr>
    <tr valign="top">
    <td colspan="2"><a href="index.php">zur&uuml;ck zum Auswahlmen&uuml;</a></td>

    <tr valign="top">
    <td width="180">&nbsp; </td>
    <td width="220">&nbsp; </td>

    </table>
    </form>
    </body>
    </html>

    hier mein upload-script:
    PHP-Code:
    /******************************************************************
    *    Anlegen neuer News
    *    von:    news_form.php    
    *    zu:        news_form.php
    ******************************************************************/
            
    $date;
            
    $headline;
            
    $subtitle;
            
    $content nl2br($content);
            
    $status;

            

    //  ***** Einfügen der DB-Verbindung *****
            
    require_once("./inc/connect.cfg");

    //  ***** SQL-Befehl zum Schreiben in DB Tabelle "newsarchiv" *****
            
    $sql_insert "INSERT INTO newsarchiv (headline, subtitle, content, status, date)";
            
    $sql_insert .= " VALUES ('$headline', '$subtitle', '$content', '$status', '$date')";

    //  ***** Absetzen des Befehls zum Schreiben *****
            
    $erg_insert mysql_db_query($db$sql_insert);
            
    //     ***** Ausgabe der ID des letzten Insert-Befehls *****
            
    $lastid mysql_insert_id($verb);

    //     ***** Modifizieren des Bildes *****

            
    echo "TEMP BILDPFAD AUF SERVER: ".$picture."<br>";
            echo 
    "BILDNAME: ".$picture_name."<br>";
            echo 
    "BILDGRÖSSE: ".$picture_size." BYTES<br>";
            echo 
    "BILDTYP: ".$picture_type."<br>";

            if (
    $picture == "")
            {
            
    $datei_name "";
            }
            else 
            {
            
    $datei_name $picture.".jpg";
            }
            

            
    $bx="400";                                                         // neue Breite angeben aus formular
            
    $upload_path "/home/www/web45/html/test/news_pics";           // hier dein Bildverzeichnis
            
    copy($picture"$upload_path/$datei_name");
    //        move_uploaded_file($picture_name, "$upload_path/$datei_name");    // verschiebt Bild von an 
            
    $bild imagecreatefromjpeg("$upload_path/$datei_name");        // neues Bild im jpeg-Format wird erstellt
            
    $bo imagesx($bild);                                            // ermitteln der Bildbreite
            
    $ho imagesy($bild);                                            // ermitteln der Bildhöhe
            
    $verhaeltnis $bo/$bx;                                         // Verhaeltnis berechnen
            
    $by $ho/$verhaeltnis;                                         // Hoehe berechnen (proportional)
            
            
    $bildneu=imagecreatetruecolor($bx$by);
            
    imagecopyresampled($bildneu,$bild,0,0,0,0,$bx,$by,$bo,$ho);
            
    imagejpeg($bildneu,"$upload_path/$datei_name",100);
            
    imagedestroy($bild);
        
    //  ***** SQL-Befehl zum Schreiben des Bildes in DB Tabelle "newsarchiv" *****
            
    $sql_update_picture "UPDATE newsarchiv SET picture='$datei_name' WHERE newsid='$lastid'";

    //  ***** Absetzen des Befehls zum Schreiben des Bildes in DB *****
            
    $erg_update mysql_db_query($db$sql_update_picture);    

    //  ***** Aufrufen der Seite "news_overview.php" *****
            
    header("LOCATION: news_overview.php"); 
    aber jetzt kommt immer die fehlermeldung:

    open_basedir restriction in effect. File is in wrong directory ... line57
    im upload-script.
    woran liegt das?
    besten dank schon jetzt für eure hilfe.

  • #2
    Welches ist die line 57???
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      die in upload-scirpt:
      PHP-Code:
       copy($picture"$upload_path/$datei_name"); 

      Kommentar


      • #4
        Dann würde ich mal glatt sagen, dass er mit dem Uploadpfad probleme hat.
        PHP-Code:
        $upload_path "/home/www/web45/html/test/news_pics"
        Änderen den Uploadpath zum test einmal auf
        PHP-Code:
        $upload_path "test/news_pics"
        Und dann sag bitte bescheid was passiert...
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          Die Art und Weise wie Du das Bild speicherst ist wohl etwas veraltet. Benutz mal das $_FILES array und dein base_dir muss vorhanden sein. Das kannst Du in der phpinfo() checken.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            jetzt kommt die fehlermeldung:
            PHP-Code:
            Warningopen_basedir restriction in effectFile is in wrong directory in gleicher zeile wie vorher ("copy..."

            Kommentar


            • #7
              versuch mal das hier:

              copy($_FILES['picture']['tmp_name'], "$upload_path/$datei_name");
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                gleiche fehlermeldung wie zuvor

                Kommentar


                • #9
                  Was sagt denn Deine phpinfo() zu open_basedir ?
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    local value: /home/www/web45
                    master value: no value

                    Kommentar


                    • #11
                      Ich nehme mal an web45 ist Dein home.
                      darunter gibts ein Verzeichnis html?
                      leg mal ein verzeichnis phptmp auf gleicher ebene wie html
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        alles beim alten, gleiche fehler

                        Kommentar


                        • #13
                          sorry, phptmp muss chmod 777 haben glaube ich... wenn das nicht die Lösung ist weiss ich nicht weiter.
                          Beantworte nie Threads mit mehr als 15 followups...
                          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                          Kommentar


                          • #14
                            kann es sein, dass du (wie z.b. ich) mit der PHP Version 4.0.6 o.ä. arbeitest und nicht $_FILES sondern $HTTP_POST_FILES['namedesinputfeldes'] verwenden musst ?

                            bringt es was, wenn du versuchst den file mit:
                            $theuploadfile = $HTTP_POST_FILES['namedesinputfeldes'] ;

                            if(!(move_uploaded_file($theuploadfile['tmp_name'], $uploaddir.strtolower(basename($theuploadfile['name'])))))
                            { echo "Fehler"; }
                            else echo "OK";

                            hochzuladen ?

                            Grüsse
                            cb
                            Hans Matthöfers Widerspruch zur Expertenerkenntnis: Künstliche Intelligenz ist besser als natürliche Dummheit.

                            Kommentar


                            • #15
                              nein, meine php-version ist eine neuere und der rest hat auch nicht geklappt.

                              hab jetzt die zeile copy..
                              mit
                              PHP-Code:
                              move_uploaded_file($picture"$upload_path/$datei_name"); 
                              ersetzt.
                              jetzt kommen die fehler:

                              Warning: Unable to create '/home/www/web45/html/test/news_pics//tmp/phpcLC5vC.jpg': No such file or directory in /home/www/web45/html/test/news_insert.php on diese zeile move_up..


                              Warning: Unable to move '/tmp/phpcLC5vC' to '/home/www/web45/html/test/news_pics//tmp/phpcLC5vC.jpg' in /home/www/web45/html/test/news_insert.php on diese zeile move_up..
                              Zuletzt geändert von whoda; 28.02.2003, 11:21.

                              Kommentar

                              Lädt...
                              X