2017-04-08 5 views
1

Ich kann nicht aus anderen Datei Array zugreifen und immer noch nicht herausfinden, ob meine Daten bereits in Array gespeichert oder nicht. Sollte ich $ _SESSION in die Funktion einfügen?Get Session-Array von verschiedenen Datei

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

Nun, es gibt eine zusätzliche '}' in der Lat3_3b.php-Datei, die Dinge vermasseln könnte, weiß ich nicht. Aber logisch, Ihr Code sollte gut funktionieren. Aber Sie müssen möglicherweise die Reihenfolge der Ereignisse neu schreiben, wie zum Beispiel nach dem Setzen von $ _SESSION ['var']. – junkfoodjunkie

+0

Ich denke, ich habe Ihren Fehler gefunden und ich denke, dass es mit dem Post $ _SESSION ["var"] = $ _ POST ["Daten"] verwandt ist; Versuchen Sie, den Beitrag in der Konsole Ihres Browsers zu überprüfen. Der POST, den er verwendet Für ein assoziatives Array von Variablen, die an das aktuelle Skript über die HTTP-POST-Methode übergeben werden, wenn in der Anforderung der HTTP-Inhaltstyp application/x-www-form-urlencoded oder multipart/form-data verwendet wird. –

Antwort

0

Ok ein bisschen mehr in Ihrem Code suchen, müssen Sie mehr darüber erfahren die Sitzung, Post und Funktionen. Schauen Sie sich dazu die PHP Manual Seite an. Website http://php.net

Für Ihren Code, den Sie so etwas wie dieses verwenden, arbeiten müssen:

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

Ich bin nicht in die Mathematik suchen.