2016-03-02 4 views
1

Простите меня, если я не понимаю этого, но вот что я пытаюсь выполнить. У меня есть две php-страницы, каждая из которых генерирует отдельный файл json при отправке каждой формы. Я хочу, чтобы main.php был заполнен до того, как будет заполнен файл second.php. Итак, если пользователь перейдет на second.php, прежде чем заполнит main.php, он перенаправит их на main.php. Поэтому мне нужно, чтобы second.php «искал» путь к файлу main.json и, если пуст, перенаправляет обратно на main.php. Вот часть кода, который генерирует main.json. Файлы json сохраняются на моем веб-сайте.Перенаправление на веб-страницу, если JSON пуст

require_once $this->site_path . 'inc' . DIRECTORY_SEPARATOR . 'json_file.class.php'; 
    $jsonFile = new JsonFile(); 
    $json_result = $jsonFile->writeFile(
      array(
       'file_name'  => $this->site_path . DIRECTORY_SEPARATOR . 'users' . DIRECTORY_SEPARATOR . $file_data['username'] . DIRECTORY_SEPARATOR . 'main.json',//$this->json_path . DIRECTORY_SEPARATOR . $file_data['username']. '_'. 'main.json', 
       'data'   => $obj 
      ) 
    ); 

    $result['json_file'] = $json_result; 

    // Save the uploaded file 
    if (!empty($file_data['profilebackground']['size'])) { 
    $target = $this->site_path . DIRECTORY_SEPARATOR . 'users' . DIRECTORY_SEPARATOR . $file_data['username']. DIRECTORY_SEPARATOR . $file_name; 
     if (!move_uploaded_file($file_data['profilebackground']['tmp_name'], $target)) { 
      $result['image_file'] = 'There was an error saving the home page image. Please check the image directory permissions and try again.'; 
      error_log('File ' . $file_data['profilebackground']['name'] . ' not saved: check the image directory permissions.'); 
     } else { 
    include_once("php_img_lib.php"); 
    img_resize($target, $target, 1000, 1000, $ext); 
      $result['image_file'] = 'The home page image was successfully uploaded.'; 
     } 
    } else { 
    // $result['image_file'] = 'There was an error uploading the home page image. Please try again.'; 
    // error_log('File ' . $file_data['profilebackground']['name'] . ' not uploaded.'); 
    } 

    return $result; 
} 

public function getmainData($username) { 
    $albums_json_file = $this->site_path . DIRECTORY_SEPARATOR . 'users' . DIRECTORY_SEPARATOR . $username . DIRECTORY_SEPARATOR . 'main.json';//$this->json_path . DIRECTORY_SEPARATOR . $username . '_'. 'main.json'; 
    try { 
     $handle = @fopen($albums_json_file, "rb"); 
     if (!empty($handle)) { 
      $albums_json_file_contents = fread($handle, filesize($albums_json_file)); 
      fclose($handle); 
     } 

     if (!empty($albums_json_file_contents)) { 
      $albums_json_file_contents = json_decode($albums_json_file_contents); 
     } else { 
      $albums_json_file_contents = array(); 
     } 

     if (!empty($albums_json_file_contents->main[0])) { 
      return $albums_json_file_contents->main[0]; 
     } else { 
      return $albums_json_file_contents; 
     } 
    } catch (Exception $e) { 
     error_log($e->getMessage()); 
     $albums_json_file_contents = array(); 
     return $albums_json_file_contents; 
    } 
} 
+0

Можно ли проверить, что main.php заполнен? Или я не понимаю правильно. Вы имеете в виду, что можно перейти непосредственно на second.php без первого удара main.php? – bmcculley

+0

вы можете установить значение сеанса после установки JSON-flle – osanger

+0

Два файла php - это две отдельные ссылки. Таким образом, пользователь может нажать кнопку «второй» на моем веб-сайте и перейти на эту страницу. Они могут перейти на вторую страницу, не перейдя на главную. Это проблема. Мне нужна вторая страница, чтобы получить содержимое main.json. И, если пустой, он будет перенаправлен на главную страницу. – iSITKiosk

ответ

0

Спасибо за вашу помощь. Я понял это, и это было очень легко. Я вызвал php, который создает файл main.json и извлекает данные. Так как он был пуст, он перенаправлен отлично. Я не уверен, почему он работал в «else», а не в «if», но эй. Оно работает.

require_once 'inc/main.class.php'; 
$mainevent = new mainevent(); 
$main_data = $mainevent->getmainData($user->username); 
    if (!empty($main_data)) 
    { 

     } else { 
      redirect_to("main1.php"); 
     } 
Смежные вопросы