我正在使用PRG模式来避免多个表单提交.然而,它有一个严重的缺点 - 你不能简单地echo
向用户发出确认消息(显然,用户不会看到该页面,他将被重定向到另一个页面).
这个问题的解决方案是什么?我知道其中两个,但它们似乎都不完美.
http://example.com/?msg=data-saved
.它是无国籍的,所以我认为它非常可靠.但是当用户复制链接,书签等时会产生问题.或许还有其他方法我不知道?会话和URL参数的某些组合?不知道.
你认为最好的方法是什么?哪一个缺点最少?优缺点都有什么?
error-handling session user-interface redirect post-redirect-get
最近我一直在研究使用Bean的Beanstalkd.我已经学到了很多,但对服务器上的设置有一些疑问等.
以下是我看到它的工作方式:
我有一个bash脚本(例如下面的一个),它作为一个基本上执行PHP脚本的守护进程运行.
#!/bin/sh
php worker.php
Run Code Online (Sandbox Code Playgroud)4)worker脚本会有类似的东西来执行排队的任务:
while(1) {
$job = $this->pheanstalk->watch('test')->ignore('default')->reserve();
$job_encoded = json_decode($job->getData(), false);
$done_jobs[] = $job_encoded;
$this->log('job:'.print_r($job_encoded, 1));
$this->pheanstalk->delete($job);
}
Run Code Online (Sandbox Code Playgroud)
现在这里是基于上述设置的问题(如果我错了,请纠正我):
假设我有将RSS源导入数据库或其他任务的任务.如果10个用户同时执行此操作,则他们将全部排在"测试"管中.但是,它们只能一次执行一个.将10个不同的管同时执行会更好吗?
如果我确实需要更多电子管,那么这是否也意味着我需要10个工作脚本?除了watch()函数中的字符串文字之外,每个管都有一个基本相同的代码同时运行.
如果我将该脚本作为守护进程运行,那该怎么办?它会不断执行worker.php脚本吗?该脚本在理论上循环直到队列为空,所以不应该只启动一次吗?守护进程如何决定执行worker.php的频率?这只是一个场景吗?
谢谢!
我一直在我的网站上使用这个PHP动态包含代码.但我认为这不安全,如何编写更安全,更好的代码来代替这个:
$page = (empty($_GET['page'])) ? '' : $_GET['page'].".html";
if (empty($page))
{
$page = 'index.html';
}
else
{
$page = $page;
}
include($page);
Run Code Online (Sandbox Code Playgroud)
非常感谢你