嗨,我的php和html表单有问题。我正在尝试做的只是获取一个包含 7 个输入字段的表单,其中 6 个是输入字段或文本区域,一个是复选框。我有一个隐藏字段,前 3 个框隐藏字段是名字和消息。我唯一的问题是当我添加新的输入框时,它会显示 500 错误。我的代码如下:
<?php
// display form if user has not clicked submit
if (!isset($_POST["submit"]))
{
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="hidden" name="subject" value="can you create me an account"><br>
Message: <textarea rows="10" cols="40" name="message"></textarea><br>
first <input type="text" name="first_name" >
<input type="submit" name="submit" value="Submit Feedback">
</form>
<?php
}
else
// the user has submitted the form
{
// Check if the "subject" input field is filled out
if (isset($_POST["subject"]))
{
$subject = $_POST["subject"];
$message = $_POST["message"];
$first = $_POST["first_name"];
$message = wordwrap($message, 70);
$first = wordwrap($first, 70);
// send mail
mail("summat@gmail.com",$subject,$message,$first,"subject: $subject'n");
echo "Thank you for sending us feedback";
当我添加新的输入框时,我的代码如下所示:
<?php
// display form if user has not clicked submit
if (!isset($_POST["submit"]))
{
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="hidden" name="subject" value="can you create me an account"><br>
Message: <textarea rows="10" cols="40" name="message"></textarea><br>
first <input type="text" name="first_name" >
last <input type="text" name="last_name" >
<input type="submit" name="submit" value="Submit Feedback">
</form>
<?php
}
else
// the user has submitted the form
{
// Check if the "subject" input field is filled out
if (isset($_POST["subject"]))
{
$subject = $_POST["subject"];
$message = $_POST["message"];
$first = $_POST["first_name"];
$last = $_POST["last_name"];
$message = wordwrap($message, 70);
$first = wordwrap($first, 70);
$last = wordwrap($last, 70);
// send mail
mail("summat@gmail.com",$subject,$message,$first,$last,"subject: $subject'n");
echo "Thank you for sending us feedback";
当我添加它们时,所有内容都会显示在屏幕上,但是当我按提交时,我得到:
500 - 内部服务器错误。您的资源有问题 正在寻找,但无法显示。
并且没有提交任何内容。是因为它在发送或大量数据之前超时,还是我只是错过了一些非常基本的东西?
任何帮助将不胜感激。
问题是在第二个示例中,当 mail() 函数接受 5 个变量时,您尝试将 6 个变量传递给它。在此处查看如何传递其他标头的信息。
6 个变量将导致:
警告:mail() 最多需要 5 个参数,其中 6 个在 LINE 上的您的网站中给出
解决方案示例:
<?php
//var_dump($_POST);
if (isset($_POST["subject"]))
{
$subject = $_POST["subject"];
$message = $_POST["message"];
$first = $_POST["first_name"];
$last = $_POST["last_name"];
$name= "$first $last";
}
$message = wordwrap($message, 70);
$first = wordwrap($first, 70);
$last = wordwrap($last, 70);
mail("summat@gmail.com",$subject,$message,$name,"subject: $subject'n");
echo "Thank you for sending us feedback";
?>
回答您的回复:
菲律宾语:
<?php
//var_dump($_POST);
if (isset($_POST["subject"]))
{
$subject = $_POST["subject"];
$message = $_POST["message"];
$first = $_POST["first_name"];
$last = $_POST["last_name"];
$company = $_POST["company"];
$email = $_POST["email"];
$telnr = $_POST["telnr"];
$description = $_POST["description"];
$therest = "First name= $first" . "'r'n" . "Last name= $last" . "'r'n" . "Last name= $last" . "'r'n" . "Company= $company" . "'r'n" . "Email= $email" . "'r'n" . "Telnr= $telnr" . "'r'n" . "Description= $description";
//echo "$therest <br>";
$message = wordwrap($message, 70);
$first = wordwrap($first, 70);
$last = wordwrap($last, 70);
mail("Your Email Address Here",$subject,$name,$therest,"subject: $subject'n");
echo "Thank you for sending us feedback";
}
.HTML
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="hidden" name="subject" value="can you create me an account"><br>
Message: <textarea rows="10" cols="40" name="message"></textarea><br>
first <input type="text" name="first_name" ><br>
last <input type="text" name="last_name" ><br>
company <input type="text" name="company" ><br>
email <input type="text" name="email" ><br>
Telephone number <input type="text" name="telnr" ><br>
Description <input type="text" name="description" ><br>
<input type="submit" name="submit" value="Submit Feedback">
</form>
演示:这里
它会将邮件发送到您在表格中输入的邮件