我正在尝试设置自己的联系表单(第一次使用PHP)。我的表单有效,并向我发送了一封电子邮件,但我收到的电子邮件无法显示用户在表单中输入的信息。
HTML
interface Two extends One {
method(val: this): void;
}
class Three implements Two {
method(val: this): void {
// do something with val
}
}
var a = new Three();
a.method(a); //OK
a.method({}); //Not OK
PHP
<label for="name">Your Name</label>
<input type="text" id="name" name="name">
<label for="email">Your Email</label>
<input type="text" id="email" name="email">
<label for="message">Your Message</label>
<textarea id="message" name="message"></textarea>
<input type="submit" value="Submit">
我只是不确定在$ htmlContent区域内编写变量的正确方法。
答案 0 :(得分:1)
您的电子邮件应显示“$ name”而不是用户输入,因为您的字符串正是如此。要将变量的值获取到字符串中,您必须将字符串与值连接,如下所示:
$name = 'foo';
$htmlContent = 'Hello World ' . $name . '!';
htmlContent将成为'Hello World foo!'
答案 1 :(得分:1)
将您的HTML内容设为模板
$htmlContent = '<html><body>
<h2>Title</h2>
<hr>
<p style="font-family:sans-serif;">
<b>Name: </b> ({name}) <br>
<b>Email: </b> ({email}) <br>
<b>Message: </b> ({message}) <br>
</p>
</body></html>';
你会看到我用{name}替换实际名称(用b / w花括号),与电子邮件和消息相同
在回显html str之前,将模板var替换为实际值
$htmlContent=str_replace('{name}',$name,$htmlContent);
$htmlContent=str_replace('{email}',$email,$htmlContent);
$htmlContent=str_replace('{message}',$message,$htmlContent);
然后回复
echo $htmlContent
一体化:
$htmlContent = '
<html><body>
<h2>Title</h2>
<hr>
<p style="font-family:sans-serif;">
<b>Name: </b> ({name}) <br>
<b>Email: </b> ({email}) <br>
<b>Message: </b> ({message}) <br>
</p>
</body></html>';
$htmlContent=sprintf($htmlContent, $name, $email, $message);
$htmlContent=str_replace('{name}',$name,$htmlContent);
$htmlContent=str_replace('{email}',$email,$htmlContent);
$htmlContent=str_replace('{message}',$message,$htmlContent);
echo $htmlContent;
答案 2 :(得分:0)
相反:
<b>Name: </b> <?php echo $name ?> <br>
或者您可以使用缩短版本:
<b>Name: </b> <?= $name ?>
答案 3 :(得分:0)
变量不会被单引号字符串中的值替换。有关详细信息,请参阅manual
答案 4 :(得分:0)
您可以将sprintf与str
一起使用,如:
%s
答案 5 :(得分:0)
“<b>Name:</b>”. $name.”<br>
你必须引用像这样的php变量使用引号来分割html和php分开