Page 1 of 2 1 2 LastLast
Results 1 to 15 of 22

Thread: [php] Uploadscript mit DB-Eintrag

  1. #1
    die Gütige ... Gudula's Avatar
    Join Date
    04/2001
    Location
    aus dem Sauerland
    Posts
    10.333

    [php] Uploadscript mit DB-Eintrag

    Es gibt Unmengen an fertigen Uploadscripts im iNet.
    Da immer wieder Fragen kommen "wie kann ich ein Bild auf den Server laden, gleichzeitig aber auch den Dateinamen in einer Tabelle abspeichern?"

    In php ist das sehr einfach. Hier ein einfaches Beispiel von mir.

    Was kann das Script?

    1. Es überprüft, ob die korrekte Endung vorhanden ist und schaut, ob im Dateinamen Zeichen sind, die nicht dort rein gehören. Dann bekommt der Dateiname noch den Zeitpunkt angehängt.
    2. Es überprüft, ob ein File ausgesucht worden ist, die korrekte Größe hat.
    3. Dateiname und Kommentar werden in eine Tabelle eingetragen.
    4. Wenn bereits ein Bild hochgeladen worden ist, kann über den UrL-Parameter id der Datensatz ausgewählt und geändert werden. Bilder werden überschrieben und alte Bilder gelöscht.

    mysql Dump für die Tabelle
    dies ist die Tabelle, worein die Daten gespeichert werden.
    Man muss sie einfach über phpmyadmin oder einem anderen Admintool in die bestehende mysql-Datenbank importieren.

    PHP Code:
    -- phpMyAdmin SQL Dump
    -- version 2.6.1-pl3
    -- http://www.phpmyadmin.net
    -- 
    -- 
    Hostlocalhost
    -- Erstellungszeit04. Mai 2006 um 20:11
    -- Server Version4.1.12
    -- PHP-Version5.0.5
    -- 
    -- 
    Datenbank: `benutzer`
    -- 

    -- --------------------------------------------------------

    -- 
    -- 
    Tabellenstruktur für Tabelle `picture`
    -- 

    CREATE TABLE `picture` (
      `
    idtinyint(4NOT NULL auto_increment,
      `
    kommentarvarchar(250) default NULL,
      `
    dateinamevarchar(100) default NULL,
      `
    datumdatetime default NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 
    Hier das Scirpt.

    uploadeinfach.php
    PHP Code:
    <?php 
    error_reporting
    (E_ALL);
    require_once(
    'verbindung.php'); 
        
    // Maximale Dateigröße in MB 
    $maxfilesize 1

    // Datei-Feldname im Formular 
    $fieldname 'bild'

    // Wo soll die Datei hingeladen werden (Ordner)? 
    $uploaddir 'files'

    // erlaubte Endungen
     
    $allowedfiletype = array('png','GIF','gif','jpg','jpeg','JPG','JPEG','txt');  

    /*####################################################################*/

    $dateiname     '';
    $endung        '';
    $orgname       '';
    $allesok     ''
    $fehler     ''
    $komm        '';
    $bildrs     "noch keines geladen";
    $table        'picture';

    // Variablen absichern
    function quote_smart($value)
    {
       
    // Ueberfluessige Maskierungen entfernen
       
    if (get_magic_quotes_gpc()) {
           
    $value stripslashes($value);
       }
       
    // In Anfuehrungszeichen setzen, sofern keine Zahl
       // oder ein numerischer String vorliegt
       
    if (!is_numeric($value)) {
           
    $value "'" mysql_real_escape_string($value) . "'";
       }
       return 
    $value;
    }

    // Wenn id übergeben wird, dann laden des Datensatzes

    $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : '';
    if(!empty(
    $id)) {
     
    $asql=mysql_query("SELECT kommentar,dateiname FROM $table WHERE id=$id") or die(mysql_error()); 
     
    $komm  mysql_result($asql,0,'kommentar');
     
    $bildrs $uploaddir."/".mysql_result($asql,0,'dateiname');
    }

    $ausgabe "Maximale Größe: $maxfilesize MB<br />Erlaubte Endungen: <b>";
    if(
    count($allowedfiletype) > 1){ 
      
    $last array_pop($allowedfiletype); 
    $ausgabe .= implode(', '$allowedfiletype); 
    $ausgabe .= ' und '.$last
    }elseif(
    count($allowedfiletype) == 1$ausgabe .= $allowedfiletype[0]; 
    $ausgabe .= "</b>";


    // Einfache Funktion zum Eintrag in die Tabelle "picture" 

    function uploaddb($kommentar,$dateiname,$table,$id,$file){ 
       
        if(!empty(
    $id)) {
        
         if (
    file_exists($file)) {
                      
    unlink($file); 
                    } 
                    
        
    $sql sprintf("update $table set kommentar=%s, dateiname='$dateiname', datum=now()
                where id=
    $id",$kommentar) or die ("SQL-Fehler = ".mysql_error());
                
                } else {    
                
         
    $sql sprintf("insert into $table (kommentar,dateiname,datum)  
                Values (%s,'
    $dateiname',now())",$kommentar) or die ("SQL-Fehler = ".mysql_error());
                    }          
               
        
    $rs mysql_query($sql); 
          if(
    $rs){ 
            return 
    "<br/>Daten sind gespeichert<br/>"
            
            } else { 
           return 
    "<br/>Speicherung nicht möglich<br/>"
            }         



    // Fehlerüberprüfung 
    // Splitten des Dateinamens Überprüfung der Endung

    // Abfrage, ob Formular abgeschickt und splitten des Dateinamens

    if(isset($_POST['send'])){ 
    $allesok 1
     
    $darray explode('.'str_replace('/''.'$_FILES[$fieldname]['name']));
     if (
    count($darray) == 2) {
     
       
    $orgname trim($darray[0])."_".time();
       
    $endung  trim(strtolower($darray[1]));
     }
     

    // Feldüberprüfung 
     
     
     
    if($_FILES[$fieldname]['error'] == 1){$allesok=0;  
          
    $fehler='Datei überschreitet die Uploadgröße in der php.ini ('.ini_get('upload_max_filesize').')!'
        } 
         elseif(
    $_FILES[$fieldname]['error'] == 3) {$allesok=0
           
    $fehler 'Datei nur teilweise hochgeladen!'
                   } 
        elseif(
    $_FILES[$fieldname]['error'] != 0) {$allesok=0
             
    $fehler ='Keine Datei ausgewählt!'
                      } 
        elseif(!
    in_array($endung$allowedfiletype)) {$allesok=0;           
          
    $fehler 'Endung nicht erlaubt!'
                  } 
        elseif(
    filesize($_FILES[$fieldname]['tmp_name'])/1024/1024 >= $maxfilesize) {$allesok=0
          
    $fehler 'Datei zu groß!'
              } 

    ?> 
    <html><head><title>Upload</title>
    </head><body> 
    <?php 
       
    // wenn alles ok dann Upload des Bildes 
      
    if($allesok){

    // Dateiname prüfen und Zeichen ersetzen
     
    $neuname '';
     for (
    $i=0$i<strlen($orgname); $i++) {
     
       
    $zz substr($orgname$i1);
       if (!
    preg_match("/^[A-Za-z0-9-_]+$/i"$zz)) $zz '_';
     
       
    $neuname.= $zz;
    }

    // Monage des Dateinamens
     
    $dateiname $neuname.'.'.$endung;

    // Upload
     
        
    move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploaddir.'/'.$dateiname); 
        
    $dirname dirname($_SERVER['PHP_SELF']); 
        
    $fileurl 'http://'.$_SERVER['SERVER_NAME'].(substr($dirname01) == '\\' substr($dirname1):$dirname).'/'.$uploaddir.'/'
        
    $href $fileurl.urlencode($dateiname); 
        
    $anzeigen $fileurl.$dateiname
         
    // Formularwerte in der Datenbank speichern und Meldung ausgeben.  

    echo uploaddb(quote_smart($_POST['kommentar']),$dateiname,"picture",$id,$bildrs); 
    echo 
    "<b>Datei wurde erfolgreich hochgeladen</b><br /> 
            <a href=\""
    .$href."\">$anzeigen</a><br>"
    }else{ 

    // Ausgabe des Formulars

    ?> 
    <div style="color:red;"><?php echo $fehler?></div> 

    <?php print $ausgabe;?>
      <br />
      <h1>Formular</h1>

    <form action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data" method="post"> 
    <input name="<?php echo $fieldname?>" type="file" size="40" />  
    <input type="hidden" name="send" value="send" /><br/>
     
    Kommentar<br /> 
    <textarea name="kommentar" cols="50" rows="10" id="kommentar"><? echo $komm;?></textarea> 
    <input type="hidden" name="id" value="<?php echo $id;?>" /> 
    <br /> Bild: <? echo $bildrs;?><br>
    <input type="submit" name="submit" value="Hochladen" /> 
    </form> 
    <?php 

    ?> 
     <br/><a href="uebersicht.php">Anzeige der &Uuml;bersicht </a><br />
    </body></html>
    uebersicht.php
    PHP Code:
    <?
    require_once('verbindung.php'); 
    if(isset(
    $_GET['id'])) {
    $sql "delete from picture where id=".$_GET['id'];
      
    $rs mysql_query($sql);
      if (
    file_exists("files/".$_GET['d'])) {
                      
    unlink("files/".$_GET['d']); 
                    } 
      }

      
    // Select-Statement zum Auslesen der Daten
    $sql "SELECT dateiname, id from picture";
    $rs mysql_query($sql);
    $row mysql_fetch_array($rs); ?>
    <html>
    <head>
    <title>Übersicht</title>
    <body>
    <a href="uploadeinfach.php">Einen neuen Datensatz einfügen</a><hr/>
    <?php 

    // Datensatz vorhanden ?

        
    if(mysql_num_rows($rs) == 0) {
              echo 
    "es liegt kein Wert vor";
          } else {

            do {
              echo !empty(
    $row[0]) ? "<img src=\"files/".$row[0]."\"/>" :"kein Bild";
              echo 
    " <a href=\"uploadeinfach.php?id=".$row[1]."\">weiter</a>
               <a href=\"uebersicht.php?id="
    .$row[1]."&d=".$row[0]."\">löschen</a><br>";
               }
               while (
    $row=mysql_fetch_array($rs));
       }
       
    mysql_free_result($rs);
    mysql_close($verbindung);
    ?>
    </body>
    </head>
    verbindung.php
    Diese Datei muss mit den eigenen Verbindungsdaten angepasst werden.

    PHP Code:
    <?php
    $server 
    "localhost"$user "root"$pass "";
    $database "dreamworker";
    $verbindung mysql_connect($server,$user,$pass)
        or die (
    "Keine Verbindung möglich");
        
    mysql_select_db($database$verbindung)
        or die (
    "SQL-Fehler = ".mysql_error());
    ?>
    Link auf Beispiel zum Thema "Mail mit Anhang" versenden.
    http://www.dreamworker.de/foren/show...12&postcount=3

    Tut
    http://www.infos24.de/phpe/handbuch/23_php_mail.htm
    Last edited by Gudula; 25.07.2007 at 21:27.
    Herzliche Grüße, Gudula
    per aspera ad astra
    Ich bin kein Klugscheißer, ich weiß es wirklich besser!

  2. #2
    dreamworker.de Junior rokudamerlin's Avatar
    Join Date
    02/2011
    Location
    Saarland
    Posts
    4

    AW: [php] Uploadscript mit DB-Eintrag

    hi, ich weiss das thema ist schon älter, aber ich benutze dieses script als profilbild hochladen in einem projekt von mir ..

    leider bin ich noch zimmlich neu was php angeht und tüftel mich so durch .. finde das skript echt klasse und es ist auch das erste was wirklich funktioniert mit db eintrag.

    nun hab ich aber ein paar änderrungswünsche und habe auch shcon google benutzt um dies zu realisieren. leider hab ich fast keinen erfolg.

    nun hoffe ich das ihr mir helfen könnt das script anzupassen da ihr es ja auch geschrieben habt

    das skript sollte immer nur 1 bild hochladen und zwar dem bild immer einen namen geben zb profilbild .. ich habe die zeile schon geändert aber er hängt immer nur den namen an und somit entstehen doch immer mehr als nur ein bild das immer wieder überschrieben wird ;/

    wiegesagt da ganze soll als profilbild dienen ..

    auch soll die kommentar funktion weg .. wenn ich das mache .. lädt er die datei zwar hoch erfolgreich aber es kommt ein fehler nach dem hochladen =/

    ..

    wiegesagt ich will das user es als profilbild upload benutzen können
    - max. upload 1 bild
    - bildname immer wieder überschreiben oder user id benutzen
    - kommentare weg machen

    soweit klappt das skript echt gut .. nur wenn ich bei der ausgabe des bildes im profil den code so drinlasse .. wird auf jedem profil mein bild angezeigt .. entsperechend der id halt ..

    ich hoffe das ist nicht zuviel .. aber es gibt im netz für anfänger wirklich nicht viele skripts mit denen ich was anfangen kann..

    das hier ist echt super =)

    bitte um hilfe

    lg roku

  3. #3
    dreamworker.de Junior rokudamerlin's Avatar
    Join Date
    02/2011
    Location
    Saarland
    Posts
    4

    AW: [php] Uploadscript mit DB-Eintrag

    so hab nun das mit dem dateinmen so gemacht...

    PHP Code:
    // Dateiname prüfen und Zeichen ersetzen
     
    $neuname 'Profilbild';
     {
     
       
    $zz substr($orgname);
       if (!
    preg_match("/^[A-Za-z0-9-_]+$/i"$zz)) $zz '';
     
       
    $neuname.= $zz;

    nun wird die datei komplett umbenannt aber irgendwie muss da noch ne id oder so rein das man die bilder unterscheiden kann ..

    sagtmal kann man seine beiträge nicht bearbeiten ?..

    lg

  4. #4
    Rechenknecht << dp >>'s Avatar
    Join Date
    03/2008
    Posts
    1.660

    AW: [php] Uploadscript mit DB-Eintrag

    Hallo und im Forum!

    Deine Beiträge kannst du über die Schaltfläche "Bearbeiten" rechts unterhalb eines Beitrags bearbeiten.

    Zu deinem Problem: Wenn du die Grafik als Profilbild hochladen willst, sprich "*_profilbild.png" wobei "*" für eine User- oder Profil-ID steht, musst du den Quellcode lediglich wie folgt anpassen:

    PHP Code:
    // Monage des Dateinamens
    $dateiname $profilID 'profilbild.' $endung
    Die Variable $profilID musst du dann entsprechend setzen, um das Bild einem Benutzer oder einem Profil eindeutig zuweisen zu können...

    HTH
    Gruß, Daniel

    Achtung!!! Feedback ist wichtig - wurde dein Problem gelöst?
    ???... Web-Entwicklung, Win32-Entwicklung, Windows/Linux/Mac OS X ...¿¿¿
    In der Realität ist die Wirklichkeit ganz anders...

  5. #5
    dreamworker.de Junior rokudamerlin's Avatar
    Join Date
    02/2011
    Location
    Saarland
    Posts
    4

    AW: [php] Uploadscript mit DB-Eintrag

    danke für die schnelle antwort ..


    zu der ID kannst du da mehr infos preisgeben ? denn ich hab kein plan was du meinst wie ich die ID der user herausbekomme bzw wie ich das bewerkstelligen soll

    ich hab eine users table dort liegt die id von den usern aber wie setz ich das um ?

    mfg roku
    Last edited by rokudamerlin; 09.02.2011 at 21:54.

  6. #6
    Rechenknecht << dp >>'s Avatar
    Join Date
    03/2008
    Posts
    1.660

    AW: [php] Uploadscript mit DB-Eintrag

    Beiträge können nur bis 30 Minuten nach ihrer Erstellung bearbeitet werden - danach nicht mehr.

    Wegen der ID: Erkläre doch mal bitte genauer, was du genau mit dem Bild machen möchtest. Wenn ich dich richtig verstanden habe, möchtest du es als Profilbild verwenden. Will heißen, in irgendeiner Datenbank wirst du eine Tabelle mit Profilen haben, die mit diesem Bild verknüpft sind. Damit du weiß, welches Profilbild zu welchen Profil gehört, solltest du die Profil-ID im Bildnamen speichern...
    Gruß, Daniel

    Achtung!!! Feedback ist wichtig - wurde dein Problem gelöst?
    ???... Web-Entwicklung, Win32-Entwicklung, Windows/Linux/Mac OS X ...¿¿¿
    In der Realität ist die Wirklichkeit ganz anders...

  7. #7
    dreamworker.de Junior rokudamerlin's Avatar
    Join Date
    02/2011
    Location
    Saarland
    Posts
    4

    AW: [php] Uploadscript mit DB-Eintrag

    hi,

    deine aussage ist soweit richtig .


    beispiel = so hätt ich es gern
    aktuell = so ist es derzeit bei mir

    beispiel:

    ich will das user andreas mit user id 1 ein avatar hochladen kann das dann bild UID1 heisst und in der db abgelegt wird..

    auf andreas profil soll dann das bild UID 1 für jeden sichtbar sein ..

    sollte andreas irgendwann ein neues bild hochladen .. soll das alte bild UID1 überschrieben werden und zwar mit dem neuen bild das er hochlädt.


    aktuell:

    ich habe euer skript komplett eingebaut.

    user anderas lädt ein bild hoch das hat den namen bild (auch in der db) es wird in der db nach datum sortiert angezeigt.

    user andreas sieht nun auch sein bild aber er sieht sein bild auch auf allen anderen profilen .. (habe den code von der übersicht genommen für die profilbilder ansicht)

    *wie gesagt ich kenn mich nicht gut aus - ich bin aber kreativ und lernfähig =)

    lädt user andreas noch ein bild hoch, werden 2 angezeit im profil .. in db auch .. beide bilder in db haben den selben namen nur das datum ist anders..

    ---------


    ich hoffe mein beispiel ist ok so und zegt dir was ich gemacht habe und was ich mir erhoffe =)




    lg roku

  8. #8
    Rechenknecht << dp >>'s Avatar
    Join Date
    03/2008
    Posts
    1.660

    AW: [php] Uploadscript mit DB-Eintrag

    Du musst in der Tabelle mit den Bildern noch zusätzlich die User-ID abspeichern und den SELECT im Script so anpassen, dass er nur Bilder einer bestimmten User-ID zurückliefert. Außerdem musst du deinem Script noch die User-ID per URL-Parameter übergeben und diese in den SELECT sowie in das INSERT- und UPDATE-Statement einbauen. Dadurch werden die Bilder abhängig von User-IDs gespeichert bzw. ausgelesen und im Profil bekommst du dann nur noch die jeweiligen Bilder eines Benutzers angezeigt.

    Im Prinzip ganz einfach

    HTH
    Gruß, Daniel

    Achtung!!! Feedback ist wichtig - wurde dein Problem gelöst?
    ???... Web-Entwicklung, Win32-Entwicklung, Windows/Linux/Mac OS X ...¿¿¿
    In der Realität ist die Wirklichkeit ganz anders...

  9. #9
    dreamworker.de Beginner
    Join Date
    10/2011
    Posts
    2

    AW: [php] Uploadscript mit DB-Eintrag

    Ich hab mal versucht es so zu machen wie << dp >> das beschrieben hat und
    das Script in die Clan Seite die ich für mich und meinen Kumpels bauen zu integrieren.
    Ich kenne mich mit der Materie und der gleichen eigentlich kaum aus und finde php wirklich sehr schwer.
    Ich habe ein
    Code:
    if(isset($_SESSION['login']))
    Aus mein newsscript das ich mit Hilfe eines Tutorial erstellt hab
    unter dem
    Code:
    if(isset($_GET['id']))
    Hinzugefügt

    Die Pfade angepasst
    In der Datenbank in der picture eine neue zeile namens user hinzugefügt.
    Als Inhalt mein User Name Hinzugefügt
    Etwas weiter unter dem
    Code:
    if(isset($_SESSION['login'])) // Sofern eingeloggt
    noch ein
    Code:
    echo "Willkommen ".$_SESSION['user'];
    um zu testen ob der user der eingeloggt wird auch erkannt wird was auch funktioniert.

    und nun wollte ich in der uebersicht.php noch ändern das nur die Bilder angezeigt werden dessen mit der ($_SESSION['login'] übereinstimmen.
    Hmpf es fällt mir schwer das zu beschreiben.
    Ich finde keine möglichkeit ein where $row=user_($_SESSION['login'] an den Link des Bildes an zu heften.

    Wen ich mehrere bilder hochgeladen habe werden im Profil auch alle Bilder angezeigt, aber ich schaffe es nicht alleine die anzeige auf
    Code:
    echo $_SESSION['user'];
    zu begrenzen...
    Ich hab auch unter select schon wie wild alles versucht.

  10. #10
    dreamworker.de Junior christofrey's Avatar
    Join Date
    07/2012
    Location
    Wien
    Posts
    15

    AW: [php] Uploadscript mit DB-Eintrag

    Hallo allerseits, ich bin neu hier und in dieser Materie und über das gelungene Script hier "gestolpert".

    Ich versuche für einen Fotowettbewerb die Verwaltung zu machen. Die Daten der Benutzer habe ich nach
    deren Registrierung bereits in meiner Tabelle "benutzer". Jetzt verwende ich dieses Script als Basis für den
    Bildupload in einer 2. Tabelle "bilder" (es sind ja mehrere Einsendungen pro Benutzer möglich also 1:n).

    So jetzt kommt meine eigentliche Frage:
    1) wie ordne ich die Bilder der User-ID aus Tab "benutzer" automatisch beim Hochladen zu?
    2) Zusätzlich sollen alle Benutzer nur die eigenen Uploads sehen können.
    Zum Upload-Bereich kommen die Benutzer nur wenn sie eingeloggt sind - das habe ich mit Session-ID gelöst -
    - lassen sich damit Daten in Tab-bilder übergeben?

    Danke für eure Hilfe und entschuldigt das Ausgraben dieses alten Threads
    stoffi

  11. #11
    dreamworker.de Junior
    Join Date
    02/2013
    Posts
    5

    AW: [php] Uploadscript mit DB-Eintrag

    Hallo, also ich nutze dieses obige Script auch seit langem. Nun wollte ich das etwas erweitern, scheitere aber daran ein Feld hinzuzufügen. Hier mal der Code:
    PHP Code:
    <?php
    error_reporting
    (E_ALL);
    require_once(
    'config.inc.php'); 
    $maxfilesize 1
    $fieldname 'bild'
    $uploaddir 'galerie'
    $allowedfiletype = array('png','GIF','gif','jpg','jpeg','JPG','JPEG','ico','Ico','ICO');  
    /*####################################################################*/
    $dateiname     '';
    $endung        '';
    $orgname       '';
    $allesok     ''
    $fehler     ''
    $komm        '';
    $keyword        '';
    $bildrs     "noch keines geladen";
    $table        'hoverbox_picture';
    function 
    quote_smart($value)
    {
    if (
    get_magic_quotes_gpc()) {
    $value stripslashes($value);
    }
    if (!
    is_numeric($value)) {
    $value "'" mysql_real_escape_string($value) . "'";
    }
    return 
    $value;
    }
    $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : '';
    if(!empty(
    $id)) {
    $asql=mysql_query("SELECT url,dateiname FROM $table WHERE id=$id") or die(mysql_error()); 
    $komm  mysql_result($asql,0,'url');
    $bildrs $uploaddir."/".mysql_result($asql,0,'dateiname');
    }
    $ausgabe "<p>Maximale Größe: $maxfilesize MB</p><br /><p>Erlaubte Endungen: <b>";
    if(
    count($allowedfiletype) > 1){ 
    $last array_pop($allowedfiletype); 
    $ausgabe .= implode(', '$allowedfiletype); 
    $ausgabe .= ' und '.$last
    }elseif(
    count($allowedfiletype) == 1$ausgabe .= $allowedfiletype[0]; 
    $ausgabe .= "</b></p>";
    function 
    uploaddb($url,$dateiname,$table,$id,$file){ 
    if(!empty(
    $id)) {
    if (
    file_exists($file)) {
    unlink($file); 

    $sql sprintf("update $table set url=%s, dateiname='$dateiname', datum=now()
    where id=
    $id",$url) or die ("SQL-Fehler = ".mysql_error());
    } else {    
    $sql sprintf("insert into $table (url,dateiname,datum)  
    Values (%s,'
    $dateiname',now())",$url) or die ("SQL-Fehler = ".mysql_error());
    }          
    $rs mysql_query($sql); 
    if(
    $rs){ 
    return 
    "<br/>Daten sind gespeichert<br/>"
    } else { 
    return 
    "<br/>Speicherung nicht möglich<br/>"
    }         

    if(isset(
    $_POST['send'])){ 
    $allesok 1
    $darray explode('.'str_replace('/''.'$_FILES[$fieldname]['name']));
    if (
    count($darray) == 2) {
    $orgname trim($darray[0])."_".time();
    $endung  trim(strtolower($darray[1]));
    }
    if(
    $_FILES[$fieldname]['error'] == 1){$allesok=0;  
    $fehler='Datei überschreitet die Uploadgröße in der php.ini ('.ini_get('upload_max_filesize').')!'

    elseif(
    $_FILES[$fieldname]['error'] == 3) {$allesok=0
    $fehler 'Datei nur teilweise hochgeladen!'

    elseif(
    $_FILES[$fieldname]['error'] != 0) {$allesok=0
    $fehler ='Keine Datei ausgewählt!'

    elseif(!
    in_array($endung$allowedfiletype)) {$allesok=0;           
    $fehler 'Endung nicht erlaubt!'

    elseif(
    filesize($_FILES[$fieldname]['tmp_name'])/1024/1024 >= $maxfilesize) {$allesok=0
    $fehler 'Datei zu groß!'


    ?> 
    <h2>Ico upload:</h2>
    <?php 
    if($allesok){
    $neuname '';
    for (
    $i=0$i<strlen($orgname); $i++) {
    $zz substr($orgname$i1);
    if (!
    preg_match("/^[A-Za-z0-9-_]+$/i"$zz)) $zz '_';
    $neuname.= $zz;
    }
    $dateiname $neuname.'.'.$endung;
    move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploaddir.'/'.$dateiname); 
    $dirname dirname($_SERVER['PHP_SELF']); 
    $fileurl 'http://'.$_SERVER['SERVER_NAME'].(substr($dirname01) == '\\' substr($dirname1):$dirname).'/'.$uploaddir.'/'
    $href $fileurl.urlencode($dateiname); 
    $anzeigen $fileurl.$dateiname
    echo 
    uploaddb(quote_smart($_POST['url']),$dateiname,"hoverbox_picture",$id,$bildrs); 
    echo 
    "<b>Datei wurde erfolgreich hochgeladen</b><br /> 
    <img src=
    $anzeigen border=0 height=16 width=16><br>"
    }else{ 
    ?> 
    <div style="color:red;"><?php echo $fehler?></div> 
    <?php print $ausgabe;?>
    <p>
    <form action="direkt.html" enctype="multipart/form-data" method="post"> 
    <input name="<?php echo $fieldname?>" type="file" size="40" />  
    <input type="hidden" name="send" value="send" />
    <p>
    Url: <input type="text" name="url" id="url" value="<?php echo $komm;?>" />(mit http://www.)</p>
    <input type="hidden" name="id" value="<?php echo $id;?>" /> 
    <p>Bild: <? echo $bildrs;?></p>
    <input type="submit" name="submit" value="Hochladen" /> 
    </form>
     </p>
    <?php 

    ?>
    Jetzt soll ein Feld hinzugefügt werden welches in der Datenbank als keyword läuft. Jeder versuch den ich gemacht hab hat mit entweder nur Fehler oder keine Funktion ausgegeben. Habt ihr ne Idee wie genau genau man es erweitern muß?

    MFG

  12. #12
    waldfex
    Gast

    AW: [php] Uploadscript mit DB-Eintrag

    Hallo,

    nachdem du jegliche Code-Formatierung und Kommentierung entfernt hast, soll sich jetzt jemand damit auseinandersetzen? Sorry!
    Zeige doch einmal, was du bisher bisher im Code ergänzt bzw. verändert hast.

    Grundsätzlich sind drei Schritte bei der Feldergänzung zu beachten:

    1. Datenbanktabelle um das erforderliche Feld erweitern (ALTER TABLE ....);
    2. Eingabefeld für das neue Feld im Formular hinzufügen (<input type="text" name="keyword" ....);
    3. SQL-Statments entsprechend erweitern (UPDATE $table SET ... ; ggf. SELECT ..., $_POST['keyword'] FROM $table WHERE id=$id)

    Gruß Fex

  13. #13
    dreamworker.de Junior
    Join Date
    02/2013
    Posts
    5

    AW: [php] Uploadscript mit DB-Eintrag

    also Punkt 1 und zwei ist soweit klar ...

    ich hatte es so versucht:
    PHP Code:
    function uploaddb($url,$dateiname,$table,$id,$file){ 
    if(!empty(
    $id)) {
    if (
    file_exists($file)) {
    unlink($file); 

    $sql sprintf("update $table set url=%s, keyword='$Keyword', dateiname='$dateiname', datum=now()
    where id=
    $id",$url) or die ("SQL-Fehler = ".mysql_error());
    } else {    
    $sql sprintf("insert into $table (url,keyword,dateiname,datum)  
    Values (%s,'
    $keyword','$dateiname',now())",$url) or die ("SQL-Fehler = ".mysql_error());

    so hatte es zumindest keine Fehlermeldung gegeben. Nur findet so kein Eintrag statt.

    MFG

  14. #14
    waldfex
    Gast

    AW: [php] Uploadscript mit DB-Eintrag

    Mal aus dem bauch heraus und ungetestet:

    PHP Code:
    <?php

    function uploaddb($url$keyword$dateiname$table$id$file) {
        if (!empty(
    $id)) {
            if (
    file_exists($file)) {
                
    unlink($file);
            }
            
    $sql sprintf("update $table set url=%s, keyword='$Keyword', dateiname='$dateiname', datum=now() where id=$id"$url
                   or die(
    "SQL-Fehler = " mysql_error());
        } else {
            
    $sql sprintf("insert into $table (url,keyword,dateiname,datum) Values (%s,'$keyword','$dateiname',now())"$url
                   or die(
    "SQL-Fehler = " mysql_error());
        }
        
    $rs mysql_query($sql);
        if (
    $rs) {
            return 
    "<br/>Daten sind gespeichert<br/>";
        } else {
            return 
    "<br/>Speicherung nicht möglich<br/>";
        }
    }

    $keyword = isset($_POST['keyword']) ? quote_smart($_POST['keyword']) : '';
    uploaddb(quote_smart($_POST['url']),$keyword,$dateiname,"hoverbox_picture",$id,$bildrs); 

    ?>
    Und den Hinweis bezüglich der Codeformatierung/Einrückung solltest du berücksichtigen!
    Das Script ist schon etwas antiquiert (Stand PHP 4.x). Du solltest dich einmal nach etwas aktuelleren umsehen.

    Gruß Fex

  15. #15
    dreamworker.de Junior
    Join Date
    02/2013
    Posts
    5

    AW: [php] Uploadscript mit DB-Eintrag

    Anzeigen:
    Webhosting ab 3,99 €
    Hallo,
    danke für den Versuch, hat nur leider nicht so funktioniert. Ich hab jetzt eins was funktioniert und bereits an meine Bedürfnisse angepasst:
    PHP Code:
    <h2>Ico-Upload</h2>
    <form  action="direkt.html" method="post" enctype="multipart/form-data">
    <table width="100%" border="0">
      <tr>
        <td width="25%"><p>Ico hochladen</p></td>
        <td><p><input type="hidden" name="MAX_FILE_SIZE" value="90240"><input type="file" name="dateiname"></p></td>
      </tr>
      <tr>
        <td><p>Url mit http://www.</p></td>
        <td><p><input type="text" name="komm"></p></td>
      </tr>
      <tr>
        <td><p>Keywords max. 5</p></td>
        <td><p><input type="text" name="keyword"></p></td>
      </tr>
      <tr>
        <td><p>Datum & Serverzeit</p></td>
        <td><p><input type="text" name="datum" value="<? echo date("Y-m-d H:i:s")?>"></p></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="hidden" name="abschicken" value="1"><input type="submit" value="Übertragen"></td>
      </tr>
    </table>
    </form>
    <?php
    // Abfrage, ob Formular abgeschickt worden ist
    // wenn ja, dann Definition der Upload-Variablen 

    if (isset($_POST["abschicken"])) {
      
    $dateiname $_FILES['dateiname']['name'];
      
    $tmp_name $_FILES['dateiname']['tmp_name'];
      
    $komm = isset($_POST['komm']) ? $_POST['komm'] : '';
      
    $keyword = isset($_POST['keyword']) ? $_POST['keyword'] : '';
      
    $datum = isset($_POST['datum']) ? $_POST['datum'] : '';
      if (!isset(
    $dateiname)) {exit;}
      
      
    // Definition unterschiedlicher Fehlermeldungen
        
      
    if(!is_uploaded_file($tmp_name)) {
        echo 
    'Fehler!<br><ul>';
        switch (
    $_FILES['dateiname']['error']){
            case 
    1: echo "<li>Die Datei überschreitet die 
                    maximale Größe von 2 Megabytes."

                    break;
            case 
    2: echo "<li>Die Datei überschreitet die 
                    maximale Größe von 
    $_POST[MAX_FILE_SIZE] Bytes."
                    break;
            case 
    3: echo "<li>Die Datei wurde nur 
                    teilweise übertragen."

                    break;
            case 
    4: echo "<li>Sie haben vergessen, 
                    die zu überspielende Datei anzugeben."

                    break;
        }
        echo 
    "</li></ul>";
        exit;     
      }
      
    // Festlegen des Pfades mit Dateinamen.     
      
    $uploadname ="galerie/$dateiname";
       
    move_uploaded_file($tmp_name,$uploadname);  
      
      
    // Ausgabe auf dem Bildschirm zur Bestätigung.
      
    printf("Die Datei <b>%s</b> befindet sich auf dem Webserver im Ordner 
                <b>%s</b>!<br>\n"

                      
    $_FILES['dateiname']['name'], $uploadname); 
      
    printf("Sie ist <b>%s Bytes</b> groß und vom Typ <b>%s</b>.
                <br>\n"
    $_FILES['dateiname']['size'], 
                      
    $_FILES['dateiname']['type']); 
      
      
    // Einfügen eines Datensatzes zum Bild in Datenbank
      // Verbindung zur Datenbank
        
    include ("config.inc.php");
        
    $verbindung = @mysql_connect($dbserver,$dbuser,$dbpass)
        or die (
    "Keine Verbindung möglich");
        
    mysql_select_db($dbdata$verbindung)
        or die (
    "SQL-Fehler = ".mysql_error());
        
        
    // Einfügen des Datensatzes
        
        
    $sql "insert into hoverbox_picture (url,keyword,dateiname,datum) 
                Values ('
    $komm','$keyword','$dateiname','$datum')" 
                
    or die ("SQL-Fehler = ".mysql_error());
        
    $rs mysql_query($sql);
        
    mysql_close($verbindung);
    }
    ?>
    Allerdings versuche ich jetzt verzweifelt den Code einzubinden mit dem ich das Bild zum Teil umbenennen Kann:
    PHP Code:
    $neuname '';
    for (
    $i=0$i<strlen($orgname); $i++) {
    $zz substr($orgname$i1);
    if (!
    preg_match("/^[A-Za-z0-9-_]+$/i"$zz)) $zz '_';
    $neuname.= $zz;
    }
    $dateiname $neuname.'.'.$endung
    Es kommt zwar keine Fehlermeldung wenn ich es direkt hier einbinde // Festlegen des Pfades mit Dateinamen, aber er benennt die Datei auch nicht um. Haste da vielleicht eine Idee?

    MFG

Similar Threads

  1. Dynamisch: eintrag bearbeiten oder löschen
    By radon2 in forum Adobe Dreamweaver
    Replies: 6
    Last Post: 21.01.2006, 14:26
  2. Dynamischer Link (ASP) aus Access DB
    By fatemieh in forum Serverseitige Programmierung
    Replies: 4
    Last Post: 21.04.2003, 15:49
  3. DB Eintrag E-Mail als Hyperlink
    By wachi in forum Serverseitige Programmierung
    Replies: 2
    Last Post: 14.04.2002, 13:59
  4. Dynamisch: DB bei 1 und 1
    By lulonakios in forum Adobe Dreamweaver
    Replies: 1
    Last Post: 22.01.2002, 06:56
  5. Dynamisch: Email senden und Eintrag in DB
    By Hermione in forum Adobe Dreamweaver
    Replies: 3
    Last Post: 21.11.2001, 23:26

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •