- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在基于我也在构建的 MVC 框架构建 CMS,但我被困在这里。完整代码可以在 this link to github 找到。 .
好的,我遇到的问题是这个 .htaccess 文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_METHOD} !POST [NC]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
当我通过这个 ajax 请求在“auth/login”上运行代码时:
$.ajax({
type: "POST",
url: "auth/login",
dataType: "json",
data: { username: username, password: password, token: token_value }
})
当我运行时:
$username = $_POST['username'];
$password = $_POST['password'];
$token = $_POST['token'];
$postdata = array('username' => $username, 'password' => $password, 'token' => $token);
print_r($post_data);
print_r($_SERVER);
我得到:
Array (
[username] =>
[password] =>
[token] =>
)
Array(
[REDIRECT_REQUEST_METHOD] => POST
[REDIRECT_STATUS] => 404
[HTTP_HOST] => [omitted]
[HTTP_CONNECTION] => keep-alive
[CONTENT_LENGTH] => 71
[HTTP_ACCEPT] => application/json, text/javascript, */*; q=0.01
[HTTP_ORIGIN] => [omitted]
[HTTP_X_REQUESTED_WITH] => XMLHttpRequest
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
[CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
[HTTP_REFERER] => [omitted]/auth
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,fr;q=0.6
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[SERVER_SIGNATURE] => <address>Apache/2.4.7 (Ubuntu) Server at [omitted] Port 80</address>
[SERVER_SOFTWARE] => Apache/2.4.7 (Ubuntu)
[SERVER_NAME] => [omitted]
[SERVER_ADDR] => [omitted]
[SERVER_PORT] => 80
[REMOTE_ADDR] => [omitted]
[DOCUMENT_ROOT] => [omitted]
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => [omitted]
[SERVER_ADMIN] => webmaster@localhost
[SCRIPT_FILENAME] => [omitted]/public_html/index.php
[REMOTE_PORT] => 60135
[REDIRECT_URL] => /auth/login
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /auth/login
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
[REQUEST_TIME_FLOAT] => 1447625662.493
[REQUEST_TIME] => 1447625662
)
我知道上面的代码块是有效的,因为我已经在静态“test.php”文件上试过了,它输出了这个 ajax 请求提交的用户名/密码/方法信息。
我真的觉得问题出在我的 .htaccess 文件中,因为当我强制使用 200 OK header 时,它仍然认为它是 404 或其他什么?我不确定,但它擦洗了 $_POST。这个问题与我的 php.ini 或 apache2.conf 无关,因为我已经对其进行了测试并且我能够接收发布数据,只是与我一直在发送的 ErrorDocument 404/index.php 无关它到。这就是我在解析要发送到 Controller 的 URL 时用来防止出现 404 页面的方法。
如有任何帮助,我们将不胜感激!
最佳答案
如果您遇到与我相同的问题,但似乎没有任何其他效果,则可能是 apache 模块重写“mod_rewrite”未激活。
运行命令:sudo a2enmod rewrite
并重启你的 apache 服务器:sudo service apache2 restart
关于php - .htaccess 不允许带有 ErrorDocument 404 的 $_POST 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725904/
PHP If 语句 if (!$_POST) - !$_POST 是什么意思? 例如,在我正在查看的一些遗留代码中,代码如下: '; if (
这个问题在这里已经有了答案: What is the use of the @ symbol in PHP? (11 个答案) 关闭 8 年前。 我正在寻找在用户刷新浏览器后将用户输入保存在表单中的
我有一个简单的表单,如下所示: 当我尝试通过 if($_POST) 接收从该表单发送的数据时,我失败了,但是当尝试使用 isset 时,我成功了。 if($_POST){ echo
我目前正在从一次严重的 XSS 攻击中恢复过来,并且意识到我从未对网站上多个表单的输入进行过清理。我使用 Notepad++ 的“在文件中查找”功能在我所有的 PHP 文件中搜索 $_POST,得到了
我已经为客户端创建了一个 Yii 应用程序,它在本地和测试期间使用的我的服务器上都运行良好,没有任何问题。客户端已将应用程序移动到他们的服务器,这是它将托管的地方,并且当输入一个表单上的一个变量(只有
我正在尝试将此表格用于: 如果任何 $_POST 变量等于任何其他 $_POST 变量抛出错误。 如果只有几个,那不是问题,但我有大约 20 个左右所以如果我想这样做,我将不得不像这样 但这
首先我要说的是,我在 Google 上无休止地搜索帮助,并且在过去的 x 小时内确实花费了调试相同的错误,但我就是无法弄清楚。 我正在关注this tutorial关于如何为我的 Android 应用
应该这样用if(isset($_POST['submit'])) { } 提交表单时 if($_POST[submit])与 if(isset($_POST[submit])
这是我的代码: if(isset($_POST['make']) && isset($_POST['year']) && isset($_POST['mileage'])) {
如果我使用此代码将数字作为输入,它可以正常工作 Hours: Hours: Minutes: Hours: Minutes
因此,我获取 jquery 日期选择器和下拉选择菜单的状态,并尝试使用 AJAX 将这两个变量发送到另一个 php 文件。 var_dump($_POST); 网页上的结果: array(0)
我想将数据附加到已有的表单中。单击“提交”按钮时使用 JQUERY,如下所示。 $('#submit-buildaboat').click(function(){ console.log(
我目前正在编写一个使用表单和 PHP $_POST 数据的 Web 应用程序(到目前为止是标准的!:))。但是,(这可能是一个菜鸟查询)我刚刚意识到,从理论上讲,如果有人将 HTML 文件与假表单放在
我发现自己现在正在研究很多其他人的代码。我注意到某些代码中的 if (isset($_POST)) 并确保修复它。 (它将始终评估 true)。然后我开始看到这个: if ($_POST) 经过深思熟
如果我将数据发布到我的 Web 服务器上的测试脚本(来自远程源),则 $_POST 数组为空,但 HTTP_RAW_POST_DATA 具有发布的信息。 使用表单在本地发布的数据可以正常工作。 服务器
我遇到了一个非常奇怪的行为。假设我有以下两个 (src 属性等于 name 属性): 我的问题是:为什么第一个输入提交而第二个不提交?我正在使用 CakePHP,如果我点击第二张图片,$this
我可能有点厚,但我似乎找不到这个问题的答案。我正在从一台启用了注册全局变量的服务器转移到一台关闭它的服务器。这是一件好事,但不幸的是,多年来我一直习惯于使用注册全局变量,这导致我编写了草率的代码。我现
我无法弄清楚以下 $_POST 请求的问题所在。问题是我通过 AJAX $_POSTing 一个包含 855 条记录的数组,但我的 AJAX Controller 只接收 833。它总是接收到相同的记
这个问题已经有答案了: passing POST array to php function (3 个回答) 已关闭10 年前。 我一直在开发一个游戏项目(所以你会明白我无法发布实际的脚本),并且我正
有人知道为什么$_POST没有被设置吗? 这是一些代码。 class="even" doID; ?>"/> 我一定是忽略了一些东西。 最佳答案 如果
我是一名优秀的程序员,十分优秀!