2013-07-18 34 views
1

基本上我有下面的代码将根据它的id值得到一个视频。使用_GET URL作为视频源

<?php 
    if (isset($_GET["id"])) { 
    $id = $_GET["id"]; 
    $video = "vid" . $id; 
    echo "<video controls><source src='{$video}' type='video/mp4'></video>"; 
    } else { 
     echo "File not found."; 
    } 
?> 

所以,如果你去http://www.animesour.com/video.php?id=555.mp4,视频名为vid555.mp4将加载(工作)。

但是,当我尝试在该代码中加载该URL时,它不会加载视频。

<video tabindex="0" controls="controls"> 
    <source src="http://www.animesour.com/video.php?id=555.mp4" type="video/mp4"> 
</video> 

任何人都知道如何使它可以工作?

+0

您应该避开$ _GET ['id']:http://www.animesour.com/video.php?id='> JimL

+0

@JimL对不起,我不太满意遵循你所说的话,你能修改代码吗? – Veloncia

+0

https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) – JimL

回答

0

您需要直接加载视频,当你直接嵌入作为SRC,因为你的代码添加了这样的输出,使第二个选项不正确,例如:

的URL直接视频:http://www.animesour.com/vid555.mp4

<video tabindex="0" controls="controls"> 
    <source src="http://www.animesour.com/vid555.mp4" type="video/mp4"> 
</video> 

如果你仍然想使用video.php?id=555.mp4那么你需要改变你的PHP读取流文件。

+0

我该怎么做,因为流是我想要的结果。 – Veloncia

+0

所以只需使用文件的直接URL,就像我看到的那样... – 2013-07-18 20:27:36

+0

无论如何要使用id = 55进行流式传输? – Veloncia

0

作为源的URL不是源。这是一个链接到将加载源代码的脚本。它不需要创建源文件,而需要指向具有视频的文件结构中的位置。因此,您需要在代码中构建结构并将其回显到标记中。

<?php 
    if (isset($_GET["id"])) { 
     $id = $_GET["id"]; 
     $video = "vid" . $id; 
     echo "<video tabindex=\"0\" controls=\"controls\">"; 
     echo "<source src=\"{$video}\" type=\"video/mp4\">"; 
     echo "</video>"; 
    } else { 
     echo "File not found."; 
    } 
?> 
0

我测试你的代码,并没有对我的作品(访问您发布的URL,或使用URL作为源)

视频播放器出现在这两个,但在视频播放也不。

0

好吧,我设法做到了。我只是改变了第一代码

<?php 
$id = $_GET["id"]; 
$file = "vid" . $id . ".mp4"; 

if (file_exists($file)) { 
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename='.basename($file)); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 
ob_clean(); 
flush(); 
readfile($file); 
exit; 
} 
?> 

我现在可以从外部的iframe用的?ID = 555 URL链接,它就会在视频文件加载到播放器中。