繁体   English   中英

这个 POST 方法有什么问题?

[英]What's wrong with this POST method?

我试图在我的 php 中修复我的这个上传代码:

<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>  
<?php 
$nama=$_SESSION["username"];
if (($nama)!='Admin'){
echo "<script>
     window.location = '/home'
     </script>";
}
?>

<h2>Upload Item Panel</h2>
<p><span class="error">*Semua harus diisi</span></p>
<form method="post" action="listingupload.php/" enctype="multipart/form-data">  
  Nama Barang: <input type="text" name="name" value="">
  <br><br>
  Stock    :<input type="text" name="stock" value="">
  <br><br>
  Warna: <input type="text" name="warna" value="">
  <br><br>
  RAM: <input type="text" name="ram" value="">
  <br><br>
  kondisi: <input type="text" name="kondisi" value="">
  <br><br>
  Harga: <input type="text" name="harga" value="">
  <br>
 <b>Harap mengisi kolom harga tanpa titik (Dua juta rupiah = 2000000)</b>
  <br><br>
  Harga Sebelum diskon: <input type="text" name="hargabefore" value="">
  <br><br>
  Deskripsi: <textarea name="deskripsi" rows="5" cols="40"></textarea>
  <br><br>
    Gambar Listingan:<br><br>
    <input type="file" name="pic"><br><br>
    Gambar Detail 1:<br><br>
    <input type="file" name="pic2"><br><br>
    Gambar Detail 2:<br><br>
    <input type="file" name="pic3"><br><br>
    Gambar Detail 3:<br><br>
    <input type="file" name="pic4"><br><br>
    Gambar Detail 4:<br><br>
    <input type="file" name="pic5"><br><br>
    Gambar Detail 5:<br><br>
    <input type="file" name="pic6"><br><br>
    <input type="submit" value="POST" name="submit">
</form>

</body>
</html>

这是表单页面的代码,这是 POST 方法的代码:

<?php
$namafile = $_FILES['pic']['name'];
$namafile2 = $_FILES['pic2']['name']; 
$namafile3 = $_FILES['pic3']['name'];  
$namafile4 = $_FILES['pic4']['name'];  
$namafile5 = $_FILES['pic5']['name'];  
$namafile6 = $_FILES['pic6']['name'];  
$ukuran = $_FILES['pic']['size'];  
$error = $_FILES['pic']['error']; 


$ukuran2 = $_FILES['pic2']['size'];  
$error2 = $_FILES['pic2']['error']; 

$ukuran3 = $_FILES['pic3']['size'];  
$error3 = $_FILES['pic3']['error']; 

$ukuran4 = $_FILES['pic4']['size'];  
$error4 = $_FILES['pic4']['error']; 

$ukuran5 = $_FILES['pic5']['size'];  
$error5 = $_FILES['pic5']['error']; 

$ukuran6 = $_FILES['pic6']['size'];  
$error6 = $_FILES['pic6']['error']; 

include 'mysqldata.php';

$item=$_POST['name'];
$deskripsi=$_POST['deskripsi'];
$price=$_POST['harga'];
$stock=$_POST['stock'];
$ram=$_POST['ram'];
$warna=$_POST['warna'];
$kondisi=$_POST['kondisi'];
$hargabefore=$_POST['hargabefore'];


mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn= new mysqli($host,$dbUsername,$dbPassword,$dbname);
if (mysqli_connect_error()){
    echo mysqli_errno($this->db_link);
    die('Error ('.mysqli_connect_errno().')'.mysqli_connect_error());
} else{
echo "Redirecting....\n";
if (move_uploaded_file($_FILES['pic']['tmp_name'],'listing/'.$namafile)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic2']['tmp_name'],'listing/'.$namafile2)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic3']['tmp_name'],'listing/'.$namafile3)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic4']['tmp_name'],'listing/'.$namafile4)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic5']['tmp_name'],'listing/'.$namafile5)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic6']['tmp_name'],'listing/'.$namafile6)){
        echo "Success";
}else{
echo "Failed";
}
$sql = "INSERT INTO $dbname.itemlist(Itemname, Description,Harga,Image,stock,picture,picture2,picture3,picture4,picture5,warna,ram,kondisi,pseudoprice) VALUES ('$item','$deskripsi','$price','$namafile','$stock','$namafile2','$namafile3','$namafile4','$namafile5','$namafile6','$warna','$ram','$kondisi','$hargabefore')";
$conn->query($sql);

}
?>

