我正在学习Php,从以下示例的书中读到它。 但是有些东西没有像书中所描述的那样起作用,我不明白为什么不这样做 我已经安装了XAMP,并且正在运行PHP版本5.5.9。 register_globals没有像书中所描述的那样设置(据我所知这是v 5.5.9中的默认值)
有两个.php页面 第一页叫做form.php,这本书没有解释放在哪里。 它没有在root中工作,所以我创建了phpforms文件夹并将其放在那里
<html><head><title>First HTML Form</title></head>
<body>
<table cellpadding ="15"><td bgcolor="lightblue" >
<form action="/phpforms/form.php" method="POST" >
<p> Please enter your name: <br /> <input type="text" size=80 name="your_name">
<p> Please enter your phone: <br /> <input type="text" size=80 name="your_phone">
<p>
<input type=submit value="submit"><input type=reset value="clear">
</form>
</table></body></html>
第二页用于读取输入的vaues。
<HTML><Head><Tile>Show me the data</Title></Head><body>
<?php extract($_REQUEST, EXTR_SKIP); // Extracting the form input
print "Welcome to PHP $your_name<br />";
print "Can I call you at $your_phone<br />";
?>
</body></HTML>
当我在第一页输入数据时,它不会出错。 然而,当我尝试在第二页中读出输入的数据时,它不起作用 我得到两行显示
注意:未定义的变量:第3行的C:\ xampp \ htdocs \ Peter.php中的your_name *
注意:未定义的变量:第4行的C:\ xampp \ htdocs \ Peter.php中的your_name *
它是对PHP表单的介绍,但对于继续阅读本书非常重要。我是新手,有人可以帮助我吗?。
答案 0 :(得分:1)
只需在type=""
属性周围添加引号,然后在表单末尾插入>
。
了解POST
方法的工作原理非常重要。您的第一个表单上的action
属性应包含目标网页的网址。然后使用
$name = $_POST["your_name"];
echo $name;
在第二页中显示信息。 $_POST
表单返回一个关联数组,因此所有键都对应于表单中的name=""
属性,并且所有值都等于表单的值。请务必使用:if (isset($_POST["your_name"]){}
来处理任何异常。
答案 1 :(得分:0)
将<form>
标记的类型属性包含在引号中。
<input type=submit value="submit"><input type=reset value="clear">
应该
<input type="submit" value="submit"><input type=reset value="clear">
除此之外,您的代码似乎工作正常。
答案 2 :(得分:0)
无论您关注哪本书,我都建议您先查看一些HTML基础知识。
无论如何,我在这里重写了整个代码,实际上是尽可能尽可能接近。
我所做的是:
cellpadding
,bgcolor
。本教程的内容是使用提取 php函数将传递给表单的值提取到一些临时变量中,以便不必使用存储每个变量$ _POST ,聪明,但你经常看不到。
首先,检查extract()函数:http://php.net/manual/en/function.extract.php
我做了什么,我已经重写了您的主要代码:
应该有任何名称,在您的情况下,它应该 peter.php ,位于主目录:
<!doctype HTML>
<html>
<head>
<meta charset="utf-8">
<title>First HTML Form</title>
</head>
<body>
<table>
<tr>
<td style="background: lightblue; padding: 1%;" >
<form action="/phpforms/form.php" method="POST" >
<p> Please enter your name:</p> <br /> <input type="text" size=80 name="your_name">
<p> Please enter your phone:</p> <br /> <input type="text" size=80 name="your_phone">
<input type="submit" value="submit"><input type="reset" value="clear">
</form>
</td>
</tr>
</table>
</body>
</html>
最重要的是:
<form
,其次,您没有关闭任何<p>
标签</p>
,第三,您没有正确地附上您的提交和重置按钮,但有些浏览器仍然会正确解释它。现在,为了使其正常工作,您应该在C:\ xampp \ htdocs \文件夹中找到一个名为 phpforms 的文件夹,其中包含一个CILE CALLED form.php 。如果你没有这样,你的表单永远不会工作,因为它的目标是 form.php脚本,它位于 / phpforms 文件夹。不要忘记您已在前面的表单中的操作参数中定义了该内容,请写下:action="/phpforms/form.php"
。
此时, form.php 页面的结构应如下:
<!doctype HTML>
<html>
<head>
<meta charset="utf-8">
<title>Show me the data</title>
</head>
<body>
<?php
extract($_REQUEST, EXTR_SKIP); // Extracting the form input
print "Welcome to PHP $your_name<br />";
print "Can I call you at $your_phone<br />";
?>
</body>
</html>
它是如何运作的?
在$ _REQUEST上使用extract()将获得$ _REQUEST数组,并且根据已编译表单的名称在一系列变量中将其展开。
由于您已将上一个表单中的两个输入命名为name="your_name"
和name="your_phone"
,因此extract()函数将解析名为&#34; your_name&#的输入值34;在变量 $ your_name 中,以及名为&#34; your_phone&#34;的输入值进入变量 $ your_phone 。
提取值后,您可以使用以下方法轻松打印它们:
print "Welcome to PHP $your_name<br />";
print "Can I call you at $your_phone<br />";
输出结果如下:
主页(也许 peter.php ?):
提交后: