我有後提交表單應該呈現表單字段到PHP文件的回聲語句中(其中還包含HTML元素)的stripslashes
我的問題一個HTML表單的是,雖然結果都是以預期,對特定的情況下,當表單條目有「或」在那裏,他們在results.php頁轉義
我的文件:
form.html
<form action="./results.php" method="post" id="sgemail">
<table align="center" border="1" width="60%" style="border-color: #D2DFF5;">
<tr>
<td width="50%" style="padding-left: 8px; text-align: left;">
<div class="form-group">
<strong>Article 1 Title<br /></strong>
<input type="text" class="form-control" id="ifn1title" placeholder="" name="ifn1title"><br />
<strong>Article 1 URL<br /></strong>
<input type="text" class="form-control" id="ifn1url" placeholder="" name="ifn1url">
</div>
</td>
<td width="50%" style="padding-left: 8px; text-align: left;">
<div class="form-group">
<strong>Article 1 Description<br /></strong>
<textarea rows="5" class="form-control" cols="10" name="ifn1desc" form="sgemail"></textarea>
</div>
</td>
</tr>
</table>
<table align="center" width="60%">
<tr>
<td align="center" width="33%" style="padding-left: 8px; text-align: left;">
<input class="btn btn-primary" type="submit" value="Generate Results HTML Code">
</td>
</tr>
</table>
</form>
results.php
<?php
if (isset($_POST['ifn1title']))
if (isset($_POST['ifn1url']))
if (isset($_POST['ifn1desc']))
{
$form_ifn1t = $_POST['ifn1title'];
$form_ifn1u = $_POST['ifn1url'];
$form_ifn1d = $_POST['ifn1desc'];
echo "
<table style=\"background-color:#D6E3F0;\" bgcolor=\"#D6E3F0\" align=\"center\" width=\"100%\">
<tr align=\"center\">
<td align=\"center\"><br />
<textarea id=\"selectori\" rows=\"50\" cols=\"120\" onclick=\"this.focus();this.select()\" readonly=\"readonly\">
<ul>
<li><a href=\"$form_ifn1u\"><strong>$form_ifn1t</strong></a><br />$form_ifn1d</li>
</ul>
</textarea>
</td>
</tr>
</table>";
}
?>
當我提交表單,
結果在相應的位置上來如
<ul>
<li><a href="http://www.example.com"><strong>\"Article\"</strong></a><br />\"Test Description\"</li>
</ul>
如何解決它,因此結果如下清理乾淨?
<ul>
<li><a href="http://www.example.com"><strong>Article</strong></a><br />Test Description</li>
</ul>
感謝
編輯:
我說我的PHP文件的頂部以下,這固定我的問題
{
$_GET = json_decode(stripslashes(json_encode($_GET, JSON_HEX_APOS)), true);
$_POST = json_decode(stripslashes(json_encode($_POST, JSON_HEX_APOS)), true);
$_COOKIE = json_decode(stripslashes(json_encode($_COOKIE, JSON_HEX_APOS)), true);
$_REQUEST = json_decode(stripslashes(json_encode($_REQUEST, JSON_HEX_APOS)), true);
}
IT這行與防範代碼注入? 感謝
它看起來像你需要關閉魔術引號,但如果你有這個問題,你真的需要升級你的PHP版本,因爲三年前魔術引號被刪除。 –
我在PHP 5.3.29中如何關閉這個文件中的魔術引號 – valdroni