2012-05-25 77 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用一些示例代碼更新了我的答案,希望它有幫助 –