实施用户数据修订跟踪

时间:2012-06-07 13:42:28

标签: php mysql

我使用PHP和MySQL创建了一个Web应用程序。我正在寻找一种实现一些用户数据跟踪的好方法。我想要它,以便当用户更改字段时,我可以显示更改,例如" John Doe已将关闭日期从2012年6月5日更改为2012年6月13日"

我无法想到一个好的,简单的方法来做到这一点。有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这将做你想要做的事情,我没有使用数据库连接,所以你可以看到这项工作完全按照给你的工作,但是在数据库连接和数据中进行修改应该很容易看出它会如何工作。我加入了加密,以防万一你和那些能够在没有任何“通知”任何人的情况下更改数据的人一起工作(从Simple encryption in 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>