2017-04-08 13 views
1

Je ne peux pas accéder au tableau à partir d'un autre fichier et je ne comprends toujours pas, que mes données soient déjà stockées dans un tableau ou non. Devrais-je mettre $ _SESSION dans la fonction?Obtenir un tableau de session à partir d'un fichier différent

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

Eh bien, il ya un '}' supplémentaire dans le fichier Lat3_3b.php, qui pourrait gâcher les choses, je ne sais pas. Cependant, juste logiquement, votre code devrait fonctionner très bien. Mais vous devrez peut-être réécrire la séquence d'événements, comme retourner après avoir défini $ _SESSION ['var'], par exemple. – junkfoodjunkie

+0

Je pense que j'ai trouvé votre erreur et je pense que c'est lié à la publication $ _SESSION ["var"] = $ _ POST ["data"]; Essayez de vérifier la partie Post dans la console de votre navigateur. Le POST est utilisé pour un tableau associatif de variables passées au script actuel via la méthode HTTP POST lors de l'utilisation de l'application/x-www-form-urlencoded ou multipart/form-data en tant que HTTP Content-Type dans la requête. –

Répondre

0

Ok recherche un peu plus à votre code, vous devez en savoir plus sur la session, le poste et les fonctions. Pour cela, jetez un coup d'œil au site manuel de PHP. Site http://php.net

Pour votre code fonctionne, vous devez utiliser quelque chose comme ceci:

<?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; 
     } 
    } 
    ?> 

Je ne cherche pas dans vos calculs.