我是一个PHP新手,当我提交它们时,我有一个问题,POST变量有时是空的.让我难以理解的部分是每次都不会发生这种情况,我通常只需刷新页面就可以在PHP程序中获取发布数据.有时它需要几次,但一旦数据通过一次,它将继续通过罚款.
其他PHP应用程序(Wordpress和其他)工作正常,从不给出任何错误,所以我很确定我的PHP应用程序有问题.
我在CentOS 5.2服务器上安装了PHP 4.2.9,并将KeepAliveTimeout设置为1.
我处理提交数据的应用程序代码:
<?php
session_start();
if (isset($_SESSION['username'])) {
$expire = time() + (60*60*24*30);
setcookie("username", $_SESSION['username'], $expire);
}
header("Cache-control: no-cache");
if (!isset($_SESSION['username'])) {
header('Location: ./login.php');
die();
}
if(empty($_SERVER['CONTENT_TYPE'])){
$type = "application/x-www-form-urlencoded";
$_SERVER['CONTENT_TYPE'] = $type;
}
var_dump($_POST);
echo "\n";
var_dump($_SERVER);
?>
Run Code Online (Sandbox Code Playgroud)
任何帮助都将不胜感激
编辑:我发现工作发布请求和失败的请求之间存在一个区别.Firebug告诉我,当帖子失败时,状态是302重定向而不是200 ok.我不确定是什么导致这种情况,但我在发送表单中有标题缓存控件,就像它出现在上面的代码片段中一样.
有任何想法吗?
延迟作业(2.1.4)在我的开发机器上完美运行,发送同性恋放弃的电子邮件 - 但是当使用Apache/Passenger(3.0.7)在我的服务器上运行时,它失败了.两个顺便说一下Rails 3.0.7和ruby 1.9.2.
我已经看到在使用thin创建作业时出现问题:
--- !ruby/struct:Delayed::PerformableMailer
object: !ruby/object:Class UserMailer
Run Code Online (Sandbox Code Playgroud)
什么时候应该读:
--- !ruby/struct:Delayed::PerformableMailer
object: !ruby/class UserMailer
Run Code Online (Sandbox Code Playgroud)
我的开发机器上正确创建了我的,但在服务器上创建时却是错误的.
有没有其他人有这个问题,我应该从哪里开始寻找?
堆栈跟踪:
{undefined method `standard_message' for #<Class:0xc6ad054>
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/performable_mailer.rb:6:in `perform'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/backend/base.rb:87:in `invoke_job'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in `block (2 levels) in run'\n
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/timeout.rb:57:in `timeout'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in `block in run'\n
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:119:in `run'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:177:in `reserve_and_run_one_job'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:104:in `block in work_off'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in `times'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in `work_off'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:78:in `block (2 levels) in start'\n
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:77:in `block in start'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `loop'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `start'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:104:in `run'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:83:in `block in run_process'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/application.rb:249:in `call'\n
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/application.rb:249:in …Run Code Online (Sandbox Code Playgroud) 在我的VPS(Ubuntu 10.04LTS)上,我通过RVM安装了ree-1.8.7-2011.03和ruby-1.9.2-p180.我的问题是,当我在ree-1.8.7(irb)中调用Time.now时,我得到
Thu May 12 12:16:50 +0200 2011,当我在ruby-1.9.2(irb)中执行相同操作时,我得到了2011-05-12 12:17:44 +0200.
问题是我的rails查询中的日期的ree版本是不可用的(生成的SQL只是简单的破坏).在每个查询中使用strftime格式化时间目前不是一个选项,也没有切换到1.9.2,所以我需要你的帮助来弄清楚为什么会发生这种情况并修复它.
谢谢你的帮助!
ruby locale ruby-on-rails ruby-enterprise-edition ruby-on-rails-3