【问题标题】:PHP script doesn't seem to pick up the variable valuesPHP 脚本似乎没有获取变量值
【发布时间】:2016-02-24 18:22:33
【问题描述】:

我是 PHP 和 HTML 的新手,我试图创建一个 HTML 表单并使用 POST 方法将其提交给 PHP,但是 POST 没有获取变量值:-

<html>
<head>
</head>
<body>

<form action="form_script.php" method="POST">

<p>Name: <input type="text" name="name" size="50"/></p>
<p>Size: <select name="size">
<option value="small">small</option>
<option value="medium">medium</option>
<option value="large">large</option>
</select>
</p>
<p>Gender: <input type="radio" name="gender" value="male"/> Male
<input type="radio" name="gender" value="female"/> Female</p>
</br>
<input type="submit" name="submit" value="Submit Button"/>

</form>
</body>
</html>

PHP:

    <?php
$name=$_POST['name'];
$size=$_POST['size'];
$gender=$_POST['gender'];

print "<p>Name: $name Size: $size Gender: $gender<p>";

?>

【问题讨论】:

  • 您是在实时服务器上运行它,还是仅作为本地文件运行?
  • 我什至不需要测试这个。代码有效。
  • " 我忘了提到我正在本地主机上的 WAMP 服务器上运行此代码,不确定这是否重要?- pranay 56 秒前" - 是的的。确保 PHP 已安装并正确配置,并且所有服务都在运行。这里的评论可能不会得到答复。还取决于您如何访问这些文件。
  • 你不能从file:///C:/运行php,你必须使用Localhost。如果您有Notice: Undefined index: Name,则可能是name!=Name 的问题。表单和php代码在同一个文件中吗?这会导致初始页面加载出现问题,可以通过使用 isset() 来解决
  • @pranay 我在下面的回答是在我在这里发表评论前 20 分钟发布的,我相信它解决了问题,因此应标记为已解决 meta.stackexchange.com/questions/5234/…。如果它仍然不能解决它,那么你需要找出原因。我不能说或做任何其他事情,这将有任何进一步或有用的帮助。祝你好运。

标签: php html post wamp


【解决方案1】:

我正在使用 file:///C:/wamp/www/L/form_script.php 运行脚本,如果你使用 localhost/L/form_script.php 我得到一个错误:- 注意:未定义index: C:\wamp\www\L\form_script.php 中的名称在第 2 行"

给你。你需要使用http://localhost/L/form_script.php 而不是file:///C:/wamp/www/L/form_script.php,就像我感觉你在使用我什至制作了a comment about it

在 Web 浏览器中访问 PHP 文件时,PHP 指令不会像常规 HTML 文档 .html/.htm 那样被解析,等等。

如果您收到未定义的通知,那么这表明您在同一个文件中同时使用 HTML 表单和 PHP,或者您在输入中输入了空值。

“@Sean 这些是 2 个不同的文件,HTML 文件名为 form.php,而 php 文件名为 form_script.php – pranay 5 分钟前”

您在使用 HTML 表单之前直接访问 form_script.php,然后将这些通知扔给您。

  • 我不知道您为什么要在表单之前访问它。

步骤:首先访问您的表单文件http://localhost/L/form.php,然后提交。之后,您将被带到form_script.php,依次向您显示输入的内容。

您需要对输入/POST 数组使用条件 isset()!empty(),或使用两个单独的文件;一个用于您的表单,另一个用于您的处理程序,同时仍在检查empty()'ness;总是最好的。

“注意:未定义的索引:名称”

有趣的是,您的代码显示为name="name",POST 数组也显示为$_POST['name']

不知道带有大写“N”的Name 来自哪里。

Namename 完全是两种不同的动物。

if(!empty($_POST['name']))

作为示例并将该方法应用于您的其他 POST 数组。

可以使用/或&amp;&amp; (AND) - || (OR) 运算符。

  • isset() 用于单选/复选标记/提交按钮,!empty() 用于用户输入。

也可以选择使用三元运算符。

【讨论】:

  • 亲爱的 Fred-ii- 很抱歉之前错过了您的评论,我将 if(!empty($_POST['name'])) 添加到 theform_script.php 并再次尝试,这次它获得了 3在 3 个值中,你是男人!非常感谢:-)
  • @pranay 不客气。考虑接受答案。以下是meta.stackexchange.com/questions/5234/… 然后返回此处并对勾号/复选标记执行相同操作直到它变为绿色的方法。这会通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,可能想要发布(更多)答案。您还可以获得代表点数;-) 干杯
  • 亲爱的 Fred-ii- 我现在已经接受了您的回答。我是新手,想改进我的 PHP,你能建议我在网上使用任何资源来提高我的技能吗?
  • 亲爱的 Fred-ii- 谢谢!!
猜你喜欢
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 2011-01-21
  • 2014-04-11
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
相关资源
最近更新 更多