在多个PHP脚本之间共享会话变量

时间:2013-06-24 18:10:18

标签: php html5

我的问题是,当我使用会话变量在不同的PHP脚本之间复制数组元素时,没有任何内容被打印出来。以下是我的两个PHP文件。

file1.php

<?PHP
     session_start();
        $SQL = "SELECT * FROM tblquestions";

        if ($db_found) {
            $result = mysql_query($SQL);
            $numRows = mysql_num_rows($result); //return number of rows in the table

            echo '<FORM NAME ="form1" METHOD ="POST" ACTION ="file2.php">';
            for ($i = 1; $i <= 2; $i++)
            {
                $db_field = mysql_fetch_assoc($result);
                $qID[$i] = $db_field['QID'];
                $question[$i] = $db_field['Question'];
                $A[$i] = $db_field['qA'];
                $B[$i] = $db_field['qB'];
                $C[$i] = $db_field['qC'];
                echo '<P>';
                print $question[$i];
                echo '<P>';
                echo "<INPUT TYPE = 'Radio' Name = '".$qNum."'  value= 'A'>"; 
                print $A[$i];
                echo '<P>';
                echo  "<INPUT TYPE = 'Radio' Name = '".$qNum."'   value= 'B'>"; 
                print $B[$i];
                echo '<P>';
                echo  "<INPUT TYPE = 'Radio' Name = '".$qNum."'   value= 'C'>"; 
                print $C[$i];
                //if (isset($_POST[$name_Value]))
                $survey_Answers[$i-1] = $_POST[$qNum];
                print '</BR>'.$survey_Answers[$i-1]."</BR>";
                $question_Number = ltrim($qNum,'q');
                $question_Number++;
                $qNum ='q'.$question_Number;
            }

            echo '<p>';
            $_SESSION['answers'] = $survey_Answers;
            echo '<INPUT TYPE = "Submit" Name = "Submit1"  VALUE = "Click here to vote">';

            echo '</form>';
?>

On my Second file (file2.php), I have the following:



<?PHP
    session_start();
    if (isset($_POST['Submit1'])) {
            $results = $_SESSION['answers'];
            print $results[0];
}
?>

然而,在我的file2.php上,我收到以下错误:未定义的偏移量:0并且没有任何内容被打印出来。

5 个答案:

答案 0 :(得分:1)

echo '<p>';
session_start();

无法工作,必须在任何输出之前调用session_start! 如果你把session_start()放在文件的开头,你应该没事。

答案 1 :(得分:1)

  

要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。

来源:http://php.net/manual/en/function.session-start.php

在输出任何内容之前,您需要致电session_start()。在输出任何内容之前,最好将它放在脚本的开头。

答案 2 :(得分:0)

file1.php session_start();中的

应该是与file2.php相同的第一行代码

答案 3 :(得分:0)

请将以下代码添加到您要使用会话数据的每个页面。否则,它将返回错误。

<?php
session_start();
?>

答案 4 :(得分:0)

session_start()的PHP手册页上有一条评论,听起来与您的问题非常相似。 http://php.net/manual/en/function.session-start.php#65944

它表示将整数键指定为直数或使用整数的数组将失败,数据将不会传递到下一页。

修改代码以使用字符串作为键。

相关问题