【发布时间】:2013-06-08 20:00:02
【问题描述】:
在这个网站Site 上有 4 个复选框。目前复选框值未显示在电子邮件中。 要获取电子邮件中的复选框值需要做什么?
这是整个代码kontakt.phpsendmail.class.php
kontakt.php:
<form action="kontakt.php" method="post">
<label for="name">Ihr Name:</label>
<input type="text" class="get1" name="name" value="<?php echo htmlspecialchars($_POST['name']); ?>" />
<br />
<label for="phone">Telefonnummer (bitte nur Ziffern):</label>
<input type="text" class="get1" name="phone" value="<?php echo htmlspecialchars($_POST['phone']); ?>" />
<br />
<label for="email">E-Mail-Adresse:</label>
<input type="text" class="get1" name="email" value="<?php echo htmlspecialchars($_POST['email']); ?>" />
<br />
<label for="message">Ihre Mitteilung an uns:</label>
<textarea cols="20" rows="5" name="message"><?php echo htmlspecialchars($_POST['message']); ?></textarea>
<br />
<label>Welche Leistungen interessieren Sie besonders?</label>
<label style="display:inline;" for="dachstuehle">Dachstühle</label>
<input class="kaestchen" type="checkbox" name="interessen[]" id="dachstuehle" value="dachstuehle" />
<label style="display:inline;" for="holzbau">Holzbau</label>
<input class="kaestchen" type="checkbox" name="interessen[]" id="holzbau" value="holzbau" />
<label style="display:inline;" for="innenausbau">Innenausbau</label>
<input class="kaestchen" type="checkbox" name="interessen[]" id="innenausbau" value="innenausbau" />
<label style="display:inline;" for="trocken">Trockenbau</label>
<input class="kaestchen" type="checkbox" name="interessen[]" id="trockenbau" value="trockenbau" />
<br /><br />
<input type="hidden" value="1" name="s" />
<input type="submit" value="Nachricht versenden" name="submit" />
</form>
sendmail.class.php:
<?php
class sendMail {
var $to = 'email'; // set contact email
var $name = '';
var $phone = '';
var $email = '';
var $body = '';
var $interessen = '';
var $error = array();
var $headers = array();
function parseBody() {
$message = '<html><body>';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= '<tr style="background-color: #eee;"><td><strong>Name:</strong> </td><td>' . $this->name . '</td></tr>';
$message .= "<tr><td><strong>Telefonnummer:</strong> </td><td>" . $this->phone . "</td> </tr>";
$message .= "<tr><td><strong>E-Mail-Adresse:</strong> </td><td>" . $this->email . "</td></tr>";
$message .= "<tr><td><strong>Text:</strong> </td><td>" . $this->body . "</td></tr>";
$message .= "<tr><td><strong>Interessiert an:</strong> </td><td>" . $this->interessen . "</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
$this->body = $message;
}
function send() {
if ($this->error) {
return FALSE;
}
if (mail($this->to, '=?utf-8?B?' . base64_encode($this->subject) . '?=', $this->body, $this->headers)) {
return TRUE;
} else {
$this->error[] = 'Fehler beim senden';
return FALSE;
}
}
}
?>
【问题讨论】:
-
您希望它们如何显示在电子邮件中?逗号分隔?
-
interessen 将是一个数组,看起来您将其视为字符串?在你的全班我看不到你在哪里设置这个值。
-
在您的
sendmail.class.php中,您不会检索$_POST['interessen'],它是一个数组。您需要将其添加到加载帖子值的函数中,并在其上调用implode()以返回一个字符串。 -
请注意,如果您有机会进行更改,建议将您的代码更新为 PHP5 样式类,而不是使用
var关键字的旧 PHP4 样式。 php.net/manual/en/language.oop5.basic.php -
好的,我检查了你的 sendmail 类,你需要在你的 setParams() 方法中这样做