我为我的俱乐部制作了联系表格。 here 现在我遇到了一个问题,即表单无法从输入到电子邮件地址的表单中提供信息。 我不知道html Code或PHP是否存在问题。 HTML:
<form action="#" method="post" style="max-width: 75%;">
<table width="100%" border="0" cellpadding="3" cellspacing="1">
<tr>
<td align="right">*Anrede:</td>
<td align="left">
<input type="radio" name=Anrede value="Hr.">Herr
<input type="radio" name=Anrede value="Fr.">Frau</td>
</tr>
<tr>
<td width="140" align="right">*Nachname:</td>
<td align="left">
<input type="text" name="nachname" value="" style="width:100%;" />
</td>
</tr>
<tr>
<td align="right">*Vorname:</td>
<td align="left">
<input type="text" name="vorname" value="" style="width:100%" />
</td>
</tr>
<tr>
<td align="right">Firma:</td>
<td align="left">
<input type="text" name="firma" value="" style="width:100%" />
</td>
</tr>
<tr>
<td align="right">*Postanschrift:</td>
<td align="left">
<input type="text" name="strasse" value="" style="width:100%" />
</td>
</tr>
<tr>
<td align="right">*Telefon:</td>
<td align="left">
<input type="text" name="telefon" value="" style="width:100%" />
</td>
</tr>
<tr>
<td align="right">*E-Mail:</td>
<td align="left">
<input type="text" name="email" value="" style="width:100%" />
</td>
</tr>
<tr>
<td align="right">*Buchungstag:</td>
<td align="left">
<input type="text" id="datepicker" />
</td>
</tr>
<tr>
<td align="right">*Erwachsene:</td>
<td align="left">
<select name="Erwachsene" style="width: 145px;">
<option selected="selected" disabled="disabled">Bitte auswählen</option>
<?php for ($i=0 ; $i <=3 0; $i++) : ?>
<option value="<?php echo $i; ?>">
<?php echo $i; ?>
</option>
<?php endfor; ?>
</select>
</td>
</tr>
<tr>
<td align="right">*Jugend:</td>
<td align="left">
<select name="Jugend" style="width: 145px;">
<option selected="selected" disabled="disabled">Bitte auswählen</option>
<?php for ($i=0 ; $i <=2 5; $i++) : ?>
<option value="<?php echo $i; ?>">
<?php echo $i; ?>
</option>
<?php endfor; ?>
</select>
</td>
</tr>
<tr>
<td align="right">*Event:</td>
<td align="left">
<input type="radio" name=myradio value="extern" checked>extern
<input type="radio" name=myradio value="intern">intern</td>
</tr>
<tr>
<td colspan="2">
<textarea rows="12" style="width:100%" name="text" placeholder="zusätzliche Informationen ..."></textarea>
</td>
<td></td>
</tr>
<tr>
<td colspan="2" align="left" nowrap>
<br />
<input type="reset" value="Formular löschen" style="width:49%" />
<input type="submit" name="submit" value="Formular absenden" style="width:49%" />
</td>
</tr>
</table>
</form>
<p>*Pflichtfelder</p>
<br />
PHP:
<?php
if(isset($_POST['submit'])){
$anrede = $_POST['Anrede'];
$last_name = $_POST['Nachname'];//required
$first_name = $_POST['Vorname'];//required
$Firma = $_POST['Firma'];
$Anschrift = $_POST['Postanschrift'];//required
$tel = $_POST['telefon'];//required
$from = $_POST['email'];//required
$tag = $_POST['buchungstag'];//required
$erwach = $_POST['Erwachsene'];//required
$jugend = $_POST['Jugend'];//required
$zusatz = $_POST['text'];
$to= "kontakt@acherner-bogenclub.de , $from";
$subject = "Anfrage auf belegung des Bogenplatzes";
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$from)) {
$error_message .= 'bitte einen gultige email eingelben.<br />';
}
$string_exp = "/^[A-Za-z .']+$/";
if(!preg_match($string_exp,$F_name)) {
$error_message .= 'Dein vorname ist nicht gültig.<br />';
}
$string_exp = "/^[A-Za-z ']+$/";
if(!preg_match($string_exp,$Anschrift)) {
$error_message .= 'bitte eine gültige addresse eingeben.<br />';
}
if(!preg_match($string_exp,$L_name)) {
$error_message .= 'Dein nachname ist nicht gültig<br />';
}
if(isset($_REQUEST['Erwachsene']) && $_REQUEST['Erwachsene'] == '0') {
echo 'Bitte anzahl der Erwachsene auswählen.<br /> ';
}
if(isset($_REQUEST['Jugend']) && $_REQUEST['Jugend'] == '0') {
echo 'Bitte anzahl der Jugendlichen auswählen.<br /> ';
}
//datepicker validation????
if(strlen($error_message) > 0) {
die($error_message);
}
$email_message = "Kontaktformular details siehe unten.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Anrede: ".clean_string($anrede)."\n";
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Firma: ".clean_string($Firma)."\n";
$email_message .= "Postanschrift: ".clean_string($Anschrift)."\n";
$email_message .= "Telefonnummer: ".clean_string($tel)."\n";
$email_message .= "Email: ".clean_string($from)."\n";
$email_message .= "Buchungstag: ".clean_string($tag)."\n";
$email_message .= "Anzahl der Erwachsenen: ".clean_string($erwach)."\n";
$email_message .= "Anzahl der Jugendlichen: ".clean_string($jugend)."\n";
$email_message .= "Zusätzliche Informationen: ".clean_string($zusatz)."\n";
// create email headers
$headers = 'From: '.$from."\r\n".
@mail($to, $email_subject, $email_message, $headers);
?>
<!-- include your own success html here -->
Vielen dank. Wir werden sobald wie möglich mit ihnen in verbindung treten.
<?php
}
?>
我希望有人可以帮助我,并且验证因某些原因无效,我尝试了很多不同的方法,但从未奏效。
答案 0 :(得分:2)
由于您的<form action=''
标签为空,因此表单在发送和重新加载页面时不会提交数据。只需设置action='#'
,我就可以使您的页面正常工作,print_r($_POST);
现在可以正确显示表单内容。
P.S&GT;关于PHP电子邮件,PHPMailer绝对是最佳选择。
进一步说明:
if(strlen($error_message) > 0) {
died($error_message);
}
Die funtion不应该是过去式。
在$email_subject
函数中看到的 mail();
是一个未定义的变量。
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Anzahl der Erwachsenen: ".clean_string($erwach)."\n";
这三个变量($ first_name,$ ast_name,$ erwach)也是未定义的。
在进入Stack Overflow之前,PLEASE 读取并检查您自己的代码。我们很乐意提供帮助,但不能指望我们成为您的错字和错误检查者。
调试:
if (mail($to, $email_subject, $email_message, $headers)){
die("Message was sent ok!!");
}
您的clean_string
函数看起来毫无意义,应该扩展为完整的字符串清理功能,而不是ad-hoc删除系统。
答案 1 :(得分:0)
尝试添加
print_r($_POST);
exit;
在if(isset($_POST['submit'])){
之前的行上
然后,这将显示表单是否发布到PHP表单,还显示它发布的内容。
答案 2 :(得分:0)
如果在同一页面上使用,请在HTML代码上方使用PHP代码。
如下所述,PHP代码几乎不需要更正:
<?php
if(isset($_POST['submit'])){
$anrede = $_POST['Anrede'];
$L_name = $_POST['Nachname'];//required
$F_name = $_POST['Vorname'];//required
$Firma = $_POST['Firma'];
$Anschrift = $_POST['Postanschrift'];//required
$tel = $_POST['telefon'];//required
$from = $_POST['email'];//required
$tag = $_POST['buchungstag'];//required
$ewach = $_POST['Erwachsene'];//required
$jugend = $_POST['Jugend'];//required
$zusatz = $_POST['text'];
$to= "kontakt@acherner-bogenclub.de , $from";
$subject = "Anfrage auf belegung des Bogenplatzes";
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$from)) {
$error_message .= 'bitte einen gultige email eingelben.<br />';
}
$string_exp = "/^[A-Za-z .']+$/";
if(!preg_match($string_exp,$F_name)) {
$error_message .= 'Dein vorname ist nicht gültig.<br />';
}
$string_exp = "/^[A-Za-z ']+$/";
if(!preg_match($string_exp,$Anschrift)) {
$error_message .= 'bitte eine gültige addresse eingeben.<br />';
}
if(!preg_match($string_exp,$L_name)) {
$error_message .= 'Dein nachname ist nicht gültig<br />';
}
if(isset($_REQUEST['Erwachsene']) && $_REQUEST['Erwachsene'] == '0') {
echo 'Bitte anzahl der Erwachsene auswählen.<br /> ';
}
if(isset($_REQUEST['Jugend']) && $_REQUEST['Jugend'] == '0') {
echo 'Bitte anzahl der Jugendlichen auswählen.<br /> ';
}
//datepicker validation????
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Kontaktformular details siehe unten.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Anrede: ".clean_string($anrede)."\n";
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Firma: ".clean_string($Firma)."\n";
$email_message .= "Postanschrift: ".clean_string($Anschrift)."\n";
$email_message .= "Telefonnummer: ".clean_string($tel)."\n";
$email_message .= "Email: ".clean_string($from)."\n";
$email_message .= "Buchungstag: ".clean_string($tag)."\n";
$email_message .= "Anzahl der Erwachsenen: ".clean_string($erwach)."\n";
$email_message .= "Anzahl der Jugendlichen: ".clean_string($jugend)."\n";
$email_message .= "Zusätzliche Informationen: ".clean_string($zusatz)."\n";
// create email headers
$headers = 'From: '.$from."\r\n".
@mail($to, $email_subject, $email_message, $headers);
?>
<!-- include your own success html here -->
Vielen dank. Wir werden sobald wie möglich mit ihnen in verbindung treten.
<?php
}
?>