2016-09-22 6 views
0

プロフィール画像をアップロードして変更するシステムがあります。にはデフォルトの写真に復元するリンクがあります。コンソールブラウザからIDの値を変更すると表示されます。私はこれを避けることができますように、私は非常に悪いです別のユーザーに割り当てられたアップロードする画像を作ることができますか?変更の入力値を無効にする

のindex.php

<form name="form" method="post" action="dashboard_reset_image.php"> 
<input type="hidden" name="id" value="'.$id.'"> 
<input type="submit" class="btn btn-danger btn-img-user" value="Reset"/> 
</form> 

dashboard_reset_image.php

$ID = $_POST['id']; 
$db = DB::getInstance(); 
$fields=array('img'=>'no-image.jpg'); 
$db->update('profile',$ID,$fields); 
Redirect::to("index.php?id=$ID"); 

何この最後のコードを作成すると、デフォルトを入れて "プロファイル" テーブル内の "IMG" 欄を更新することですイメージ(サーバーのイメージを消去せず、参照として保存しないでください)。

私はHTMLの生成された不安定さからIDを変更し続けますか?

答えて

1

変更

$fields=array('img'=>'no-image.jpg'); 

$fields=array('img'=>$ID.'.jpg'); 

に画像の更新がファイル名にIDを使用しないようにするには。

誰かがブラウザのIDを変更しないようにするには、セッションストレージを使用してIDをサーバーに保存し、送信されたデータが同じIDを持つことを確認する必要があります。そのようなHTMLでIDを入力する

session_start(); 
if (!isset($_SESSION['id']) && isset($_POST['id'])) { 
    $_SESSION['id'] = $_POST['id']; 
} 

<input type="hidden" name="id" value="<?= $_SESSION['id'] ?>"> 

あなたは、クライアントからのデータを受信すると、IDということをテストするには、このような

何かが投稿IDを保存します同じであれば、次のように使用します:

if (isset($_SESSION['id'],$_POST['id'])) { 
    if ($_SESSION['id'] !== $_POST['id']) { 
     die('Ids do not match'); 
    } else { 
     echo 'Update the image here'; 
    } 
} 
+0

あなたの答えをありがとう、私はコードを見て、それが最も便利な時間だと思っていますe ...私は疑いがある...それは、リリースの更新の最後にセッションを破壊する可能性がありますか? – GePraxa

関連する問題