php - 如何使用PHP/MySQL限制用户在一个月内只能上传三张图片

标签 php html mysql date

我正在研究 PHP。我的问题是如何限制用户在一个月内只能上传三张图片。

我的 Mysql 数据库表 --

CREATE TABLE `images` (
  `id` int(40) NOT NULL,
  `user_name` varchar(40) NOT NULL,
  `mobile` varchar(30) NOT NULL,
  `email` varchar(50) NOT NULL,
  `name` longblob NOT NULL,
  `position` int(40) NOT NULL,
  `date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我希望用户在一个月内只能上传三张图片。

请帮助我编写 PHP 脚本。我是 PHP 的初学者。分享最佳解决方案..

我用这个——

<?php  
include("admin/config.php");

 if(isset($_POST["insert"]))  
 {  
$mobile = $_POST['mobile'];
        $email = $_POST['email'];
               $user_name = $_POST['user_name'];

$fileinfo = @getimagesize($_FILES["image"]["tmp_name"]);
    $width = $fileinfo[0];
    $height = $fileinfo[1];
     $allowed_image_extension = array(
        "png",
        "jpg",
        "jpeg"
    );
    $file_extension = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION);

     $sql="select * from images where (name='$name');";

       $count=mysqli_query($mysqli,$sql);



        $count=count($_FILES['name']);
if($count>3)
{
echo "<font color='red'>3 image upload </font>";
       } else{  



    $file_extension = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION);



         if (! file_exists($_FILES["image"]["tmp_name"])) {
        $response = array(
            "type" => "error",
            "message" => "Choose image file to upload."
        );
    }   
    else if (! in_array($file_extension, $allowed_image_extension)) {
        $response = array(
            "type" => "error",
            "message" => "<font color='red'>Upload valiid images. Only PNG and JPEG are allowed.</font>"
        );
        echo $result;
    }    // Validate image file size
    else if (($_FILES["image"]["size"] > 2000000)) {
        $response = array(
            "type" => "error",
            "message" => "Image size exceeds 2MB"
        );
    }    // Validate image file dimension
    else if ($width > "1250" || $height > "720") {
        $response = array(
            "type" => "error",
            "message" => "<font color='red'>Image dimension should be within 1250X720</font>"
        );



    } else {


             $target = '/image';
        $target = "image/" . basename($_FILES["image"]["name"]);
        $file = addslashes(file_get_contents($_FILES["image"]["tmp_name"]));  


      $query =  mysqli_query($mysqli,"INSERT INTO images VALUES ('','$user_name','$mobile','$email','$file','',NOW())");  

        if (move_uploaded_file($_FILES["image"]["tmp_name"], $target)) {
            $response = array(
                "type" => "success",
                "message" => '<font color="green">Image uploaded successfully </font>'
            );

 } else {
            $response = array(
                "type" => "error",
                "message" => "<font color='red'>Problem in uploading image files.</font>"
            );
        }
    }



      // if(mysqli_query($connect, $query))  
      // {  
           // echo '<script>alert("Image Inserted into Database")</script>';  
      // } 
       }      

   }
 ?>  

还有我的 HTML 表单 -

 <form method="post"  id="frm-image-upload" action="my-account.php#parentHorizontalTab3" name='img'
        method="post" enctype="multipart/form-data"> 
                <div class="agileits_w3layouts_contact_left"style="margin-left:20%;">
                             <input type="hidden" name="user_name" value="<?php  $space = " ";
                             echo $row["fname"].$space.$row["lname"]; ?>"  id="user_name" Placeholder="Your Name"  required /> 
                               <input type="hidden" name="mobile" value="<?php echo $row["mobile"]; ?>" id="mobile"Placeholder="Mobile" required /> 
                              <input type="hidden" name="email"  value="<?php echo $row["email"]; ?>"  id="email" Placeholder="Email"  required/> 
                                             </div>

                           <center>              
                     <input type="file" name="image" id="image" />  
                     </center>
                     <br />  
                     <center><input type="submit" name="insert" id="insert" value="Upload" class="btn btn-info" />  </center>
                </form>  

请帮我分享最佳解决方案 - 用户可以在一个月内上传三张图片。

最佳答案

基本思想是统计给定用户在给定月份上传的所有图片,例如:

SELECT COUNT(*) FROM `images` WHERE `user_name` = ? GROUP BY MONTH(`date`);

如果上面的查询返回3,您可以阻止上传。

关于php - 如何使用PHP/MySQL限制用户在一个月内只能上传三张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52492121/

相关文章:

javascript - 在 html onclick 中运行 javascript 和 php

html - 如何在css中制作下拉菜单?

mysql - 按最常见类型的顺序获取电影,然后是关键字

iframe 中的 JavaScript 不起作用

mysql - 在 SQL 中连接两个表并返回包含空值的结果集

mysql join(一对多)聚合函数重复行数

php - 在 Laravel 中找不到类 'App\Http\Controllers\Response' 错误

Javascript Regex 获取不在单引号或双引号中的字符串列表

php - 我使用phpinfo()获得的_ENV ["HTTP_X_VARNISH"]值是什么意思

php - 从路径中删除不必要的斜杠