2012-04-05 106 views
0

我試圖爲工作提供一個編輯器。它必須具有預覽功能。有2種形式。第一個表單提交預覽,第二個表單預覽時出現,併發送變量將它們保存在數據庫中。問題是,當提交第二個表單時,所有引號都消失了。我嘗試了mysql_real_escape_string,htmlspecialchars,htmlentitles,但沒有任何工作。你知道問題出在哪裏嗎? 難道是因爲我用變量'$ content'來存儲網站的內容,而不是直接用'echo'輸出嗎? 謝謝!PHP - 使用包含引號的變量輸入隱藏字段

<td><input style='float:left;' type='submit' name='jobpreview' value='preview' /> 
</form>"; 
if(isset($_GET['preview'])) 
{ 
$_POST['titel'] = htmlentities($_POST['titel']); 
$_POST['elm1'] = htmlentities($_POST['elm1']); 
    $content .= " <td><form action='?s=intern&sub=neuerjob&preview' method='POST'> 
    <input type='hidden' name='titel' value='".$_POST['titel']."' /> 
    <input type='hidden' name='elm1' value='".$_POST['elm1']."' /> 
    <input style='float:left;' type='submit' name='jobsave' value='save' /> 
    </form></td></tr></table>"; 
} 
+0

請勿使用htmlentities函數。 – hjpotter92 2012-04-05 21:05:22

回答

3

您需要使用second parameter to htmlentities()來對引號進行編碼。

$titel = htmlentities($_POST['titel'], ENT_QUOTES); 
$elm1 = htmlentities($_POST['elm1'], ENT_QUOTES); 

<input type='hidden' name='titel' value='".$titel."' /> 
<input type='hidden' name='elm1' value='".$elm1."' /> 

爲此,htmlentities()是矯枉過正雖然,你可以使用htmlspecialchars() 也與ENT_QUOTES PARAM。

$titel = htmlspecialchars($_POST['titel'], ENT_QUOTES); 
$elm1 = htmlspecialchars($_POST['elm1'], ENT_QUOTES); 
+0

對,工作。非常感謝你!! – Crayl 2012-04-05 21:10:16