2016-09-03 4 views
1

Я написал несколько форм, но это не сработает. Инспектор кода говорит мне, что что-то не так с функцией move_uploaded_file. Может ли кто-нибудь сказать мне, в чем проблема?php forms multiple input upload

Мой HTML-код:

<div class="setting post"> 
    <form action="add-banner.php" method="post" enctype="multipart/form-data"> 
    <input type="text" name="banner-title" placeholder="enter new banner title"><br> 
    <select name="banner-cat"> 
      <?php 
      $get_cats = mysqli_query($db,'select * from cats'); 
      while($row = mysqli_fetch_assoc($get_cats)){ 
      ?> 
      <option value="<?php echo $row['id']?>"><?php echo $row['cat_name'] ?></option> 
      <?php 
      } 
      ?> 
      </select> 
      <br> 
      <input type="file" name="banner"> 
      <br> 
    <input type="submit" name="upload" value="add new banner"> 
    </form> 
    </div> 

и это мой PHP код:

<?php 
require_once 'db.php'; 
global $db; 
$banner_title = $_POST['banner-title']; 
$banner_cat = $_POST['banner-cat']; 
$banner = $_FILES['banner']['name']; 
$banner_tmp = $_FILES['banner']['tmp_name']; 
$upload_file = move_uploaded_file($banner_tmp,'../../images/$banner'); 
$insert_banner = mysqli_query($db,"insert into banner(banner_title,banner_cat,banner_link) values ('$banner_title','$banner_cat','$banner')"); 
if($insert_banner && $upload_file){ 
    $message = 'New banner Succesfully added'; 
    echo "<script> 
    alert('".$message."'); 
    window.location.href='post.php'; 
    exit; 
    </script>"; 

    }else{$message = 'Something goes Wrong'; 
    echo "<script> 
    alert('".$message."'); 
    window.location.href='post.php'; 
    exit; 
    </script>"; 
    } 
?> 
+0

Этот код обладает множеством уязвимостей: несанкционированные входные данные используются для создания запроса и выполнения операций с файловой системой. Это рулетка с автоматом. Google up SQL-инъекция, и оглядывайтесь вокруг того, как дезинфицировать ваши входы, или ваш сайт находится в опасности. – ppeterka

ответ

1
<?php 
require_once 'db.php'; 
global $db; 
$banner_title = $_POST['banner-title']; 
$banner_cat = $_POST['banner-cat']; 
$banner = basename($_FILES['banner']['name']); 
$banner_tmp = $_FILES['banner']['tmp_name']; 
$upload_file = move_uploaded_file($banner_tmp,'/images/$banner'); 
$insert_banner = mysqli_query($db,"insert into banner(banner_title,banner_cat,banner_link) values ('$banner_title','$banner_cat','$banner')"); 
if($insert_banner && $upload_file){ 
$message = 'New banner Succesfully added'; 
echo "<script> 
alert('".$message."'); 
window.location.href='post.php'; 
exit; 
</script>"; 

}else{$message = 'Something goes Wrong'; 
echo "<script> 
alert('".$message."'); 
window.location.href='post.php'; 
exit; 
</script>"; 
} 
?> 

// Не используйте обратно папку для загруженного файла, если использовать обратно папку, используйте полный url для папки.