Как проверить сеанс при нажатии кнопки, загрузив изображение

#javascript #php #codeigniter #session

#javascript #php #codeigniter #сеанс

Вопрос:

я использую code-igniter, загружаю изображение, затем проверяю сеанс

 if (isset($_SESSION['logged_in']) amp;amp; $_SESSION['logged_in'] === true amp;amp; $_SESSION['role'] === '3' amp;amp; $_SESSION['role_des'] === 'customer') 
 

для сеанса не установлено всплывающее сообщение.

  <div class="upload_box">
    <input type="file" name="upload" id="upload" class="upload_btn" /></div>
    <p class="upload_text">Upload JPEG or PDF File</p>
    <input name="Submit" type="button" value="submit"  class="submit_button"/>
 

Комментарии:

1. Извините, я не совсем понял, чего вы хотите.

2. я загружаю изображение и нажимаю кнопку отправки (проверка сеанса), если пользователь входит в систему, загружает изображение, иначе отображается всплывающее сообщение. как я проверяю сеанс в Java script

Ответ №1:

Насколько я знаю, вы не можете проверить сеанс на Javascript, потому что это серверная функция.

Я не знаю, знаете ли вы об ajax, но вы должны использовать его, чтобы вы могли проверять свой сеанс на стороне сервера во время отправки, вот как вы можете это сделать.

из вашего javascript

 $('.submit_button').on('click', function(){ 
var file_data = $('#upload').prop('files')[0]; 
var form_data = new FormData();
form_data.append('file', file_data); 

$.ajax({ 
url: 'upload.php', // point to server-side PHP script 
dataType: 'text', 
cache: false, 
contentType: false,
processData: false, 
data: form_data, 
type: 'post', 
success: function(the_result){ 
   if(the_result == "false"){
       //show popup
    }else{
       //ok
    } 
} }); });
 

и из вашего upload.php

 <?php 
if (isset($_SESSION['logged_in']) amp;amp; $_SESSION['logged_in'] === true amp;amp; $_SESSION['role'] === '3' amp;amp; $_SESSION['role_des'] === 'customer'){ 
  //continue uploading your file
  echo 'true'; 
}else{ 
  //do not upload
   echo 'false';
} 
?>
 

Комментарии:

1. upload.php является моделью

2. upload.php является ли ваша серверная часть местом, где происходит процесс загрузки и проверка сеанса.

3. Прошу прощения. В чем именно ваша проблема с codeigniter? Вы пробовали мой ответ?

4. upload.php файл записывается как функция, и я вызываю это имя функции