我已經使用PHP和MySQL創建了一個Web應用程序。我正在尋找一種實現某些用戶數據跟蹤的好方法。我想要它,以便當用戶更改一個字段時,我將能夠顯示更改與一些像「John Doe已更改關閉日期從2012年6月5日至2012年6月13日」實現用戶數據修訂跟蹤
我可以'沒想到一個好的,簡單的方法來做到這一點。任何人有任何建議?
我已經使用PHP和MySQL創建了一個Web應用程序。我正在尋找一種實現某些用戶數據跟蹤的好方法。我想要它,以便當用戶更改一個字段時,我將能夠顯示更改與一些像「John Doe已更改關閉日期從2012年6月5日至2012年6月13日」實現用戶數據修訂跟蹤
我可以'沒想到一個好的,簡單的方法來做到這一點。任何人有任何建議?
這會做你想要做的事情,我沒有使用數據庫連接,所以你可以看到完全按照給你的工作,但在數據庫連接和數據中的子層應該很容易看到如何會工作。我添加了加密功能,以防萬一您正在與可以在沒有任何「通知」的情況下將數據更改給任何人(可從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>
是的,我想可以這樣做。我想知道是否有一個更簡單的方法,不需要這麼多的表單域。 – Keith
那麼,基本的過程是相對直接的:當保存一個變化,比較舊的和新的字段值;對於那些不同的字段,將更改寫入日誌。你能更具體地說明你卡在哪裏嗎? –
當您更新表格時,您可以標記這些消息 – swapnesh
我想我被卡住了,因爲我不知道哪些字段正在更新。我應該在更新之前進行查詢以選擇原始字段,然後比較所有字段並查看是否有不同的字段?什麼是比較它們的最佳方法? – Keith