tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
14
ZUGRIFFE
289
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Hallo,
    vielleicht kann mir hier jemand helfen. Habe schon sehr viel im Internet und auch hier bereits nachgeschaut. Leider keine transparente Anhaltspunkt gefunden.

    Ich habe ein Formular indem zusätzlich ein Bild von den jeweiligen User in die Datenbank hochgeladen wird.
    Die Bilddatei wird auf der gleichen Ebene in einen Ordner gespeichert. Der Name der Datei wird aus der hochgeladenen Datei herausgefiltert und in einen Varchar definierten Feld in der Datenbank gespeichert.
    Das alles klappt soweit.


    Das Problem liegt in einen weiteren Formular -> UserEdit.php
    Hier kann ich als Admin all die Daten anzeigen lassen und abändern.
    Die Daten lassen sich soweit auch abändern. Nur mit dem Bild habe ich schwierigkeiten.

    Dateiüberprüfung
    In diesem script wird das Bild auf seine Eigenschaften (größe, dateiformat usw.) überprüft.

    PHP-Code:
    //        BILD-FELD (kein Pflichtfeld)
                
    $breite 140;    // Maximalbreite der Grafiken in px.
                
    if(isset($_FILES['Datei']) && $_FILES['Datei']['size'] > 0)
                {
                    
    $tempname $_FILES['Datei']['tmp_name'];
                    
    $dateiname$_FILES['Datei']['name'];
                    
    $dateigroesse $_FILES['Datei']['size'];
                    
    $dateityp GetImageSize($tempname);
                    if(
    $dateityp[2] == || $dateityp[2] == 2// Gif oder JPG?
                    
    {
                        
    $endung = ($dateityp['2'] == "gif" "jpg");
                        
    $neuname time() . ".$endung";
                        
    $bildbreite $dateityp[0];
                        if(
    $bildbreite <= $breite)    // Bild zu breit?
                        
    {                    
                            if(
    move_uploaded_file($tempname"img/" $neuname))
                            {
                                
    chmod("img/" $neuname0666);
                                echo 
    "Die Datei wurde erfolgreich hochgeladen!";
                            }
                            else
                            {
                                
    $fehler.="Der Bilduploud hat leider nicht geklappt!<br>";
                            }
                        }
                        else
                        {
                            
    $fehler.="Die datei ist leider zu breit!<br>";
                        }                
                    }
                    else
                    {
                        
    $fehler.="Es handelt sich nicht um eine gültige jpg oder gif-Datei!<br>";
                    }
                }    
    // ENDE: if(isset($_FILES['datei']) && $_FILES['datei']['size'] > 0)
                
    else
                {
                    echo 
    "<br><font color='red'>Die Datei ".$_FILES['Datei']." ist nicht da.</font>"
                }        
    //    ------------------ ENDE: //    BILD-FELD ------------------ 


    Der SQL Befehl:

    PHP-Code:
    //    UPDATE Ausführen
        
    $sql_update "UPDATE 
                    
    $tab_users 
                SET 
                    Vorname = '"
    .mysql_real_escape_string($_POST['Vorname'], $cnx_user)."',
                    Nachname = '"
    .mysql_real_escape_string($_POST['Nachname'], $cnx_user)."',
                    Strasse = '"
    .mysql_real_escape_string($_POST['Strasse'], $cnx_user)."',
                    Plz = '"
    .mysql_real_escape_string($_POST['Plz'], $cnx_user)."',
                    Ort = '"
    .mysql_real_escape_string($_POST['Ort'], $cnx_user)."',
                    Tel = '"
    .mysql_real_escape_string($_POST['Tel'], $cnx_user)."',
                    Handy = '"
    .mysql_real_escape_string($_POST['Handy'], $cnx_user)."',
                    Email = '"
    .mysql_real_escape_string($_POST['Email'], $cnx_user)."',
                    Geb = '"
    .mysql_real_escape_string($_POST['Geb'], $cnx_user)."',
                    Fahrzeug = '"
    .mysql_real_escape_string($_POST['Fahrzeug'], $cnx_user)."',
                    Hubraum = '"
    .mysql_real_escape_string($_POST['Hubraum'], $cnx_user)."',
                    Erstzulassung = '"
    .mysql_real_escape_string($_POST['Erstzulassung'], $cnx_user)."', 
                    Bild = '"
    .$neuname."', 
                    Nickname = '"
    .mysql_real_escape_string($_POST['Nickname'], $cnx_user)."',
                    Admin = '"
    .mysql_real_escape_string($_POST['Admin'], $cnx_user)."',
                    Username = '"
    .mysql_real_escape_string($_POST['Username'], $cnx_user)."',
                    Kennwort = '"
    .mysql_real_escape_string($_POST['Kennwort'], $cnx_user)."' 
                WHERE 
                    id = '"
    .mysql_real_escape_string($_POST['IDedit'], $cnx_user)."'"

    Ausschnitt aus meinen AnzeigeScript

    PHP-Code:



                        
    echo "<form action='".$_SERVER['PHP_SELF']."?suchbuchstabe=".$_REQUEST['suchbuchstabe']."' method='post'>";
                        echo 
    "<input type='hidden' name='sent' value='2'>";
                        echo 
    "<input type='hidden' name='IDedit' value='".$row['ID']."'>";



     
    // Auslesen der anderen Daten (Vorname usw.)



    //    BILD upload
        
    echo "<tr>";
        echo 
    "<td><div class='txt'>Bild:</div></td>";
        echo 
    "<td colspan='2'>";
        echo 
    "<input type='file' class='textfeld' name='Datei'>
                <input type='text' class='textfeld' name='Datei1' value='"
    .$row['Bild']."'></td>";
        echo 
    "</tr>"
    Das Script zeigt den Ausschnitt aus meinen Anzeige-Formular
    Ich habe zur Kontrolle ein weiteres <input...text...... -feldname='Datei1' gemacht, um zu kontrollieren, welchen Namen das Bild hat.

    Klicke ich auf die Schaltfläche Durchsuchen von "<input type='file' class='textfeld' name='Datei'> , wird mir der Pfad zum Bild im Eingabefeld angezeigt.

    Klicke ich dann Anschließend auf Updaten, wird der bereits abgespeicherte Dateiname in der Datenbank gelöscht.



    Ich hoffe ich habe es soweit klar geschrieben und
    bedanke mich schon mal vorab.
    Geändert von wildstar (23.05.06 um 23:36 Uhr)
     

  2. #2
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Ja wo ist denn jetzt genau das Problem? Das das alte Bild gelöscht wird?
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  3. #3
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Zitat Zitat von mAu
    Ja wo ist denn jetzt genau das Problem? Das das alte Bild gelöscht wird?
    Hallo,

    Das wenn ich wüsste. Das frag ich mich auch schon die ganze Zeit. Ich habe keine DELETE eingebaut... hmmm
     

  4. #4
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Also der Name wird aus der DB gelöscht? Ich mein, du überschreibst ihn ja eigentlich mit einem neuen Wert...
    PHP-Code:
    // ...
    Bild '".$neuname."'
    // ... 
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  5. #5
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Das Problem geht ja schon an, dass er mir bei dem oberen Script. if (isset($_FILES...)) nicht mal reinkommt.

    Es wird dann schon gleich der else Teil :

    echo "<br><font color='red'>Die Datei ".$_FILES['Datei']." ist nicht da.</font>";

    ausgegeben. Das heißt, ich komm nicht mal zur Daten überprüfung.
     

  6. #6
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Dir fehlt ein
    HTML-Code:
    enctype="multipart/form-data"
    in deinem Formular-Tag (<form>). Füg das noch ein, dann sollte es gehen.
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  7. #7
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Zitat Zitat von mAu
    Dir fehlt ein
    HTML-Code:
    enctype="multipart/form-data"
    in deinem Formular-Tag (<form>). Füg das noch ein, dann sollte es gehen.
    Ich bedanke mich sehr herzlich bei Dir. Es klappt.
    Du kannst Dir jetzt gar nicht Vorstellen, wie sehr ich mich freue. Ich wäre schon fast Verrückt geworden. Danke nochmals
     

  8. #8
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Wenn du die Frage noch als "Erledigt" markierst, wär ich dir sehr dankbar
    (Links unten oder links oben auf "Erledigt" klicken.)
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  9. #9
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Zitat Zitat von mAu
    Wenn du die Frage noch als "Erledigt" markierst, wär ich dir sehr dankbar
    (Links unten oder links oben auf "Erledigt" klicken.)
    Jetzt hab ich doch noch ne Frage.
    Hab das Bild nun drin und kann es abändern.
    Wenn ich das bild nicht abändern möchte, sondern nur die Daten, dann ist es so wie Du am Anfang schon geschrieben,, dass das Bild gelöscht wird.
    Eben deshalb, weil neuname überschrieben wird.

    Beim Absenden von den Daten, ist in prinzip kein bild zum Upload vorhanden (Weil ja kein neues hochgeladen wird) und schickt ein leeres Array an die Datenbank. Was tut man in so einen Folgefall
     

  10. #10
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Ich denke so müsste es funktionieren...
    PHP-Code:
    //    UPDATE Ausführen
        
    $sql_update "UPDATE 
                    
    $tab_users 
                SET 
                    Vorname = '"
    .mysql_real_escape_string($_POST['Vorname'], $cnx_user)."',
                    Nachname = '"
    .mysql_real_escape_string($_POST['Nachname'], $cnx_user)."',
                    Strasse = '"
    .mysql_real_escape_string($_POST['Strasse'], $cnx_user)."',
                    Plz = '"
    .mysql_real_escape_string($_POST['Plz'], $cnx_user)."',
                    Ort = '"
    .mysql_real_escape_string($_POST['Ort'], $cnx_user)."',
                    Tel = '"
    .mysql_real_escape_string($_POST['Tel'], $cnx_user)."',
                    Handy = '"
    .mysql_real_escape_string($_POST['Handy'], $cnx_user)."',
                    Email = '"
    .mysql_real_escape_string($_POST['Email'], $cnx_user)."',
                    Geb = '"
    .mysql_real_escape_string($_POST['Geb'], $cnx_user)."',
                    Fahrzeug = '"
    .mysql_real_escape_string($_POST['Fahrzeug'], $cnx_user)."',
                    Hubraum = '"
    .mysql_real_escape_string($_POST['Hubraum'], $cnx_user)."',
                    Erstzulassung = '"
    .mysql_real_escape_string($_POST['Erstzulassung'], $cnx_user)."', 
                    "
    .(($_FILES['Datei']['size'] > 0) ? "Bild = '".$neuname."'," '').
                    Nickname = '"
    .mysql_real_escape_string($_POST['Nickname'], $cnx_user)."',
                    Admin = '"
    .mysql_real_escape_string($_POST['Admin'], $cnx_user)."',
                    Username = '"
    .mysql_real_escape_string($_POST['Username'], $cnx_user)."',
                    Kennwort = '"
    .mysql_real_escape_string($_POST['Kennwort'], $cnx_user)."' 
                WHERE 
                    id = '"
    .mysql_real_escape_string($_POST['IDedit'], $cnx_user)."'"
    Geändert von mAu (24.05.06 um 01:25 Uhr)
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  11. #11
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Parse error: syntax error, unexpected')' in ...... on line 294

    Da is wohl ein kleiner sytax wurm drin. smile

    suche schon ne weile
     

  12. #12
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Hab es oben abgeändert, sollte jetzt keinen Fehler mehr erzeugen. Aber ob's den gewünschten Effekt bringt ?
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  13. #13
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Also ich hab ja schon viel gelernt was php und sql angeht. aber diesen codeschnipsel kann ich nicht nachvollziehn. Denn werd ich mir in den nächsten Tagen anschauen.

    Es funktioniert. Danke Dir nochmals und noch viel Spaß.

    Werd denn das Thema schließen.
     

  14. #14
    Registriert seit
    Mar 2002
    Ort
    Stuttgart (Baden-Württemberg)
    Beiträge
    984
    Blog-Einträge
    7
    Das ist nur eine andere Schreibweise der if-Kontrollstruktur...
    PHP-Code:
    (($_FILES['Datei']['size'] > 0) ? "Bild = '".$neuname."'," ''
    ist gleichbedeutend mit
    PHP-Code:
    if ($_FILES['Datei']['size'] > 0) { echo "Bild = '".$neuname."',"; } 
    Oder allgemeiner
    PHP-Code:
    (Bedingung) ? Wahr Falsch;
    // z.B.
    echo (== 1) ? "ok" "nicht ok"
     
    Gruß mAu


    ──────────────────────────
    Ich auf flickr

    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!


  15. #15
    wildstar wildstar ist offline Mitglied
    Registriert seit
    Feb 2006
    Beiträge
    23
    Da geht ja die birne voll ans leuchten.

    Hab das Fragezeichen und den Doppelpunkt nicht gecheckt. Vielen Dank vielleicht schreibt man sich ja mal wieder. würd mich freuen.
     

Ähnliche Themen

  1. Update: update Spalte gleichzeitig als WHERE Bedingung
    Von Steusi im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 30.06.09, 08:18
  2. Update Trigger auch für ON DUPLICATE KEY UPDATE?
    Von Herr_M im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 20.05.09, 08:16
  3. Bilder hochladen Update Datenbank
    Von max1986 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 23.02.09, 16:47
  4. Bilder Slide-show mit Bilder bewegung wie bei gucci
    Von socke999 im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 07.01.08, 17:04
  5. Antworten: 0
    Letzter Beitrag: 21.11.01, 10:16