Ankündigung

Einklappen
Keine Ankündigung bisher.

brauche kleine hilfe bei php script

Einklappen

Neue Werbung 2019

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

  • brauche kleine hilfe bei php script

    Hi,

    also ich habe ein schönes deutsches Bild in Datenbank Upload Script gefunden HIER:

    http://www.it-academy.cc/content/art...?ID=0000001400


    so kann mir einer sagen wie ich für dieses Script ne UPDATE Fuktion schreibe. Das heißt ich will das Bild ausgeben lassen und gleich darunter wieder ein Uploadformular wo man ein Bild auswählt auf Uploaden klickt und er dann aber keinen neuen Eintrag macht sondern das oben ausgegebene überschreibt.
    Könnte mir das bitte bitte einer zeigen wie das geht. Das Script auf der Seite funzt soweit ich brauche nur noch diese Update fuktion. Das heißt ich setze hier an:

    [image.php]
    PHP-Code:
    <?php
    <?php 

    if (isset($_GET['id'])) { 

    // hier sind die mySQL Daten einzufüllen 
    @mysql_connect("localhost""user""passwort"); 
    @
    mysql_select_db("db_name"); 

    // Daten über das gewünschte Bild aus mySQL lesen 
    $sql "SELECT * FROM files WHERE id = '".$_GET['id']."' LIMIT 1"
    $result = @mysql_query($sql); 
    $row mysql_fetch_object($result); 

    // Prüfen, ob die gewählte Datei tatsächlich ein Bild ist 
    if (strpos($row->filetype"image") !== false) { 

    // Dem Browser mitteilen, dass jetzt ein Bild kommt 
    header("Content-type: " $row->filetype); 

    // Daten dekodieren und an den Browser senden 
    echo base64_decode($row->filecontent); 


    exit; 


    ?> ?>
    [img]image.php?id=2[/img]

    //Und jetze wieder ein Uploadformular mit der Funktion das eben ausgegebene zu überschreiben.

    Danke im Vorraus

  • #2
    1. bitte lern die passenden tags zu enutzen:
    für php bzw php/html -> [php]-tags!!!
    2. was erwartest du? wenn ich mir das anschaue, sieht das für mcih so aus, du hast ein script gefunden und willst es erweitert haben, dann bist du hier falsch, wenn du jemand suchst der dir ne lösung schreibt, dann poste es unter gesuche.
    Falls du selbst php kannst, definiere doch mal genauer dein problem woran es hängt.

    mfg
    robo47
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      Sorry wegen den php-tags

      Also wie ich dann da drunter wieder en Upload Formular schreibe weiß ich auch wie das geht aber ich kriege mysql UPDATE Anweisung net hin.........

      die Bilder werden ja dann per ID ausgelsen. Und ich habe versucht das er beim erneuten Uploaden dann diese ID sich nimmt und in der Datenbank das Bild mit der gleichen ID überschreibt aber ich kriegst net hin.

      Kommentar


      • #4
        dann editier mal oben deinen post und mach die [php]-tags rein und poste mal was du bis jetzt an code hast, und was beim update nicht funktioniert.

        mfg
        robo47
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          ok

          das da oben jetze 2 <? nicht beacht hab einen zuviel gesetzt beim posten.

          also da ich noch net so ganz viel Ahnung habe....ich weiß nicht ob du dir die seite schon angeschaut hast von dem Link oben. Ich habe nun also einfach aus der [upload.php] das Formular genommen und unter das

          [img]image.php?id=2[/img]

          kopiert und habe anstatt INSERT INTO...........UPDATE SET...... WHERE ID aber schau selbst

          PHP-Code:
          <?php
          <?php 

          if($_GET['action'] == "upload") { 

          // Auf Fehler überprüfen 
          if ($_FILES['datei']['error'] == UPLOAD_ERR_NO_FILE || $_FILES['datei']['error'] == UPLOAD_ERR_PARTIAL) { 
          // die Datei wurde nicht oder nur teilweise hochgeladen 
          die("Die Datei wurde nicht korrekt hochgeladen. Bitte versuchen Sie es erneut."); 

          } elseif (
          $_FILES['datei']['error'] == UPLOAD_ERR_FORM_SIZE || $_FILES['datei']['error'] == UPLOAD_ERR_INI_SIZE) { 
          // die Datei ist zu groß 
          die("Die hochgeladene Datei ist zu groß."); 

          } else { 
          // die Datei wurde korrekt hochgeladen 

          // hier sind die mySQL Daten einzufüllen 
          @mysql_connect("localhost""root""computer"); 
          @
          mysql_select_db("dat"); 

          // Temporäre Datei schreiben (ist wegen der Lese-Rechte nötig) 
          // und auf die temp-Datei Lese Rechte vergeben 
          move_uploaded_file($_FILES['datei']['tmp_name'], "./tempfile.tmp"); 
          chmod("./tempfile.tmp"0644); 

          // Daten aus Temp-Datei einlesen 
          $zeiger fopen("./tempfile.tmp""rb"); 
          $size $_FILES['datei']['size']; 
          // den Dateiinhalt in $data speichern 
          $data fread($zeiger$size); 
          fclose($zeiger); 

          // Temporäre Datei löschen 
          @unlink("./tempfile.tmp"); 

          // Damit die Datei jetzt in die mySQL Tabelle kann müssen wir sie vorher kodieren: 
          $data base64_encode($data); 

          // Leerzeichen im Dateinamen werden mit einem Unterstrich ersetzt 
          $dateiname str_replace(" ""_"$_FILES['datei']['name']); 

          // Und ab in die mySQL Tabelle... 
          $sql "UPDATE dat SET '".$dateiname."', ".$_FILES['datei']['type']."', '".$data."', '".$size."' WHERE id='".$_GET['id']."'";
          //$sql = "INSERT INTO files VALUES('', '".$dateiname."', '".$_FILES['datei']['type']."', '".$data."', '".$size."')"; 
          @mysql_query($sql); 

          echo 
          "Datei-Upload erfolgreich."
          exit; 


          } else { 
          // Upload-Formular anzeigen 
          echo "<form method=\"post\" action=\"" $PHP_SELF "?action=upload\" enctype=\"multipart/form-data\"> 
          <input type=\"hidden\" name=\"MAX_FILES_SIZE\" value=\"2097152\"> 
          <input type=\"file\" name=\"datei\" maxlength=\"2097152\">
           
          <input type=\"submit\" name=\"submit\" value=\"Uploaden\"> 
          </form>"



          ?> 
          ?>
          ich nehme aber an das man da noch so einiges verändern müsste habe aber leider keine plan was???

          Kommentar


          • #6
            naja das script an sich ist schon bescheiden.

            @mysql_query($sql);
            bitte durch
            mysql_query($sql) or die(mysql_error());
            ersetzen.
            gewöhn dir an, immer bei querys mit mysql_error zu arbeiten, dann siehst du auch ob fehler auftreten.

            mfg
            robo47
            [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
            | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

            Kommentar


            • #7
              gut.

              1. http://www.php-faq.de/q/q-db-blob.html wirst du schon kennen.

              2. das erste was du verändern könntest, wäre auf das move_uploaded_file zu verzichten.
              du kannst auch direkt die temporäre datei mit fopen() lesen und brauchst die datei nicht erst nochmal rumkopieren. du darfst dann auch aufs unlink() verzichten - php löscht die datei nach ausführung der php-datei eh sofort wieder.
              3. die tabelle 'dat' existiert und heißt nicht zufällig 'files' wie beim auskommentierten INSERT INTO ?

              Kommentar


              • #8
                cool jetze bringt er nen Fehler.

                Also ich lasse mir das Bild mit ID 1 ausgeben und wähle ein neues aus und tue es Uploaden dann komt:

                You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Winter.jpg', image/pjpeg', '/9j/4AAQSkZJRgABAgEAYABgAAD/7RBKUGhvdG9zaG9wIDMuMAA' at line 1

                was heißt das?

                Kommentar


                • #9
                  upppss

                  also das erst die tabelle heißt files keine ahnung warum ich sie dat genannt habe also ich habe sie jetze auch files genannt. Es kommt der selbe Fehler wie eben

                  ....

                  Was muss ich da noch ändern ????

                  Kommentar


                  • #10
                    Dummerweise hat UPDATE nicht die gleiche Syntax wie INSERT (http://dev.mysql.com/doc/mysql/de/update.html), und ohne die Tabellenstruktur zu kennen kann ich dir auch nicht weiterhelfen. Etwa so sollte das aussehen:
                    PHP-Code:
                    <?php
                    $sql 
                    "UPDATE dat 
                                   SET name = '
                    $dateiname',
                                           typ = '" 
                    $_FILES['datei']['type'] ."', 
                                           inhalt = '
                    $data',
                                           groesse = 
                    $size,                     
                                   WHERE id=" 
                    $_GET['id']; 
                    ?>
                    name, typ, inhalt und groesse musst du natürlich mit den Attribut-Namen deiner Tabelle ersetzen.
                    Gruss
                    L

                    Kommentar


                    • #11
                      Jetze kommt folgender Fehler:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=' at line 6

                      Ich habe das so eingebaut

                      PHP-Code:
                      <?php$sql = "UPDATE files 
                                     SET name = '$dateiname', 
                                             filetype  = '" . $_FILES['datei']['type'] ."', 
                                             filecontent  = '$data', 
                                             filesize = $size,                      
                                     WHERE id=" . $_GET['id'];

                      ?>
                      und das is die Tablle:

                      CREATE TABLE `files` (
                      `id` int(3) unsigned NOT NULL auto_increment,
                      `filename` varchar(30) collate latin1_general_ci NOT NULL default '',
                      `filetype` varchar(50) collate latin1_general_ci NOT NULL default '',
                      `filecontent` mediumtext collate latin1_general_ci NOT NULL,
                      `filesize` varchar(30) collate latin1_general_ci NOT NULL default '',
                      PRIMARY KEY (`id`)
                      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

                      Hab ich was falsch gemacht???

                      Kommentar


                      • #12
                        bau mal ein echo $sql; rein, aber ich würde mal sagen, dass $_GET['id'] leer ist.
                        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                        Kommentar


                        • #13
                          PHP-Code:
                          <?php
                          $sql 
                          "UPDATE files 
                                         SET name = '
                          $dateiname', 
                                                 filetype  = '" 
                          $_FILES['datei']['type'] ."', 
                                                 filecontent  = '
                          $data', 
                                                 filesize = '
                          $size',                      
                                         WHERE id='"
                          $_GET['id']."'"
                          ?>
                          edit: Jetzt aber.

                          Kommentar


                          • #14
                            @TripleT
                            dann doch eher ein paar ' bei filesize, weil das ist ein varchar und kein int wie ID oder hab ich ne änderung übersehen?

                            mfg
                            robo47
                            [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                            | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                            Kommentar


                            • #15
                              ups, ja bei ID fehlte auch noch ein paar ' " .
                              Aber bei filesize kommen natürlich auch noch zwei ' hin.

                              Kommentar

                              Lädt...
                              X