有时这工作正常,所以我将所有数据和文件上传到 mysql,但有时它只给我 PHP 通知 PHP 的 PHP 通知 PHP 的图像未定义的数据索引等。

我完全不知道为什么会发生这种情况,有人可以帮我解决这个问题吗?

编辑:我确实填写了所有表单数据,但是当我发布它时,有时它仍然显示未定义的索引,问题是,如果它显示 UNDEFINED INDEX 并不意味着我的所有数据都没有发送到mysql? 因为确实填写了我表单中的所有数据,所以问题是在 POST 脚本中它告诉我所有数据都是 NULL(未定义索引)

如果我只上传了 2-3 张图片,则代码可以正常工作,但如果我上传了 5 张图片,则会出现未定义的索引错误

我假设您必须检查是否提交了表单。

if(!empty($_POST)  && !empty($_FILES))
{
$namafile = $_FILES['pic']['name'];
$namafile2 = $_FILES['pic2']['name']; 
$namafile3 = $_FILES['pic3']['name'];  
$namafile4 = $_FILES['pic4']['name'];  
$namafile5 = $_FILES['pic5']['name'];  
$namafile6 = $_FILES['pic6']['name'];  
$ukuran = $_FILES['pic']['size'];  
$error = $_FILES['pic']['error']; 


$ukuran2 = $_FILES['pic2']['size'];  
$error2 = $_FILES['pic2']['error']; 

$ukuran3 = $_FILES['pic3']['size'];  
$error3 = $_FILES['pic3']['error']; 

$ukuran4 = $_FILES['pic4']['size'];  
$error4 = $_FILES['pic4']['error']; 

$ukuran5 = $_FILES['pic5']['size'];  
$error5 = $_FILES['pic5']['error']; 

$ukuran6 = $_FILES['pic6']['size'];  
$error6 = $_FILES['pic6']['error']; 

include 'mysqldata.php';

$item=$_POST['name'];
$deskripsi=$_POST['deskripsi'];
$price=$_POST['harga'];
$stock=$_POST['stock'];
$ram=$_POST['ram'];
$warna=$_POST['warna'];
$kondisi=$_POST['kondisi'];
$hargabefore=$_POST['hargabefore'];


mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$conn= new mysqli($host,$dbUsername,$dbPassword,$dbname);
if (mysqli_connect_error()){
    echo mysqli_errno($this->db_link);
    die('Error ('.mysqli_connect_errno().')'.mysqli_connect_error());
} else{
echo "Redirecting....\n";
if (move_uploaded_file($_FILES['pic']['tmp_name'],'listing/'.$namafile)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic2']['tmp_name'],'listing/'.$namafile2)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic3']['tmp_name'],'listing/'.$namafile3)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic4']['tmp_name'],'listing/'.$namafile4)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic5']['tmp_name'],'listing/'.$namafile5)){
        echo "Success";
}else{
echo "Failed";
}
if (move_uploaded_file($_FILES['pic6']['tmp_name'],'listing/'.$namafile6)){
        echo "Success";
}else{
echo "Failed";
}
$sql = "INSERT INTO $dbname.itemlist(Itemname, Description,Harga,Image,stock,picture,picture2,picture3,picture4,picture5,warna,ram,kondisi,pseudoprice) VALUES ('$item','$deskripsi','$price','$namafile','$stock','$namafile2','$namafile3','$namafile4','$namafile5','$namafile6','$warna','$ram','$kondisi','$hargabefore')";
$conn->query($sql);

}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM