PHP/Javascript验证计算
PHP/Javascript Validated Calculation
我以前遇到过这个问题,并希望再次这样做:我想在javascript和PHP中运行小计计算。我可能需要在某个时候更改计算。
- 它需要在javascript中运行以最大限度地提高计算速度,以便用户知道会发生什么。
- 它需要在PHP中运行,以便我得到一个有效的小计,恶意用户不能干扰。
:
- 如果我只在客户端(javascript)运行计算,恶意用户可能会破解javascript并更改小计。
- 如果我只在服务器端(在PHP中)运行计算,则必须等待AJAX调用才能使用户获得更新的小计。
所以我想在两边执行计算。我所见过的唯一方法是在PHP中编程计算并在单独的javascript中编程计算。
我的问题是,人们会建议我使用什么模式,技术或技术来在服务器端创建计算,并使其与javascript兼容,当它被发送到客户端?
我有一个想法,例如,是一个PHP数组的计算,它被翻译成PHP代码和javascript代码,例如:
array(
array(type => "operand", "name" => "variable_A"),
array(type => "operator", "name" => "multiply"),
array(type => "operand", "name" => "variable_B"),
)
可以转换成PHP:
return $variable_A * $variable_B;
和Javascript:
return variable_A * variable_B;
这是一个操作模式的例子。我不知道如果真的有的话,它们会是什么样子
ajax?
你可以传递javascript输入的所有变量,并留下基于服务器的流程。
还是我误解了你的问题?我对你的问题的看法就像你描述的那样:做双重计算。我相信"大男孩"就是这么做的。
示例:将两个数字相加。代码是这样的:
HTML片段:<form method="post" action="/add.php">
<input id="firstOperand" name="firstOperand" placeholder="First operand"/>
<input id="secondOperand" name="firstOperand" placeholder="Second operand"/>
<input type="submit" onclick="doCalculation()" value="Add"/>
</form>
<div id="result" />
你的JS可能看起来像:
function doCalculation() {
var first = parseInt(document.getElementById('firstOperand').value);
var second = parseInt(document.getElementById('secondOperand').value);
var result = first + second;
// the minimum amount of error checking
if isNan('result') return false;
document.getElementById('result').innerHTML = result;
// Now use some framework (like jQuery) to make an Ajax call and pass the result to callback.
Framework.Ajax('/add.php?format=json', 'POST', {first: first, second: second}, callback);
return false;
}
function callback(response) b
var res = response.json.result;
var resultEl = document.getElementById('result');
var errorEl = document.getElementById('error');
// if our result is not correct, we want to update the user on it
if (res != parseInt(resultEl.innerHTML)) {
Framework.removeClass(errorEl, 'hidden');
}
document.getElementById('result').innerHTML = res;
}
当然,您的PHP结果页(add.php)将返回json结果。这里的附加价值是,你还可以返回一个普通的HTML结果(就像如果js被禁用)。
你的回调还可以检查返回的结果中是否有错误,并显示该错误消息。或者如果结果超时,则显示"结果"未保存的通知。但我想那超出了问题的范围(至少超出了答案的范围)。
注意:这只是我脑子里的代码,没有测试,直接写在答案框里,可能有一些事情应该做得更好。
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 根据元素和容器大小计算边距
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 在验证和发送邮件后更改联系人表单的 html
- 年龄验证输入框 - 计算是否超过 18 岁
- PhantomJS 使用返回 null 的基本身份验证进行计算
- 淘汰计算和输入验证
- 服务器级SDK,可以加载PDF文件并执行计算和验证代码片段
- PHP/Javascript验证计算
- 无法验证对导入命名空间的计算引用
- 在ORACLE APEX 5.0中以表格形式进行动态计算和验证
- 新页面中的Html/Javascript表单计算和验证
- jsf2-如何使用一个按钮通过javascript进行计算和验证,然后提交和导航
- 立即使用计算的可观察触发器对下拉列表进行挖空验证
- Knockoutjs验证-重新计算验证规则