什麼我是這樣的:如何在回聲函數中逃避PHP?
function add_email_form() {
echo "<form class=\"email-me-form\" id=\"initialize\" action=\"<?php echo $_SERVER[PHP_SELF] ?>\" method=\"post\" name=\"contact_me\">\n";
}
如何使這個語法正確的?
什麼我是這樣的:如何在回聲函數中逃避PHP?
function add_email_form() {
echo "<form class=\"email-me-form\" id=\"initialize\" action=\"<?php echo $_SERVER[PHP_SELF] ?>\" method=\"post\" name=\"contact_me\">\n";
}
如何使這個語法正確的?
除非需要,否則不要使用雙引號。使用單引號,'。這樣,除了像\ n這樣的控制字符外,您不必轉義任何內容,並且在這種情況下,請刪除雙引號。所以,上面的是:(加換行符我不會導致水平滾動條)
echo '<form class="email-me-form" id="intialize" action="'.$_SERVER['PHP_SELF'].'"
method="post" name="contact_me">'."\n";
你不需要做用htmlspecialchars()看起來像你想要什麼。
您不需要(並且實際上不能)在PHP語句中調用「<?php echo?>
」。只有當你在PHP之外時,它才能工作。在這種情況下,只需與.
連接即可。如註釋中所述,您應該在數組鍵時引用數組鍵,否則PHP會發出警告並可能會造成混淆。
事情是這樣:
echo "<form class=\"email-me-form\" id=\"initialize\" action=\"",
htmlspecialchars($_SERVER['PHP_SELF']),
"\" method=\"post\" name=\"contact_me\">\n";
如果用戶完成了define('PHP_SELF','something')',那麼這將失敗。 PHP會很禮貌,並且假設你的意思是'$ _SERVER ['PHP_SELF']',但是如果你已經啓用了它們,就會吐出警告。 – 2011-06-09 21:06:07
function add_email_form() {
echo "<form class=\"email-me-form\" id=\"initialize\" action=\"" . $_SERVER[PHP_SELF] . "\" method=\"post\" name=\"contact_me\">\n";
}
沒有報價PHP_SELF將導致一個警告,如果他們打開。 – Erik 2011-06-09 20:56:12
出於某種原因,我認爲這是一個常數,但你是對的,這是一個字符串鍵,需要引用。編輯。 – Andrew 2011-06-09 20:58:44
這是你應該這樣做的方式。我總是發現引用混淆。但是,如果您需要替換變量或特殊字符,例如真正使用單引號,並且只使用雙引號。 「\ n」 – Jan 2011-06-09 21:06:29