php - 如何根据 session 变量中的值删除数据

标签 php session-variables

add.php(当用户点击添加照片时)

  <div class="col-lg-12">
        <div class="form-group" id="image">
             <label>Auction Image</label>
<div action="uploadImages.php" class="dropzone" id="uploadImageForm"></div>
 <span class="help-block" id="image-error"></span>
        </div>
</div>

<script>
$(function () {
        Dropzone.options.uploadImageForm = false;
        Dropzone.options.uploadImageForm = {
          paramName: "file",
          maxFilesize: 1,
          acceptedFiles: 'image/*',
          maxFiles: 5,
          dictDefaultMessage: '<img src="images/icon_images.svg" width="100"/><br/><br/>Drop auction image here',
          addRemoveLinks: true,
removedfile: function(file) {
    var name = file.name;        
    $.ajax({
        type: 'POST',
        url: 'delete.php',
        data: "id="+name,
        dataType: 'html'
    });
var _ref;
return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;        
              }
        };
</script>

上传图片.php

<?php
session_start();
require 'config/database.php';

if (!isset($_SESSION['user'])) {
    exit;
}
else if (!empty($_FILES)) {

    $auctionImage = array();
    $size = getimagesize($_FILES['file']['tmp_name']);

    if (!$size) {
        header('Content-type: text/json');
        header('Content-type: application/json');
        echo json_encode(['error']);
        exit;
    }
    else {
        $n = 0;
        $tempFile = $_FILES['file']['tmp_name'];
        $imageName = uniqid() . '.' . pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
        $targetPath = dirname( __FILE__ ) . '/images/uploads/';
        $targetFile =  $targetPath . $imageName;

        $filename  = $_FILES["file"]["name"];

        move_uploaded_file($tempFile,$targetFile);

        // isset id = insert gallery image into database
        if (isset($_GET['id'])) {
            $stmt = $db->prepare("INSERT INTO image (user_id, related_id, related_type, url) VALUES (:uid, :id, 'gallery', :url)");
            $stmt->bindParam(':uid', $_SESSION['user']['id']);
            $stmt->bindParam(':id', $_GET['id']);
            $stmt->bindParam(':url', $imageName);
            $stmt->execute();
        }
        else {
            $auctionImage[] = $filename;
        }

    }                                               

    if (!empty($auctionImage)) {
        // record uploaded image name, will store into session
        // store uploaded image into session
        //$_SESSION["auctionImages"] = array();
        $_SESSION["auctionImages"][] = $auctionImage;
    }


}

删除.php

<?php
$targetPath = dirname( __FILE__ ) . '/images/uploads/';

unlink($targetPath.$_POST['id']);

session_start();
$a = $_POST['id']; 
$key=array_search($a,$_SESSION['auctionImages']);


 if($key!==false){
  unset($_SESSION['auctionImages'][$key]);
  $_SESSION["auctionImages"] = array_values($_SESSION["auctionImages"]);

 echo '<pre>'; print_r($_SESSION['auctionImages']); 
}

最佳答案

要使用 session 变量,请在文件开头添加 session_start(),否则不会使用它们。其次,您将一个数组添加到下一个数组中。 所以你必须使用 $_SESSION["auctionImages"] = $auctionImage;

$key=array_search($a[0],$_SESSION['auctionImages']);

可以通过 print_r($_SESSION) 进行进一步调试;这样你就可以跟踪这个数组的内容

关于php - 如何根据 session 变量中的值删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34543012/

相关文章:

php - 如何通过网络访问处理命令行权限

php - 错误消息,用于失败的注册,登录等。-使用$ GLOBAL oder $ _SESSION?

php - 如何在 drupal 7 中保存 session 变量?

javascript - 是否有类似于 sessionStorage 但具有多维键的东西?

c# - 将 session 包装为属性时直接保护访问 session 的方法?

php - 将自定义参数添加到 Paypal Woocommerce

php - 在 Joomla 中的表之间移动行

javascript - 如何将多选的值放入 echo 语句中?

php - 如何使用PHP打印此模式?

c# - Asp.Net Core Razor 页面,无法从其他 View /razor 模型访问 session 变量