簡體   English   中英

PHP - 使用包含引號的變量輸入隱藏字段

[英]PHP - Input hidden fields with variables that contain quotes

我試圖為一份工作機會做一名編輯。 它必須有一個預覽 function。有 2 種形式。 第一個表單提交預覽,第二個表單在預覽存在時出現並發送變量以將它們保存在數據庫中。 問題是,當提交第二個表單時,所有引號都消失了。 我嘗試了 mysql_real_escape_string、htmlspecialchars、htmlentitles,但沒有任何效果。 你知道問題出在哪里嗎? 會不會是有問題,因為我使用變量'$content'來存儲站點的內容,而不是用'echo'直接制作output? 謝謝!

<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>";
}

您需要使用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參數一起使用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM