Php 如何使数组和会话变量在刷新浏览器后恢复为空?

Php 如何使数组和会话变量在刷新浏览器后恢复为空?,php,javascript,json,Php,Javascript,Json,我有一个问题,每次刷新浏览器时,我都希望包含$\u会话变量的数组返回为空。现在让我们假设我上传了2个文件,然后刷新浏览器,当我上传另一个文件时,它会显示以前上传的文件的名称,而不应该。如果刷新浏览器,如何使数组和会话变量返回为空 代码如下: function stopImageUpload(success){ var imageNameArray = new Array(); // WHEN PAGE IS REFRESH, ARRAY SHOULD GO BACK T

我有一个问题,每次刷新浏览器时,我都希望包含$\u会话变量的数组返回为空。现在让我们假设我上传了2个文件,然后刷新浏览器,当我上传另一个文件时,它会显示以前上传的文件的名称,而不应该。如果刷新浏览器,如何使数组和会话变量返回为空

代码如下:

  function stopImageUpload(success){

          var imageNameArray = new Array();
// WHEN PAGE IS REFRESH, ARRAY SHOULD GO BACK TO BEING BLANK

 imageNameArray = <?php echo json_encode(isset($_FILES ['fileImage']['name']) ? $_FILES ['fileImage']['name'] : null); ?>;
//RETRIEVES THE SESSION VARIABLE FROM THE PHP SCRIPT OF THE FILE NAMES WHICH HAVE BEEN UPLOADED

          var result = '';



          if (success == 1){
             result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';

                for(var i=0;i<imageNameArray.length;i++)  //LOOP THROUGH ALL UPLOADED FILE NAMES
        {
             $('.listImage').append(imageNameArray[i]+ '<br/>');//APPEND FILE NAME

         }

          }
          else {
             result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
          }

    return true;

    }
函数stopImageUpload(成功){
var imageNameArray=新数组();
//当页面刷新时,数组应该返回为空
imageNameArray=;
//从已上载文件名的PHP脚本中检索会话变量
var结果=“”;
如果(成功==1){
结果='文件已成功上载!

';
对于(var i=0;i,在提交表单并且PHP完成其工作后,您需要执行303重定向到您希望显示的页面。然后,当用户刷新页面时,您将不会再次提交表单

例如:

header('Location: ' . $_SERVER['PHP_SELF'], true, 303);

在提交表单并且PHP完成其工作后,您需要执行303重定向到您希望显示的页面。然后,当用户刷新页面时,您将不会再次提交表单

例如:

header('Location: ' . $_SERVER['PHP_SELF'], true, 303);

虽然我同意@Reza Sanaie的评论,但您可以通过在成功上传后取消设置变量来解决您的特定问题:

     if (success == 1)
     {
         result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';

         for(var i=0;i<imageNameArray.length;i++)  //LOOP THROUGH ALL UPLOADED FILE NAMES
         {
             $('.listImage').append(imageNameArray[i]+ '<br/>');//APPEND FILE NAME

         }

         $_SESSION ['fileImage'] = NULL; // or use unset()
     }
if(成功==1)
{
结果='文件已成功上载!

';
对于(var i=0;i虽然我同意@Reza Sanaie的评论,但您可以通过在成功上传后取消设置变量来解决您的特定问题:

     if (success == 1)
     {
         result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';

         for(var i=0;i<imageNameArray.length;i++)  //LOOP THROUGH ALL UPLOADED FILE NAMES
         {
             $('.listImage').append(imageNameArray[i]+ '<br/>');//APPEND FILE NAME

         }

         $_SESSION ['fileImage'] = NULL; // or use unset()
     }
if(成功==1)
{
结果='文件已成功上载!

';
对于(var i=0;i只需在PHP中进行错误检查,并将一个数组传递到HTML页面以显示页面中上载文件的列表。您不需要javascript


查看一下

只需在PHP中执行错误检查,并将一个数组传递到HTML页面以显示页面中上载文件的列表。您不需要javascript


查看

为什么首先要将正在上载的文件名存储在$\u SESSION var中?$\u SESSION用于会话期间需要持久化的数据。因此用户可以看到他们上载的文件名。只需使用$\u FILES['fileImage']['name'向他们显示即可;您不需要将其存储在SessionOh中,好的,我将以这种方式尝试,看看会发生什么:)我已使用$_FILES['fileImage']['name']尝试了您所说的内容;而不是将其存储在会话中,但它不断出现一个错误,指出imageNameArray为null。您认为为什么会出现错误?为什么首先要将上载的文件名存储在$\u会话变量中?$\u会话用于在该会话期间需要持久化的数据。因此,用户可以看到他们上载的文件的名称。只需使用$_文件['fileImage']['name']向他们显示即可;您不需要将其存储在SessionOh中,好的,我将以这种方式尝试,看看会发生什么:)我已使用$_文件['fileImage']['name']尝试了您所说的内容;而不是将其存储在会话中,但它不断出现一个错误,声明imageNameArray为null。您认为为什么会出现错误?它会进入PHP,并在完成任何应完成的工作后使用。它会进入PHP,并在完成任何应完成的工作后使用。文件会上载,这不是问题所在问题,我只希望上传文件时存储在服务器中的文件名使用javascript附加到屏幕上。只需创建一个上传文件名数组并将其传递到HTML。是否必须使用javascript完成?文件确实上传,这不是问题,我只需要当上传文件并使用javascript附加到屏幕上时,重新存储在服务器中。只需创建上传文件的名称数组并将其传递到HTML。是否必须使用javascript完成?