首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >简单的php表单

简单的php表单
EN

Stack Overflow用户
提问于 2012-07-31 20:53:43
回答 7查看 663关注 0票数 0

我有一个简单的联系,我希望"POST“通过一个函数,但我似乎不能让它工作?

当我将动作发送到外部的"send.php“文件,但我希望将所有内容都保存在一个文件中时,这个表单就可以工作了。

代码语言:javascript
复制
<form action="send()" id="contactform" method="POST">
<p>Name<input type="text" name="name">
  Email
  <input type="text" name="email">
  Phone
  <input type="text" name="phone">
</p>
<p>Message
  <textarea name="message" rows="6" cols="25"></textarea>
  <br />
<input type="submit" value="Send">
</p>
</form>

<?php
function send()
{
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent=" From: $name \n  Phone: $phone \n Email: $email \n Message: $message";
$recipient = "email@email.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
}
?>
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-07-31 20:57:14

你不能从<form>标签调用php代码。通常,您将其作为“回发”处理回同一页,并检查是否设置了表单变量以确定是否发生了回发:

代码语言:javascript
复制
<form action="" id="contactform" method="POST">

然后在你的代码中:

代码语言:javascript
复制
if (isset($_POST['name']))
    send();
票数 5
EN

Stack Overflow用户

发布于 2012-07-31 21:12:20

动作字段将是所呈现的html的一部分。这意味着,它是静态的或者是'client‘的一个属性。根据the normative,它还应该是有效的绝对或相对地址。如果你把它留空,它在大多数(不是所有)情况下都可以工作,但它不会正确验证。

PHP代码在您的网页所在的服务器上运行。这意味着,它是在你得到任何东西之前运行的,然后你的浏览器就会收到html代码。因此,它需要在提交代码后再次运行,因此需要一个页面来运行它。

想象一下你在一家餐馆里。首先,你给服务生点了一些食物。这将是您尝试进入X网页。然后在厨房里准备食物。这将是正在执行的PHP代码。当食物准备好时,服务生就会给你送来。这是你下载信息,接收html代码。你甚至可以在你喜欢的时候改变它(javascript),但是这超出了你的问题的范围。关注OP,改变你的食物安排(在客户端做一些事情)会改变厨房里已经做过的事情吗?不,它不能。唯一的选择是告诉服务生你想要的食物变化(填写表格),并礼貌地告诉他去厨房要这些变化(这就是把变化寄到哪里)。这可能是一个愚蠢的例子,但它表明了这一点。

我没有把代码作为其他人的代码来解决你的问题,我只是想解释为什么你的代码不能工作,这样你就能更好地理解html/PHP。

票数 1
EN

Stack Overflow用户

发布于 2012-07-31 20:55:43

form标签更改为

代码语言:javascript
复制
<form action="" ... >
    ...
</form>

如果设置了$_POST['message'],则在声明之后调用send()

action属性只告诉浏览器应该将信息发送到哪个网页;它与告诉浏览器在到达后运行哪个函数没有任何关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11740563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档