参考PHP文件的HTML部分中的PHP变量

时间:2017-12-02 12:20:30

标签: php html variables

我正在尝试设置自己的联系表单(第一次使用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区域内编写变量的正确方法。

6 个答案:

答案 0 :(得分:1)

您的电子邮件应显示“$ name”而不是用户输入,因为您的字符串正是如此。要将变量的值获取到字符串中,您必须将字符串与值连接,如下所示:

$name = 'foo';
$htmlContent = 'Hello World ' . $name . '!';

htmlContent将成为'Hello World foo!'

答案 1 :(得分: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>';
    
  2. 你会看到我用{name}替换实际名称(用b / w花括号),与电子邮件和消息相同

    1. 在回显html str之前,将模板var替换为实际值

       $htmlContent=str_replace('{name}',$name,$htmlContent);
       $htmlContent=str_replace('{email}',$email,$htmlContent);
       $htmlContent=str_replace('{message}',$message,$htmlContent);
      
    2. 然后回复

      echo $htmlContent
      
    3. 一体化:

      $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)

您可以将sprintfstr一起使用,如:

%s

答案 5 :(得分:0)

“<b>Name:</b>”. $name.”<br>

你必须引用像这样的php变量使用引号来分割html和php分开