Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅当格式为jpg/png时上载文件_Php - Fatal编程技术网

Php 仅当格式为jpg/png时上载文件

Php 仅当格式为jpg/png时上载文件,php,Php,我编写此脚本是为了让用户上传个人资料图片: if(isset($_POST['submit'])){ $path = $_FILES["uploaded_image"]["name"]; $ext = pathinfo($path, PATHINFO_EXTENSION); //extracts file extension $tempimgloc = $_FILES["uploaded_image"]["tmp_name"]; $imagepic = ''.$_SESSI

我编写此脚本是为了让用户上传个人资料图片:

if(isset($_POST['submit'])){

  $path = $_FILES["uploaded_image"]["name"];
  $ext = pathinfo($path, PATHINFO_EXTENSION); //extracts file extension

  $tempimgloc = $_FILES["uploaded_image"]["tmp_name"];

  $imagepic = ''.$_SESSION['userid'].'-'.$_SESSION['username'].'.'.$ext.'';
  $img_url = 'img/uploaded/'.$imagepic.'';

if(move_uploaded_file($tempimgloc, "img/uploaded/".$imagepic)){
 mysql_query('UPDATE table SET img = "'.$img_url.'" WHERE userid = '.$_SESSION['userid'].'');
  echo '<script>window.location = "success.php";</script>';
} else {
  echo 'error';
 }
}

谢谢你的帮助

什么是var_dump$ext?这会让你明白为什么它不起作用,不要使用mysql\u查询。阅读上面的红色大框“不工作”->,这是否意味着所有文件类型都已上载或根本没有文件上载?你知道如果你把它加到你的第一个if语句中。。。$ext变量仍然是空的吗?我可以补充一点,检查扩展在安全性方面是毫无用处的吗?我可以编写一个恶意脚本,将文件扩展名改为.jpg,然后它将被允许上传,并使用其他漏洞执行。一种更好的检查方法是使用getimagesize和返回元素以及索引2 checkout和
if($ext == 'jpg' or $ext == 'png'){
...
}