2010-05-12 60 views
1

我正在爲我的網站創建一個共享頁面。我希望用戶能夠與格式化的HTML一起發送消息。如何將字符串添加到具有html的數據類型?

所以我有。

$message = $_REQUEST['message']; 

$page = 'some html code'; 

mail($TO,$subject,$page, $headers); 

我想$message$page加在一起。

+0

這是一個壞主意,一旦你允許用戶插入HTML到您的網頁,而不考慮他們可能會把得到你的動態消息到HTML電子郵件模板進入你的頁面,那麼它就不再是你的頁面了。 – 2010-05-12 23:13:12

+0

是你的問題「如何連接兩個字符串」或「如何替換另一個字符串」或「如何發送HTML電子郵件」?你知道在PHP字符串中有一個「替換」方法,並且「評估字符串內的變量」的雙引號也可以起作用,讓專業人士知道如何使用 – Ayyash 2010-05-12 23:23:32

回答

0

我用heredoc完成什麼(我覺得)你試圖去做。這個例子可能看起來像

$message = "I'm a message"; 

$page = <<<HTML 
<p>I'm a $message that's been inserted into html.</p> 
HTML; 

像其他用戶說我之前,永遠,永遠使用直接輸入從沒有先消毒或過濾它的用戶。

+0

是的,這是我的我喜歡這樣做。我試着做你在這裏做的,但在電子郵件中,它只顯示變量$消息而不是消息。 – JamesTBennett 2010-05-14 22:51:22

+0

@creocare - 請務必仔細閱讀heredoc文檔(http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)。當我第一次使用它時,我也遇到了一些問題;)有一些非常重要的問題可能會導致您遇到一些問題。要特別注意關於分隔符的規則。 你會考慮發佈給你麻煩的heredoc代碼嗎?這可能會有所幫助。 – 2010-05-14 22:59:39

+0

$ message = $ _REQUEST ['message']; $頁= <<< '

$消息

'; – JamesTBennett 2010-05-15 00:05:11

0

你可以做$message .= $page;

它相當於「追加$page$message

0

如果你只想做concatinate兩個字符串?從http://php.net/manual/en/language.operators.string.php

<?php 
$a = "Hello "; 
$b = $a . "World!"; // now $b contains "Hello World!" 

$a = "Hello "; 
$a .= "World!";  // now $a contains "Hello World!" 
?> 
+0

那麼這似乎並不奏效。我怎樣才能在HTML中插入$ message? – JamesTBennett 2010-05-12 23:09:12

0

採取

$body = $message . $page; 
mail($TO,$subject,$body, $headers); 

例子我會強烈勸你事先消毒用戶輸入。

只是做到以下幾點它應該工作:

$message = $_REQUEST['message']; 

$message .= 'some html code'; 

mail($TO,$subject,$page, $headers); 

.是連接運算符,你可以閱讀更多關於它here.

+0

你能解釋一下「消毒」嗎? – JamesTBennett 2010-05-13 00:40:52

+0

不要相信用戶。假設每個用戶都是惡意的(病態的思想,但非常方便)。所以基本上,你必須驗證所有的用戶輸入,以防止諸如SQL注入,XSS攻擊等。瀏覽以下內容: http://devzone.zend.com/article/1113 – 2010-05-13 01:17:42

0

回答這裏的問題...

嗯,這似乎並不奏效。 如何將$ message添加到 html? - creocare

$template = '<html> 
      <body> 
      <h1>A message from something.com</h1> 
      <p> 
      {{userMessage}} 
      </p> 
      </body 
      </html>'; 

$userMessage = 'hey there im the message'; 
$message = str_replace('{{userMessage}}', $userMessage, $template); 
echo $message; 

您可以使用str_replace函數

相關問題