Javascript和PHP扫描裸露

时间:2014-01-16 00:33:55

标签: javascript php client scanning

我试图不允许将有裸露的文件上传到我的服务器。我发现在线javascript会扫描照片以获得裸露。它附带演示图片和html文件和js文件。我正在使用PHP上传文件,如果扫描发现图片有裸露,我无法允许。

这是我的代码示例:

$q= "insert into $table values('', '$email', '$aim', '$icq', '$yahoo', '$homepage', '0', '0', '0', '0', '0', '0', '', now(),'$myip','$email2','$password','$title','$download','$approved','$allowdelete','$author','$facebook','$piclink','$domain','$option3','$secret')";
    $result = mysql_query($q) or die("Failed: $sql - ".mysql_error());
    $q = "select max(id) from $table";
    $result = mysql_query($q);
    $resrow = mysql_fetch_row($result);
    $id = $resrow[0];
    $file = $_FILES['file']['name'];
    move_uploaded_file($_FILES['file']['tmp_name'], "pics/".$id.".".$picext);
    $picfile=$id.".".$picext;
    echo '<script type="text/javascript" <src="nude.js">';
    echo 'nude.load("pics/".<? echo $picfile; ?>);nude.scan(function(result){if(!result){ <? $nude = false; ?>;}else{ $nude = true;}})';
    echo '</script>';
if ($nude === false) { 
    $q = "update $table set picfile = '".$id.".".$picext."' where id='$id'";
    $result = mysql_query($q);
    Header("Location: index.php?id=$id");
    } else{
    echo '<script type="text/javascript">';
    echo 'alert("Nudity found. Please try again.")';
    echo '</script>';
    $q = "delete from $table where id='$id'";
    $result = mysql_query($q);
    unlink("pics/".$picfile);
    Header("Location: new2.php");
    }

代码上传文件,然后它应该检查文件是否有裸露并删除它,并告诉用户如果发现裸露则再次尝试。如果未找到裸露,则将用户带到网站的主页面。(这是添加新照片页面)。所有的PHP都运行正常,但由于javascript似乎没有运行我上传的文件然后因为$裸未设置它进入if语句的else而且js再次运行(没有警报)框),然后删除该文件。如何运行javascript来扫描我上传的图片以获取裸体?我在这里做错了什么?

非常感谢任何帮助!

P.S。

对于那些想要查看正在进行扫描的js文件的人:http://pastebin.com/MpG7HntQ

1 个答案:

答案 0 :(得分:1)

问题是这一行:

echo 'nude.load("pics/".<? echo $picfile; ?>);nude.scan(function(result){if(!result){ <? $nude = false; ?>;}else{ $nude = true;}})';

没有做你认为的事情。

当您通过echo()输出JavaScript时,该代码会在浏览器或客户端运行,并且不会运行,直到之后 PHP脚本具有结束。

您需要将代码移植到PHP或使用AJAX调用来报告图像的有效性。