【问题标题】:php executes first with form action="<?php echo $_SERVER['PHP_SELF']; ?> [closed]php 首先执行表单 action="<?php echo $_SERVER['PHP_SELF']; ?> [关闭]
【发布时间】:2011-11-24 13:23:41
【问题描述】:

php 首先执行表单 action=" 它不会等待来自 html 的 'form action=' ... 怎么了?

<?php
if(isset($_POST['submit']))
{
    $name = $_POST['name'];
    echo "User Has submitted the form and entered this name : <b> $name </b>";
    echo "<br>You can use the following form again to enter a new name.";
}
?>

来自我的 .htaccess。也许它正在阻止代码

## Turn on and setup apache rewrite ##
RewriteEngine On
Options +Followsymlinks
RewriteBase /

## Dissable directory indexing ##
Options -Indexes

## Remove trailing slash from end of uri ##
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Redirect to non.php extension
RewriteCond %{THE_REQUEST} ^GET\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php$  $1 [R=301,L]

## Rewrite Rules ##
RewriteRule ^([0-9-a-z-A-Z-_]+)/?$ goto.php?id=$1 [L]
RewriteRule ^account/(.*)$  $1.php [L]

【问题讨论】:

  • 您的问题毫无意义,您的代码在我们看来似乎很好,所以请重新编辑您的问题,谢谢...
  • 它不会等待内容被提交,当我打开页面时我已经看到了回显
  • @user1047737:我认为你的 apache 服务器有问题,因为你的代码对我来说很好用
  • 其他页面上包含代码的页面,也许这就是它的问题? [code]// 检查url是否来自所有者 $match = array($url_idl); if (in_array($id, $match)) { include('editthisshit.tpl'); } } [/code]

标签: php html action forum


【解决方案1】:

http://php.net/manual/pt_BR/reserved.variables.server.php

&lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" method="post"&gt;&lt;form action="" method="post"&gt; 相等,因为$_SERVER['PHP_SELF'] 在执行中返回脚本名称,action="" 也在执行中提交到页面。

【讨论】:

  • 提交成功后如何排除php代码?
  • 我不明白,为什么要排除php代码?
  • 我想在提交内容后运行 php 代码...
  • "if(isset($_POST['submit']))" 中的代码在你提交表单后执行。我还不能理解你的问题...
  • 在我的情况下它之前执行过!
【解决方案2】:

检查 POST 的正确方法是这样做

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
   ... a POST has occurred ...
}

检查特定字段名称是不可靠的 - 您可能会更改字段名称并忘记更新 if(),否则该字段可能会被排除在外,等等...上面的代码是 100% 可靠的,因为它不取决于表单本身的任何内容,除了提交方法。

【讨论】:

  • 如果我将此代码包含到其他php文件中,它仍然不起作用,它只是在我点击提交后重定向到主页。
  • 您的代码中是否包含任何重定向?使用 HTTPFox 或 Firebugs Net 标签来查看浏览器和服务器之间的实际请求/响应。该表单很可能工作正常,并且您的代码中的其他地方有一些东西导致了重定向。
  • 是的,我在 php 中有这段代码 if($num == 0){ redirect($url->url_base);出口; }否则,但如果我删除它,它仍然会重定向到 php 文件
  • 你在使用 mod_rewrite 吗?它可能会拦截帖子,重写并将其转换为重定向。
  • 我是这种情况看看##打开并设置apache
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多