0

私は、ウェブカメラを介して画像をキャプチャし、save.php(以下)を介してファイルに保存するフラッシュアプ​​リを持っています。今私が抱えている問題は、save.php がロードされたときにセッション変数にアクセスできないことです。セッション変数を呼び出すときに使用する必要がある別の方法はありますか?

   <?php

   include 'session.php';
   sec_session_start();

   $userid=$_SESSION['user_id'];
   $w = 300;
   $h = 400;


   $img = imagecreatetruecolor($w, $h);


    imagefill($img, 0, 0, 0xFFFFFF);

    $rows = 0;
    $cols = 0;

    for($rows = 0; $rows < $h; $rows++){

    $c_row = explode(",", $_POST['px' . $rows]);
       for($cols = 0; $cols < $w; $cols++){
            $value = $c_row[$cols];
            if($value != ""){
        $hex = $value;
        while(strlen($hex) < 6){
            $hex = "0" . $hex;
        }

        $r = hexdec(substr($hex, 0, 2));
        $g = hexdec(substr($hex, 2, 2));
        $b = hexdec(substr($hex, 4, 2));

        $test = imagecolorallocate($img, $r, $g, $b);

        imagesetpixel($img, $cols, $rows, $test);
        }
      }
    }

    if(isset($userid)){
    $fp = fopen("name.jpg", "w");
    ob_start();
    imagejpeg($img, "", 90);
    $img = ob_get_contents();
    ob_end_clean();
    fwrite($fp, $img);
   echo "name.jpg";
    echo $userid;
   exit;
  }
?>

この session.php

      function sec_session_start() {
       $session_name = 'sec_session_id'; 
       $secure = true; 
        $httponly = true;

       ini_set('session.use_only_cookies', 1); 
        $cookieParams = session_get_cookie_params(); 
        $cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"],
              $secure, $httponly); 
    session_name($session_name); 
    session_start(); // Start the php session
    session_regenerate_id(true); 
       }

データは flash から save.php に送信されます。

     load_var.sendAndLoad("save.php", result_lv, "POST");

ありがとうございました。

アップデート

さて、セッション変数をフラッシュに渡して、save.php で取得しようとしています。これが flsahvar の使用方法です。

      var flashvars = {
        phpsessionid:<?php print $user_id;?>,
       };

        var cam = new SWFObject("webcamvid.swf", "player_mc", "400", "500", "8",      
        "#336699",flashvars);
            cam.addParam("quality", "high");    
            cam.addParam("wmode", "transparent");
              cam.addParam("pluginurl", "http://www.macromedia.com/go/getflashplayer");
           cam.addParam("pluginspage", "http://www.macromedia.com/go/getflashplayer");
           <!--so.addParam("allowFullScreen", "true"); -->
            cam.addParam("salign", "t");
           cam.write("takepic");

これは、Flash アプリで flashvars を取得するために使用されます。

        function getFlashVars():Object {
          return Object( LoaderInfo( this.loaderInfo ).parameters );
           }
         var _var1=getFlashVars().phpsessionid;

そして、送信します。

      _var1.sendAndLoad("save.php", PHPSESSNID, "POST");

フラッシュにも注意してください

     load_var.sendAndLoad("save.php", result_lv, "POST"); 

これは別の変数です。

save.php で _var1 を取得できません。どうすればこれを機能させることができるか考えてみてくださいありがとう

4

2 に答える 2

0

わかりましたので、これで行う必要があるのは、次のようにセッションを使用することだけです。

  function sec_session_start() {
   $session_name = 'sec_session_id'; 
   $secure = **flase;**
    $httponly = true;

   ini_set('session.use_only_cookies', 1); 
    $cookieParams = session_get_cookie_params(); 
    $cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"],
          $secure, $httponly); 
  session_name($session_name); 
   session_start(); // Start the php session
   session_regenerate_id(true); 
    }

ファイルの最初でセッション開始関数を呼び出します。double、triple、および Quadruple でコードまたはわずかなエラーをチェックすると、セッション変数にアクセスできるはずです。

于 2013-05-01T01:05:35.977 に答える
0

session_start();を追加します。最初に PHP コードの最上部に !

<?php
session_start();

/*

your code

*/

?>
于 2013-04-30T13:08:48.850 に答える