0

mysql のデータを更新したい。しかし、更新が必要な場合 (例: firstname)、photo_profile は失われます。

 <?php
    include 'function_page_user.php';

    if(($_FILES['photo_profile']) and ($_POST['firstname']) and ($_POST['lastname']) and ($_POST['password']))
    {
        session_start();

        include 'connect.php';
        $foldername="assets/img/user/";
        $firstname = mysql_real_escape_string($_POST["firstname"]);
        $lastname = mysql_real_escape_string($_POST["lastname"]);
        $pwd = mysql_real_escape_string($_POST["password"]);

        if((!empty($firstname) and !empty($lastname) and !empty($pwd)) and($_FILES['photo_profile']))
        {
            $image = $foldername . basename ($_FILES['photo_profile'] ['name']);
            mysql_query ("update user set firstname = '".$firstname."' , lastname = '".$lastname."' , password = '".$pwd."' , photo_profile='".$image."' where id_user ='".$_SESSION['id']."'");
            move_uploaded_file($_FILES['photo_profile']['tmp_name'], $image);
            echo "<script>alert ('File Succes To edit');</script>";
            $page="formubahuser.php";

            echo redirectPage($page);   
        }
        else echo "variabel empty";
    }
    else 
        echo ("your data is not complete<a href=formubahuser.php>Fill it again</a>");
?>
4

1 に答える 1

0

コードにいくつかの重大な問題があります。続行する前に、次のトピックについて読む必要があります。

1) phpmysql_関数は廃止されました。これは、関数が php の将来のバージョンで削除されることを意味します。代わりにpdoまたはmysqliを使用する必要があります

2) パスワードをデータベースに保存するときは、常に、常に、常に暗号化する必要があります。

あなたの質問については、写真の URL を設定解除せずにメタデータ (名前など) を変更する方法を尋ねていると思います。次のようなことを試してください:

$updatequery = "UPDATE user SET firstname = '".$firstname."' , lastname = '".$lastname."' , password = '".$pwd."'";
if( $_FILES['photo_profile'])
{ 
   $image = $foldername . basename ($_FILES['photo_profile'] ['name']);
   $updatequery .= ", photo_profile='".$image."'"; 
}
$updatequery .= " where id_user ='".$_SESSION['id']."'";
于 2013-07-07T17:22:48.967 に答える