PHP 联系表代码错误
PHP code error with contact form
我是 web 开发的初学者,我正在建立一个有联系表格的网站,当输入详细信息时,必须将详细信息发送到我的邮箱 ID。但是我不确定为什么代码不起作用。
<?php
if(isset($_POST["submit"])){
// Checking For Blank Fields..
if($_POST["name"]==""||$_POST["email"]==""||$_POST["note"]==""){
echo "Fill All Fields..";
}else{
// Check if the "Sender's Email" input field is filled out
$email=$_POST['email'];
// Sanitize E-mail Address
$email =filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate E-mail Address
$email= filter_var($email, FILTER_VALIDATE_EMAIL);
if (!$email){
echo "Invalid Sender's Email";
}
else{
$message = $_POST['note'];
$headers = 'From:'. $email2 . "\r\n"; // Sender's Email
$headers .= 'Cc:'. $email2 . "\r\n"; // Carbon copy to Sender
// Message lines should not exceed 70 characters (PHP rule), so wrap it
$message = wordwrap($message, 70);
// Send Mail By PHP Mail Function
mail("[ email removed ]", $message, $headers);
echo "Your mail has been sent successfuly ! Thank you for your feedback";
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Hire-a-Tent</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="css/style.css" rel="stylesheet">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<![endif]-->
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<!-- Javascript -->
<script src="js/jquery.placeholder.js"></script>
<script src="js/custom.js"></script>
<!-- Fav and touch icons -->
<link rel="shortcut icon" href="favicon.ico">
</head>
<body>
<div class="background">
<div class="wrapper">
<header>
<div class="tel"><span>CALL US:</span> 9738479234 <br /><span style="padding-left:150px;">9731015469</span></div>
<div class="social">
<a href="#"><img src="images/facebook.png" alt="" /></a>
<a href="#"><img src="images/twitter.png" alt="" /></a>
</div>
</header>
<div class="sidebar">
<div class="order-form">
<div class="order-form-head">
<h1>Rent -a- Tent</h1>
</div>
<div class="taxi-line"></div>
<!-- Contact Form -->
<form action="email_code.php" id="form" method="post" name="form">
<div class="inp"><input type="text" class="required" name="name" id="name" placeholder="Name..." /></div>
<div class="inp"><input type="text" class="required" name="tel" id="tel" placeholder="Telephone..." /></div>
<div class="inp"><input type="text" class="required" name="email" id="email" placeholder="Email..." /></div>
<div class="inp"><textarea class="required" name="note" id="note" placeholder="Message..."></textarea></div>
<button type="submit"></button>
<div class="spacer"></div>
</form>
<?php include "email_code.php"?>
</div>
<div class="address-box">
<img src="images/icon.png" class="icon" alt="" />
<div class="text">
<span>We are located at</span><br />
85, 4th cross road,<br />
GKW layout, vijayanagar<br />
Bengaluru-40
</div>
</div>
</div>
<div class="character">
<!-- <img src="images/transparent2.png" class="taxi-driver" alt="" /> -->
<marquee behavior="alternate">T2 Tent: Rs 100/day --- T3 Tent: Rs 200/day -- Sleeping Bag: Rs 50/day --</marquee>
</div>
<div class="spacer"></div>
<footer>
<p><strong><br/><br/>Hire-a-tent</strong> © All Rights Reserved. <!--Developed by the <a href="www.Hireatent.com">Frequency Themes --></a></p>
</footer>
</div>
</div>
</body>
</html>
这里有一些错误,所以请仔细阅读我的整个答案。
首先,你的整个代码的执行依赖于它设置的条件语句:
if(isset($_POST["submit"])){...}
它正在寻找并依赖于同名的命名属性,这很可能是您的提交按钮:
<button type="submit"></button>
需要命名:
<button type="submit" name="submit"></button>
或使用具有名称属性的输入类型:
<input type="submit" name="submit" value="Submit">
然后你有一个未定义的变量 $email2
,它很可能需要是 $email
,根据:
$email=$_POST['email'];
使用错误报告后,会同时发出 "Undefined index submit..." 警告和 "Undefined variable email2..."。
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
现在,这一行:
mail("[ email removed ]", $message, $headers);
缺少"subject"参数,这是使用mail()
时的重要参数。
即:
mail("[ email removed ]", $subject, $message, $headers);
因此,您需要为其添加一个变量。
即:
$subject = "Form submission";
有关 mail()
和 headers 的更多信息,请访问:
来自手册:
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
要检查 mail()
是否实际上已执行,请更改:
mail("[ email removed ]", $message, $headers);
到
if(mail("[ email removed ]", $message, $headers)){
echo "Mail has been sent.";
}
else{
echo "Error. Check your mail logs.";
}
If/when你看到"Mail has been sent.",那么mail()
就完成了它的工作。
如果您没有收到邮件,请检查您的垃圾邮件或联系您的托管公司(如果您在托管网站上)。
如果您 运行 从您自己的计算机上进行此操作,请确保确实安装了 PHP 和邮件,运行 并且配置正确。
脚注:
您正在使用以下两次,可以安全地删除其中一次:
$email= filter_var($email, FILTER_VALIDATE_EMAIL);
编辑:
要将其他表单变量添加到消息中,首先声明 POST 个变量:
$name=$_POST['name'];
$email=$_POST['email'];
$tel=$_POST['tel'];
然后把$message = $_POST['note'];
改成$comment = $_POST['note'];
然后做:
$message = "$name\n$email\n$tel\n$comment";
\n
添加了换行符。
我是 web 开发的初学者,我正在建立一个有联系表格的网站,当输入详细信息时,必须将详细信息发送到我的邮箱 ID。但是我不确定为什么代码不起作用。
<?php
if(isset($_POST["submit"])){
// Checking For Blank Fields..
if($_POST["name"]==""||$_POST["email"]==""||$_POST["note"]==""){
echo "Fill All Fields..";
}else{
// Check if the "Sender's Email" input field is filled out
$email=$_POST['email'];
// Sanitize E-mail Address
$email =filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate E-mail Address
$email= filter_var($email, FILTER_VALIDATE_EMAIL);
if (!$email){
echo "Invalid Sender's Email";
}
else{
$message = $_POST['note'];
$headers = 'From:'. $email2 . "\r\n"; // Sender's Email
$headers .= 'Cc:'. $email2 . "\r\n"; // Carbon copy to Sender
// Message lines should not exceed 70 characters (PHP rule), so wrap it
$message = wordwrap($message, 70);
// Send Mail By PHP Mail Function
mail("[ email removed ]", $message, $headers);
echo "Your mail has been sent successfuly ! Thank you for your feedback";
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Hire-a-Tent</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Le styles -->
<link href="css/style.css" rel="stylesheet">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<![endif]-->
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<!-- Javascript -->
<script src="js/jquery.placeholder.js"></script>
<script src="js/custom.js"></script>
<!-- Fav and touch icons -->
<link rel="shortcut icon" href="favicon.ico">
</head>
<body>
<div class="background">
<div class="wrapper">
<header>
<div class="tel"><span>CALL US:</span> 9738479234 <br /><span style="padding-left:150px;">9731015469</span></div>
<div class="social">
<a href="#"><img src="images/facebook.png" alt="" /></a>
<a href="#"><img src="images/twitter.png" alt="" /></a>
</div>
</header>
<div class="sidebar">
<div class="order-form">
<div class="order-form-head">
<h1>Rent -a- Tent</h1>
</div>
<div class="taxi-line"></div>
<!-- Contact Form -->
<form action="email_code.php" id="form" method="post" name="form">
<div class="inp"><input type="text" class="required" name="name" id="name" placeholder="Name..." /></div>
<div class="inp"><input type="text" class="required" name="tel" id="tel" placeholder="Telephone..." /></div>
<div class="inp"><input type="text" class="required" name="email" id="email" placeholder="Email..." /></div>
<div class="inp"><textarea class="required" name="note" id="note" placeholder="Message..."></textarea></div>
<button type="submit"></button>
<div class="spacer"></div>
</form>
<?php include "email_code.php"?>
</div>
<div class="address-box">
<img src="images/icon.png" class="icon" alt="" />
<div class="text">
<span>We are located at</span><br />
85, 4th cross road,<br />
GKW layout, vijayanagar<br />
Bengaluru-40
</div>
</div>
</div>
<div class="character">
<!-- <img src="images/transparent2.png" class="taxi-driver" alt="" /> -->
<marquee behavior="alternate">T2 Tent: Rs 100/day --- T3 Tent: Rs 200/day -- Sleeping Bag: Rs 50/day --</marquee>
</div>
<div class="spacer"></div>
<footer>
<p><strong><br/><br/>Hire-a-tent</strong> © All Rights Reserved. <!--Developed by the <a href="www.Hireatent.com">Frequency Themes --></a></p>
</footer>
</div>
</div>
</body>
</html>
这里有一些错误,所以请仔细阅读我的整个答案。
首先,你的整个代码的执行依赖于它设置的条件语句:
if(isset($_POST["submit"])){...}
它正在寻找并依赖于同名的命名属性,这很可能是您的提交按钮:
<button type="submit"></button>
需要命名:
<button type="submit" name="submit"></button>
或使用具有名称属性的输入类型:
<input type="submit" name="submit" value="Submit">
然后你有一个未定义的变量 $email2
,它很可能需要是 $email
,根据:
$email=$_POST['email'];
使用错误报告后,会同时发出 "Undefined index submit..." 警告和 "Undefined variable email2..."。
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
现在,这一行:
mail("[ email removed ]", $message, $headers);
缺少"subject"参数,这是使用mail()
时的重要参数。
即:
mail("[ email removed ]", $subject, $message, $headers);
因此,您需要为其添加一个变量。
即:
$subject = "Form submission";
有关 mail()
和 headers 的更多信息,请访问:
来自手册:
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
要检查 mail()
是否实际上已执行,请更改:
mail("[ email removed ]", $message, $headers);
到
if(mail("[ email removed ]", $message, $headers)){
echo "Mail has been sent.";
}
else{
echo "Error. Check your mail logs.";
}
If/when你看到"Mail has been sent.",那么mail()
就完成了它的工作。
如果您没有收到邮件,请检查您的垃圾邮件或联系您的托管公司(如果您在托管网站上)。
如果您 运行 从您自己的计算机上进行此操作,请确保确实安装了 PHP 和邮件,运行 并且配置正确。
脚注:
您正在使用以下两次,可以安全地删除其中一次:
$email= filter_var($email, FILTER_VALIDATE_EMAIL);
编辑:
要将其他表单变量添加到消息中,首先声明 POST 个变量:
$name=$_POST['name'];
$email=$_POST['email'];
$tel=$_POST['tel'];
然后把$message = $_POST['note'];
改成$comment = $_POST['note'];
然后做:
$message = "$name\n$email\n$tel\n$comment";
\n
添加了换行符。