【问题标题】:Session Doesnt work first time (want explanation )会话第一次不起作用(需要解释)
【发布时间】:2017-08-18 05:04:30
【问题描述】:

您好,我看到很多问题,例如第一次 Session 不起作用。但是在这个问题上看不到任何好的解释,为什么第一次不工作以及会话期间发生的事情。我的也像其他人一样第一次不工作,之后工作正常。

这是会话中的 php。

session_start();

$PersonName=$_GET['PersonName'];
$SurName=$_GET['SurName'];
$TestXML=$_GET['TestXML'];
$TestDate=$_GET['TestDate'];
$TestPkID='0000000000000000000000000000';
include('DBConnect.php');

    $proc = "{call p_set_Test(?,?,?,?,?,?,?,?,?)}";   
    $params = array(array($TestDate,SQLSRV_PARAM_IN),
                    array(0,SQLSRV_PARAM_IN),
                    array($PersonName,SQLSRV_PARAM_IN),
                    array($SurName,SQLSRV_PARAM_IN),
                    array($TestXML,SQLSRV_PARAM_IN),
                    array('',SQLSRV_PARAM_IN),
                    array(101,SQLSRV_PARAM_IN),
                    array(10,SQLSRV_PARAM_IN),
                    array($TestPkID, SQLSRV_PARAM_OUT)  
                   );       
    $result = sqlsrv_query( $conn, $proc, $params); 
    if( $result === false )  
    {  
         echo "Error in executing statement 3.\n";  
         die( print_r( sqlsrv_errors(), true));  
         $message2 = "aldaatai";
            echo "<script type='text/javascript'>alert('$message2 ' + $TestPkID);</script>";
    } 

    $_SESSION['idpktestsession'] = $_POST["idpktest"] = $TestPkID;
    $_SESSION['persontestname'] =$_POST['persontrollname'] = $PersonName;
    $_SESSION['persontestlastname'] =$_POST['persontrolllastname'] = $SurName;

这是从会话值中获取价值

<?php include('DBConnect.php'); 
session_start();
    $diskuserid = $_SESSION['idpktestsession'];
    $diskusername = $_SESSION['persontestname'];
    $diskuserlastname = $_SESSION['persontestlastname'];
    $diskuserlastname = mb_substr($diskuserlastname, 0, 1);


    ?>
<?php   

                $proc = "{call p_rpt_Pattern(?,?)}";   
                $params = array($diskuserid,'M');  
                $procarr = array();
                $result = sqlsrv_query( $conn, $proc, $params);             
                while ($row = sqlsrv_fetch_array($result))
                {?>
                    <tr>
                        <td><?php echo $row['PatternCode']?></td>
                        <td><i class="fa fa-chevron-right rightarrow" > </i></td>
                        <td><?php echo $row['PatternDesc']?></td>
                    </tr>
            <?php
                }
            ?>  

【问题讨论】:

  • session_start();必须是脚本的第一行。
  • @fortune 你的意思是上面的 dbconnect.php 吗?我试过没有什么不同的想法吗?
  • 还没找到解决办法

标签: php session session-variables


【解决方案1】:

这句话写错了:

$_SESSION['idpktestsession'] = $_POST['idpktest'] = $TestPkID;

如果你想赋值,你可以像这样重写上面的语句

$_SESSION['idpktestsession'] = $_POST['idpktest'];

如果你想连接两个值,你可以这样重写

$_SESSION['idpktestsession'] = $_POST['idpktest'] . ','. $TestPkID;

【讨论】:

  • tnx 我会尝试,但你知道为什么第一次它不工作,之后就清楚工作了所以你是说参数的设置值有错误,即使它在第一次尝试后工作?
  • 它在第一次尝试后工作。因为你在帖子中有价值观。
  • '$_SESSION['idpktestsession'] = $TestPkID;'我现在用这个
【解决方案2】:

只要这个问题没有得到回答,我就发现了为什么它第一次不起作用。 每次将会话发送到另一个带有值的 php 时,它都会在页面加载后发送带有值的值,所以如果您遇到此错误,只需在页面加载之前分配值或放置中间加载 php 而不是直接显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    相关资源
    最近更新 更多