我正在爲我的網站創建一個共享頁面。我希望用戶能夠與格式化的HTML一起發送消息。如何將字符串添加到具有html的數據類型?
所以我有。
$message = $_REQUEST['message'];
$page = 'some html code';
mail($TO,$subject,$page, $headers);
我想$message
和$page
加在一起。
我正在爲我的網站創建一個共享頁面。我希望用戶能夠與格式化的HTML一起發送消息。如何將字符串添加到具有html的數據類型?
所以我有。
$message = $_REQUEST['message'];
$page = 'some html code';
mail($TO,$subject,$page, $headers);
我想$message
和$page
加在一起。
我用heredoc完成什麼(我覺得)你試圖去做。這個例子可能看起來像
$message = "I'm a message";
$page = <<<HTML
<p>I'm a $message that's been inserted into html.</p>
HTML;
像其他用戶說我之前,永遠,永遠使用直接輸入從沒有先消毒或過濾它的用戶。
是的,這是我的我喜歡這樣做。我試着做你在這裏做的,但在電子郵件中,它只顯示變量$消息而不是消息。 – JamesTBennett 2010-05-14 22:51:22
@creocare - 請務必仔細閱讀heredoc文檔(http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)。當我第一次使用它時,我也遇到了一些問題;)有一些非常重要的問題可能會導致您遇到一些問題。要特別注意關於分隔符的規則。 你會考慮發佈給你麻煩的heredoc代碼嗎?這可能會有所幫助。 – 2010-05-14 22:59:39
你可以做$message .= $page;
它相當於「追加$page
到$message
」
如果你只想做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!"
?>
那麼這似乎並不奏效。我怎樣才能在HTML中插入$ message? – JamesTBennett 2010-05-12 23:09:12
採取
$body = $message . $page;
mail($TO,$subject,$body, $headers);
例子我會強烈勸你事先消毒用戶輸入。
只是做到以下幾點它應該工作:
$message = $_REQUEST['message'];
$message .= 'some html code';
mail($TO,$subject,$page, $headers);
的.
是連接運算符,你可以閱讀更多關於它here.
你能解釋一下「消毒」嗎? – JamesTBennett 2010-05-13 00:40:52
不要相信用戶。假設每個用戶都是惡意的(病態的思想,但非常方便)。所以基本上,你必須驗證所有的用戶輸入,以防止諸如SQL注入,XSS攻擊等。瀏覽以下內容: http://devzone.zend.com/article/1113 – 2010-05-13 01:17:42
回答這裏的問題...
嗯,這似乎並不奏效。 如何將$ 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函數
這是一個壞主意,一旦你允許用戶插入HTML到您的網頁,而不考慮他們可能會把得到你的動態消息到HTML電子郵件模板進入你的頁面,那麼它就不再是你的頁面了。 – 2010-05-12 23:13:12
是你的問題「如何連接兩個字符串」或「如何替換另一個字符串」或「如何發送HTML電子郵件」?你知道在PHP字符串中有一個「替換」方法,並且「評估字符串內的變量」的雙引號也可以起作用,讓專業人士知道如何使用 – Ayyash 2010-05-12 23:23:32