【问题标题】:I can't get this piece of code to work -> $_SERVER['PHP_SELF'] <-我无法让这段代码工作 -> $_SERVER['PHP_SELF'] <-
【发布时间】:2015-12-10 13:31:48
【问题描述】:

我正在尝试运行一个非常简单的脚本来测试“action=echo $_SERVER['PHP_SELF'];”以 HTML 形式(带有 php start 和 end 但这个网站不允许我介绍这些字符)。这是脚本:

<?php if(isset($_POST['submit'])) { echo "it works"; } ?>

<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<input type="submit" name="submit" value="Submit Form">

问题是每当我点击提交按钮时,我都会收到“Safari 找不到文件”错误,指出“在我运行脚本的地址处不存在文件”。

我在这里做错了什么?

非常感谢您的帮助!

爱德华多

【问题讨论】:

  • 我试图修复你的脚本。我希望它奏效了。请注意,堆栈溢出编辑器中有一些按钮,您可以使用这些按钮为代码块提供正确的标记。基本上,缩进 4 个空格就足够了,而且您不必破坏 HTML 和 PHP 就可以发布它。

标签: php


【解决方案1】:

尝试使用$_SERVER['REQUEST_URI'] 而不是$_SERVER['PHP_SELF']。我认为您使用的是mod_rewrite,这就是它找不到文件的原因。

【讨论】:


  • 它不起作用...我仍然收到错误消息“/script location/<.> 中不存在文件
  • 当我点击提交按钮时,Safari 会尝试打开此文件:file:///Users/eduardonpinto/Sites/example1/%3C?php%20echo%20$_SERVER%5B'REQUEST_URI'% 5D;%20?%3E
  • 这与浏览器无关。请确保您的文件具有 .php 扩展名,并且如果您的服务器安装了 php.. 似乎无法识别 php 代码
  • 谢谢 Matei,当我从 localhost 打开文件时,似乎一切正常......
【解决方案2】:

如果要将数据发布到同一页面,则无需设置表单的 action 属性。

<form name="test" method="post"> 
  ...
  <input type="submit" name="submit" value="Submit Form" />
</form>

应该这样做。

干杯!

【讨论】:


  • 点击提交时没有 action 属性它只是重新加载 HTML 页面。我从来没有看到“它有效”的 PHP 结果...
  • 请用英文!再次粘贴相同的代码并没有什么意义。
  • 对不起。我从代码中删除了 action 属性,现在当我按下提交按钮时,页面重新加载并且我没有收到所需的输出(“它有效”)。
  • @EduardoPinto 添加表单的 html,以便我们了解那里出了什么问题
  • 我很困惑...我已经用 PHP 和 HTML 表单代码(已修改,没有操作属性)回复了您的答案,但您告诉我用英文写。我现在使用的代码是这样的:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多