0

PHP と MySQL を使用して Web アプリケーションを作成しました。ユーザーデータ追跡を実装する良い方法を探しています。ユーザーがフィールドを変更したときに、「John Doe が完了予定日を 2012 年 6 月 5 日から 2012 年 6 月 13 日に変更しました」などの変更を表示できるようにしたい

これを行うための良い、簡単な方法は思いつきません。誰にも提案はありますか?

4

1 に答える 1

0

これはあなたが探していることを実行します。私はデータベース接続を使用しなかったので、この作業があなたに与えられたものとまったく同じであることがわかります. 誰にも「通知」せずにデータを変更できることで恩恵を受ける人々と協力している場合に備えて、暗号化を追加しました(PHP の単純な暗号化から取得)必要がない場合は、完全に省略できます。基本的には、ページの非表示フィールドにデータを保存し、送信後に比較して何が変更されたかを確認するだけです。HTH

<?php
function ecrypt($str){
  $key = "something simple";
  for($i=0; $i<strlen($str); $i++) {
     $char = substr($str, $i, 1);
     $keychar = substr($key, ($i % strlen($key))-1, 1);
     $char = chr(ord($char)+ord($keychar));
     $result.=$char;
  }
  return urlencode(base64_encode($result));
}


function decrypt($str){
  $str = base64_decode(urldecode($str));
  $result = '';
  $key = "something simple";
  for($i=0; $i<strlen($str); $i++) {
    $char = substr($str, $i, 1);
    $keychar = substr($key, ($i % strlen($key))-1, 1);
    $char = chr(ord($char)-ord($keychar));
    $result.=$char;
  }
return $result;
}



if (isset($_POST['update']) && $_POST['update']!='') {
    $data1=$_POST['data1'];
    $data2=$_POST['data2'];
    $data3=$_POST['data3'];

    $datahide1=decrypt($_POST['datahide1']);
    $datahide2=decrypt($_POST['datahide2']);
    $datahide3=decrypt($_POST['datahide3']);

    $msg='';
    if ($data1!=$datahide1) {
        $msg.="John Doe has change name from ".$datahide1." to ".$data1."<br>";
    }
    if ($data2!=$datahide2) {
        $msg.="John Doe has change price from ".$datahide2." to ".$data2."<br>";
    }
    if ($data3!=$datahide3) {
        $msg.="John Doe has change date from ".$datahide3." to ".$data3."<br>";
    }

    // do your database update here

    // do your results here
    if ($msg!="") {
        echo $msg;
    } else {
        echo "No changes";
    }
    die();
} 

// Database recordset here

// Junk data
$data1="John Doe";
$data2="25.00";
$data3="6/5/2012";

// encypted data
$datahide1=ecrypt($data1);
$datahide2=ecrypt($data2);
$datahide3=ecrypt($data3);

?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<form name="form1" method="post" action="revisiontrack.php">
    <label for="data1">Name:</label>
    <input type="text" name="data1" id="data1"><input name="datahide1" type="hidden" value="<?php echo $datahide1;?>">
    <label for="data2">Price:</label>
    <input type="text" name="data2" id="data2"><input name="datahide2" type="hidden" value="<?php echo $datahide2;?>">
    <label for="data3">Date:</label>
    <input type="text" name="data3" id="data3"><input name="datahide3" type="hidden" value="<?php echo $datahide3;?>">
    <input name="update" type="hidden" id="update" value="y">
<input type="submit" name="submit" id="submit" value="Submit">
</form>
</body>
</html>
于 2012-06-07T14:11:00.287 に答える