Youtube嵌入存储在数据库中的代码不会出现在HTML表单中

时间:2014-05-02 00:45:39

标签: php html sql youtube

我有一个UPDATE php页面来编辑包含Youtube的嵌入代码的网站数据库,然后在调用该表时正确显示该代码。在更新页面上,我调用数据库的相同部分,以便能够更改/编辑嵌入代码,但它不会在表单中仅显示原始完整代码<iframe width=

<html>
<?
if (isset($_POST['update'])) {
?>

  <form method="post">
      Submitter: <input type="text" name="submitter" value="<?= $video['submitter'] ?>" /> <br />
      Video Title: <input type="text" name="videoTitle" value="<?= $video['videoTitle'] ?>" /> <br />
      Channel Name: <input type="text" name="channelName" value="<?= $video['channelName'] ?>" /> <br />
      Video Link: <input type="text" name="videoLink" value="<?= $video['videoLink'] ?>" /> <br />
      <input type="hidden" name="videoId" value="<?= $video['videoId'] ?>" />
      <input type="submit" value="Save" name="save" />  
  </form>

<?
  }//endIf
?>
</html>

1 个答案:

答案 0 :(得分:1)

您必须使用htmlentities将引号转换为HTML实体。

$str = htmlentities($str);

http://php.net/manual/en/function.htmlentities.php

像这样使用:

  <form method="post">
      Submitter: <input type="text" name="submitter" value="<?= $video['submitter'] ?>" /> <br />
      Video Title: <input type="text" name="videoTitle" value="<?= $video['videoTitle'] ?>" /> <br />
      Channel Name: <input type="text" name="channelName" value="<?= $video['channelName'] ?>" /> <br />
      Video Link: <input type="text" name="videoLink" value="<?= htmlentities($video['videoLink']) ?>" /> <br />
      <input type="hidden" name="videoId" value="<?= $video['videoId'] ?>" />
      <input type="submit" value="Save" name="save" />  
  </form>

此外,如果您要将此数据保存到数据库中,请确保在将表单发送的数据保存到数据库之前调用html_entity_decode。