2017-04-08 12 views
1

私は他のファイルから配列にアクセスすることはできませんが、私のデータがすでに配列に格納されているかどうかにかかわらず、まだそれを把握しません。関数に$ _SESSIONを入れるべきですか?別のファイルからセッション配列を取得

Lat3_3a.php

<form id="form1" name="form1" method="post" action="Lat3_3b.php"> 
    Insert number: <input type="number" name="num" id="num" /> 
    <input type="submit" name="button" id="button" value="OK" /> 
</form> 

Lat3_3b.php

<?php 
    session_start(); 
    $_SESSION["num"] = $_POST["num"]; 
    if (empty($_SESSION["num"])) 
     echo "Please, insert number"; 
    else { 
     $val=$_POST['num']; 
    echo " Factorial " .$val. " ! = " .factorial($val)."<br/>"; 
    echo "<a href='Lat3_3c.php'>Link</a>"; 
    } 

    function factorial($val){ 

     if($val<=1){ 
      $result=1; 
      return $result; 
     }elseif($val>1){ 
      for($i=1; $i<=$val; $i++){ 
       $result=$val * factorial($val-1); 
     } 
     return $result; 
     } 

     $data=array($val,$result,"12345", "Travis"); 
     $_SESSION["var"]=$_POST["data"];  
    } 
    ?> 

Lat3_3c.php

<?php 
    session_start(); 
    if(empty($_SESSION["var"])) 
     echo "Variable not found"; 
    else 
    echo "Data : ". $_SESSION["var"]; 

?> 
+0

まあ、Lat3_3b.phpファイルには '}'があります。これは物事を混乱させるかもしれませんが、私はうんざりです。しかし、論理的には、コードは正常に動作するはずです。しかし、$ _SESSION ['var']を設定した後に戻るなど、一連のイベントを書き直す必要があるかもしれません。 – junkfoodjunkie

+0

私はあなたの間違いを見つけたと思うし、それは投稿に関連していると思う$ _SESSION ["var"] = $ _ POST ["data"];ブラウザのコンソールで投稿部分をチェックしてみてください。使用しているPOST要求のHTTP Content-Typeとしてapplication/x-www-form-urlencodedまたはmultipart/form-dataを使用するときに、HTTP POSTメソッドを介して現在のスクリプトに渡される変数の連想配列。 –

答えて

0

あなたのコードにしてもう少し探して[OK]を、あなたはについての詳細を学ぶ必要がありますセッション、投稿、機能そのためにはPHPマニュアルサイトを見てください。あなたのコードの場合 サイトhttp://php.net

は、あなたがこのようなものを使用する必要が動作するように:私はあなたの数学に見ていないよ

<?php 
    session_start(); 
    $_SESSION["num"] = $_POST["num"]; 
    $_SESSION["var"]=array(); 
    if (empty($_SESSION["num"])){ 
     echo "Please, insert number"; 
    } 
    else { 
     $val=$_POST['num']; 
     $function_result=factorial($val); 
     $data=array($val,$function_result,"12345","Travis"); 
     $_SESSION["var"]=$data; 
     echo " Factorial " .$val. " ! = " .$function_result."<br/>"; 
     echo "<a href='Lat3_3c.php'>Link</a>"; 
    } 
    function factorial($val){ 

     if($val<=1){ 
      $result=1; 
      return $result; 
     }elseif($val>1){ 
      for($i=1; $i<=$val; $i++){ 
       $result=$val * factorial($val-1); 
      } 
      return $result; 
     } 
    } 
    ?> 

関連する問題