亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$_SESSION 與 $_FILES 沖突

$_SESSION 與 $_FILES 沖突

PHP
守候你守候我 2022-01-08 17:56:01
我有一個表單,它有一個文件類型輸入來上傳圖像,但它總是會顯示“通知:未定義的索引”,我看到 $_FILE 變空了,但我在網上找到的答案都沒有幫助我.我有一個項目,用戶注冊后他必須登錄,他的第一頁確認他的數據并插入一些新的,其中一個新的是他可以上傳的圖片,正如我所說,我最初的問題是$_FILES 總是空的,我在網上搜索,這是一個相當常見的錯誤,但沒有一個答案對我有幫助,經過大量嘗試,我發現了問題所在,但我仍然不知道為什么,或者如何要解決這個問題。在我談到的頁面的開頭,這里有一段代碼:     if(isset($_SESSION['logado'])){        $dados =  $_SESSION['dadosUsu'];     }else{        unset($_SESSION['dadosUsu']);        session_destroy();        header("Location: homeLandingPage.php");     }阻止未經授權的人進入頁面或使用用戶數據創建一個變量,以便使用用戶已經注冊的信息填寫一些輸入。我發現如果我從代碼中刪除了這一點,$_FILES 全局開始工作并且代碼運行良好,但是如果代碼在那里問題繼續存在,我不知道為什么會發生這種情況,我在網上找不到任何東西談論與 $_FILES 全局沖突的會話。之后有一點ajax:     $(function(){         $('.form').submit(function(){             $.ajax({               url: 'cod_alterarAcc.php',               type: 'POST',               data: $('.form').serialize(),               success: function(data){                   if(data != ''){                      $('.recebeDados').html(data);                      document.getElementById('visor1').value = '<?= $dados['nomeUsu']; ?>';                      document.getElementById('visor2').value = '<?= $dados['emailUsu']; ?>';                      document.getElementById('visor3').value = '<?= $dados['emailUsu']; ?>';                      document.getElementById('visor4').value = '';                      document.getElementById('visor5').value = '';                      document.getElementById('visor6').value = '';                    }                 }              });            return false;         });      });我不知道是不是這個,但這里是在輸入類型文件上調用 onChange 的預覽函數:     function previewImagem() {         var imagem = document.querySelector('input[name=img]').files[0];         var preview = document.querySelector('img[id=dup]');         var reader = new FileReader();         reader.onloadend = function () {             preview.src = reader.result;         }         if (imagem) {             reader.readAsDataURL(imagem);         } else {             preview.src = "";         }     }
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

表單的默認操作似乎與您的 AJAX 沖突,但如果您只想在上傳文件時使用 AJAX,那么您希望阻止表單的默認操作。您的 AJAX 請求應如下所示。


$('.form').submit(function(e){

    e.preventDefault();    // Preventing the default action of the form

    var formData = new FormData(this); // So you don't need call serialize()


    $.ajax({

        url: 'cod_alterarAcc.php',

        type: 'POST',

        data: formData,

        success: function (data) {

            if(data != ''){

                $('.recebeDados').html(data);

                document.getElementById('visor1').value = '<?= $dados['nomeUsu']; ?>';

                document.getElementById('visor2').value = '<?= $dados['emailUsu']; ?>';

                document.getElementById('visor3').value = '<?= $dados['emailUsu']; ?>';

                document.getElementById('visor4').value = '';

                document.getElementById('visor5').value = '';

                document.getElementById('visor6').value = '';

            }

        },

        cache: false,

        contentType: false,

        processData: false

    });

});

還將您的表單放入 FormData 并指定您的 ajax 請求類型。


編輯


嘗試確認 PHP 是否能夠獲取數據


print_r($_POST);

print_r($_FILES);

在你的 AJAX success function


console.log(data);

編輯


忘記放參數e了form.submit


查看完整回答
反對 回復 2022-01-08
  • 1 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號