2016-09-03 4 views
1

私は複数の書式を書いていますが、動作しません。コードインスペクタは、move_uploaded_file関数に何か問題があると私に伝えます。誰が問題が何であるか教えてもらえますか?PHPは複数入力のアップロードを行います

私の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の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。

関連する問題