2011-07-26 3 views
1

に消えます。彼らはユーザー情報をとり、phpセッション変数に入れて、最終的にajax対応ページで使用できるようにします。問題は、これらのセッション変数の一部のみがサーバーで使用可能であることです。ここでいくつかのセッション変数は、[OK]を、私はページの以下のセットを持っているAjaxのリクエスト

が流れ

input.php => input2.php, 
input2.php => control.php, 
control.php calls ajax requests to updateAjax.php 

input2.phpです://セッションにそれfourmsと入力からユーザー入力を受け取り、//ファイル名をとり、セッションに入れ

<?php 
     session_start(); 
     header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
     header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
    ?> 
    <?php 
     $_SESSION = array(); 
     $_SESSION['file'] = $_FILES['file']['name']; 
     mkdir("/blend/". $_FILES['file']['name']); 
     mkdir("/blend/" . $_FILES['file']['name'] . "/frames"); 
     move_uploaded_file($_FILES["file"]["tmp_name"], "/blend/". $_SESSION['file'] . "/scene.blend"); 
    ?> 

control.php vars

<?php 
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
    session_start(); 
    ?> 
    <?php 
     $_SESSION['endFrame'] = $_POST['frameEnd'] - 0; 
     $_SESSION['format'] = $_POST['format']; 
     $_SESSION['currFrame'] = $_POST['frameStart'] - 1; 
    ?> 

私がセッションでvarsを調べるためにvar_dumpを使うと、updateAjax.phpがc

 <?php 
     header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
     header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
     session_start(); 
     ?> 
     <?php 
      /*for blender internal render engine*/ 
      init(); 

      function init() { 
       sendInfo(); 
      } 

      function sendInfo() { 
       $output = array(); 
       $output['status'] = $_SESSION['file']; 
       $output['currFrame'] = $_SESSION['currFrame']; //Var is -1! 
       $output['lastFrame'] = $_SESSION['endFrame']; //var is 0! 
       echo json_encode($output); 
      } 
    ?> 

updateAjax.php

をalled出力[ 'lastframe']とcurrframeは関係なく、あなたがacually前のページに入れるものを、それぞれ0と-1に等しいではありません。それをすべてまとめるために、セッション[ファイル]が正しいか...

  1. ゴー
  2. セッション[「ファイル」]あなたのファイルをinput.phpおよびアップロードするには、利用可能です。
  3. だけでセッションにアクセスすることができます
  4. セッション[ 'currframe']、endframe、およびフォーマットをinput2.phpに行く正しい
  5. すべてのセッションVARSをcontrol.phpに行くされている
  6. updateAjax.phpご利用いただけます['file']、他のものではありません。

私の問題の原因は何ですか? :)私を助けてくれてありがとう、そしてあなたがより多くの情報が必要かどうか尋ねるが、病気control.phpupdateAjax.php

答えて

0

を助けるために喜んで、あなたはsession_start()を呼び出す前にヘッダを送信することはできません。これらの順序を逆にする:

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
session_start(); 
?> 

// Should be 
<?php 
session_start(); 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 

PHPはこれに関する警告を発行する必要があります。 Webサーバーのエラーログを確認してください。

+0

アドバイス:) –

+0

のおかげで、それはまだ私の主な問題は解決しませんでしたが:( –

関連する問題