kostenloser Webspace werbefrei: lima-city


Profilbearbeitung funktioniert nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Ich will dass meine User auch ein Hintergrundbild für Ihr Profil haben, also hab ich hier was zusammengecoded. Das Problem ist, dass die Datei zwar Hochgeladen, und auch in die Datenbank eingetragen wird, aber wenn der User dann sein Profil nochmals bearbeitet (und damit der Wert $_FILES['wide_bg']['name'] leer ist) der Inhalt `bgimage` gelöscht wird...
    kann mir da bitte einer helfen?
    <?php
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////// VARIABLEN ///////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    $db = @new mysqli ('mysql.lima-city.de', 'user', 'pass', 'db_138318_3');
    $bgimage = "uploads/".$_COOKIE['user']."_".$_FILES['wide_bg']['name'];
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////// NORMALE EINSTELLUNGEN /////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    $sql1 = 'UPDATE penguins_user SET name = "'.$_POST['realname'].'", wohnort = "'.$_POST['wohnort'].'", age = "'.$_POST['alter'].'", sex = "'.$_POST['sex'].'", bgimage = "'.$_POST['bgimage'].'", icq = "'.$_POST['icq'].'", msn = "'.$_POST['msn'].'", skype = "'.$_POST['skype'].'", jabber = "'.$_POST['jabber'].'", bg_color_main = "'.$_POST['bg_color_main'].'", bg_color_main = "'.$_POST['bg_color_main'].'", bg_color_1 = "'.$_POST['bg_color_1'].'", bg_color_2 = "'.$_POST['bg_color_2'].'", bg_color_text = "'.$_POST['bg_color_text'].'", bg_color_link = "'.$_POST['bg_color_link'].'"';
    
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////// BILD OPTION //////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    if($_FILES['wide_bg']['name'] == '') {
     $msg_green = 'Dein Profil wurde erfolgreich gespeichert!';
    }else{
     if($_FILES['wide_bg']['size'] > 204800) {
      $msg = 'Dein Bild ist gr&ouml;&szlig;er als 200kb!';
     }else{
       if(($_FILES['wide_bg']['type'] == 'image/png') OR ($_FILES['wide_bg']['type'] == 'image/jpg') OR ($_FILES['wide_bg']['type'] == 'image/gif')) {
       
        $msg_green = 'Dein Profil wurde erfolgreich gespeichert und das Bild hochgeladen!';
        move_uploaded_file($_FILES['wide_bg']['tmp_name'], $bgimage);
         $sql2 = ', bgimage = "'.$bgimage.'"';
        if(!$result2) {
        echo $db->error;
        }else{}
    
       }else{
        $msg = 'Dein Hintergrundbild darf nur im Format JPG, PNG oder GIF sein!';
       }
     }
    }
    $sql3 = ' WHERE user = "'.$_COOKIE['user'].'"';
    $sql = $sql1.$sql2.$sql3;
    $result = $db->query($sql);
    include('account.php');
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Fang doch einfach den Error Wert
    $_FILES['wide_bg']['error']
    ab. Wenn dieser ungleich 0 ist, wurde erfolgreich ein Bild hochgeladen.

    Wenn gar nichts hochgeladen wurde, steht dieser Wert auf 4.

    Mehr dazu hier: http://www.php.net/manual/en/features.file-upload.errors.php
  4. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Hmm. Das ist zwar gut, aber nicht der Richtige Lösungsweg.
    Ich hab mir das sol vorgestellt:

    Profil bearbeiten + kein Bild hochladen -> SQL-Query $sql1 und $sql3 ausführen
    Profil bearbeiten + Bild hochladen -> SQL-Query $sql1, $sql2 und $sql3 ausführen

    ,aber das klappt nicht... Wie sollten die if() {}elseif() {}else{} -Schleifen dann aussehen?

    EDIT: Ich habs jetzt so umgecodet, dass ich einfach den Wert der Tabelle "bgimage" auslese und einfach bei jeder Fehlermeldung als $sql2 einfüge... natürlich wird dann nicht mehr verglichen, ob ein File da ist, sondern, ob das eingegebene File dasselbe wie das bereits gespeicherte ist.
    Jedenfalls klappt es jetzt und das Thema kann geschlossen werden :angel:

    Beitrag zuletzt geändert: 18.1.2010 18:18:33 von limabone
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!