2012-05-25 49 views
0

在我的index.html页我从用户考虑在嵌入的链接,例如:如何显示HTML代码存储在变量中的PHP

<iframe width='560' height='315' src='http://www.youtube.com/embed/GasAmUfvXJs'  frameborder='0' allowfullscreen></iframe> 

该代码将被传递到我的PHP脚本会将其存储在一个变量中并对其执行一些验证。验证成功后,我试图在PHP脚本中回显变量。但它没有正确显示。

下面是PHP脚本:

<?php 

if(isset($_POST['embed']) && isset($_POST['date'])){ 

$embed = $_POST['embed']; 
$date = $_POST['date']; 

if(!empty($embed) && !empty($date)){ 

    echo "OK - VIDEO"; 
    $final = $embed; 
    echo "$final"; 

}else{ 
    $final = "Try again - not empty"; 
    echo "$final"; 
} 

}else{ 

echo "try again - not set"; 

} 

?> 
+0

使用ヶ辆($最终)**编辑**那就是只显示他们发布的代码。不是实际的iframe – Bono

+0

那么它代表什么? – Jeroen

+0

通过查看页面源 – optimusprime619

回答

1

如果你回声出HTML时,它会被浏览器中得到呈现,如果你想回声出的HTML源,那么你可以使用:htmlentites()

echo htmlentites($final); 

如果这不是你的后请解释:But it does not display it correctly.

另外:你守ld不输出ANY html用户输入或脚本是按照设计打开的XSS,验证不是!empty($embed)您应该仅从视频代码中取出视频的YouTube代码并从中构建自己的嵌入代码。

继承人如何待办事项说:

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
    if(!empty($_POST['embed']) && !empty($_POST['date'])){ 

     if(preg_match('#http://www.youtube.com/embed/([a-zA-Z0-9_-]+)\"#',$_POST['embed'],$match)==true){ 

      $embed = <<<EMBEDCODE 
<iframe width="640" height="360" 
     src="http://www.youtube.com/embed/{$match[1]}?feature=player_embedded" 
     frameborder="0" allowfullscreen> 
</iframe> 
EMBEDCODE; 

     }else{ 
      $embed = "Not a real youtube embedcode! Try Again"; 
     } 

    }else{ 
     $embed = "Enter youtube embedcode."; 
    } 
} 
?> 

<h1>Youtube Yada</h1> 
<form method="POST" action=""> 
    <p>Embedcode:<textarea rows="9" name="embed" cols="44"></textarea></p> 
    <p>Date:<input type="text" name="date" value="<?php echo date("F j, Y, g:i a");?>" size="20"></p> 
    <p><input type="submit" value="Submit" name="B1"></p> 
</form> 

<?php echo(isset($embed)?$embed:null);?> 

测试了:

<iframe width="560" height="315" src="http://www.youtube.com/embed/GasAmUfvXJs" frameborder="0" allowfullscreen></iframe> 
+0

它仍然显示iframe html而不是视频。它只是一个空白的空间,当我突出显示它时,它会突出显示视频的空白空间。 –

+0

@SpartanMan用一些示例代码更新了我的答案,希望它有帮助 –