0

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

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

4

1 回答 1

0

这将做你想做的事,我没有使用数据库连接,所以你可以看到这个工作与给你的工作完全一样,但是在数据库连接和数据中的子化应该很容易看出它是如何工作的。我添加了加密,以防万一您与能够在没有任何“通知”任何人的情况下更改数据中受益的人合作(从PHP 中的简单加密中获取)如果不需要,您可以完全省略它。本质上,它只是将数据存储在页面上的隐藏字段中,并在提交后进行比较以查看更改的内容。高温高压

<?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 回答