我的welcome.php代码如下:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
和表格:
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
当我使用我的姓名和emailid填写表单时,它应该输出我的姓名和电子邮件ID。 但它给了我运行php文件的以下错误
Welcome
( ! ) Notice: Undefined index: name in C:\wamp\www\PHP Learning\welcome.php on line 4
Call Stack
# Time Memory Function Location
1 0.0000 236440 {main}( ) ..\welcome.php:0
Your email address is:
( ! ) Notice: Undefined index: email in C:\wamp\www\PHP Learning\welcome.php on line 5
Call Stack
# Time Memory Function Location
1 0.0000 236440 {main}( ) ..\welcome.php:0
对应于当我运行html文件时应该给我正确的输出,它只显示
在地址栏中我得到了这个:
LH/PHP%20Learning/welcome_get.php?name=shailesh+kumar&email=shailblack%40gmail.com
Not Found///
The requested URL /PHP Learning/welcome_get.php was not found on this server.
Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 80
请建议我缺少执行post方法的地方。
答案 0 :(得分:1)
您正在直接访问POST变量,但您的表单是使用GET方法提交的。
顺便说一句,你不应该 以你在你的例子中所做的方式使用全局变量。
答案 1 :(得分:0)
将您的php文件更改为
<html>
<body>
Welcome <?php echo isset($_POST["name"]) ? $_POST["name"] : ''; ?><br>
Your email address is: <?php echo isset($_POST["email"]) ? $_POST["email"] : ''; ?>
</body>
</html>
第一次执行脚本时,$_POST
变量为空数组。这就是为什么你有错误。
然后正如其他人告诉你的那样 - 改变你的方法发布。
答案 2 :(得分:0)
答案 3 :(得分:0)
您使用<form action="welcome_get.php" method="get">
执行GET
请求,但使用$_POST['name']
获取该值。
所以试试下面的例子
的welcome.php
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
和表格:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
答案 4 :(得分:0)
您的脚本正在请求网址welcome_get.php
,但您将文件命名为welcome.php
- 您需要更改其中一个。{1}}您的代码目前正在搜索不存在的文件。
如果您想发布使用method="POST"
而不是method="get"
。
当您加载页面时,您的脚本会查找$ _POST [&#39; name&#39;]和$ _POST [&#39; email&#39;]。如果您发布任何数据,会发生什么?好吧,因为你已经看到你得到错误。
在呈现变量之前检查变量是否存在,因为您无法保证它们的存在。
if(isset($_POST['email']) {
echo $_POST['email'];
}
这将检查$ _POST [&#39; email&#39;]是否存在。如果确实如此,它将回显它的价值,如果它没有,那么它将不会显示任何内容。
答案 5 :(得分:0)
更改
<form action="welcome_get.php" method="get">
到
<form action="welcome_get.php" method="post">
当您发布值时..阅读更多here
再次,你没有一个名为welcome_get.php
的文件(我从你得到的错误中理解)。它应该是welcome.php
。所以要替换ypur <form>
标签,如下所示
<form action="welcome.php" method="post">