$ _SESSION变量未设置

时间:2020-09-14 11:03:20

标签: php session xampp

这是我尝试使用$ _SESSION id变量从本地服务器获取数据时的代码。在此页面中,我得到了错误:

<?php
$dbServername = "localhost";
$dbUsername = "root";
$dbPaasword = "";
$dbName = "ridobiko";

$con = mysqli_connect($dbServername, $dbUsername, $dbPaasword, $dbName) or die(mysqli_error($con));
if(!isset($_SESSION)) 
{ 
    session_start(); 
}

$bike_id = $_SESSION['id'];

?>



<!DOCTYPE html>
<html>
<head>
    <title>Page 2</title>
</head>
<body>
    <table>
        <thead>
            <tr><b>Bike Brand</b></tr>
            <tr><b>Bike Name</b></tr>
            <tr><b>Bike Image</b></tr>
            <tr><b>Bike rent price</b></tr>
        </thead>
        <tbody>
            <?php
            $query = "SELECT * FROM bike_details WHERE bike_id = '$bike_id';";
            $run_query = mysqli_query($con,$query) or die(mysqli_error($con));
            $row = mysqli_fetch_array($run_query);
            echo "
                <td>".$row['bike_brand']."</td>
                <td>".$row['bike_name']."</td>
                <td><img src='".$row['bike_image']."' height='100' width='100'></td>
                <td>".$row['bike_price']."</td>
            ";
            ?>
        </tbody>
    </table>
</body>

尽管我在上一页设置了$ _SESSION变量。在此页面中,我与本地服务器连接,并通过此页面将我的详细信息存储在本地服务器中,并存储$ _SESSION变量值:

if($total_accounts>0){
    echo "
        <script type='text/javascript'>
            alert('Bike details alreay exists');
            window.location='question1.php';
        </script>
    ";
}

else {
    $filename = $_FILES["bike_image"]["name"];
    $tempname = $_FILES["bike_image"]["tmp_name"];
    $foldername = "bike_image/".$filename;
    move_uploaded_file($tempname, $foldername); 
    $query = "INSERT INTO bike_details (bike_brand,bike_name,bike_price,bike_image) VALUES ('$bike_brand', '$bike_name', '$bike_price', '$foldername');";
    $run_query = mysqli_query($con, $query) or die(mysqli_error($con));
    
    $_SESSION['id'] = $bike_id;
    echo $_SESSION['id'];
    echo "
        <script type='text/javascript'>
            alert('Bike details updated successfully');
            window.location='question2.php';
        </script>
    ";

}

这是我在运行代码时遇到的错误:

Bike BrandBike NameBike ImageBike rent price
Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\ridobiko_question1\question2.php on line 56

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\ridobiko_question1\question2.php on line 57

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\ridobiko_question1\question2.php on line 58

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\ridobiko_question1\question2.php on line 59

1 个答案:

答案 0 :(得分:0)

任何需要访问<!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <!-- jQuery library --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <!-- Popper JS --> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <!-- Latest compiled JavaScript --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <div class="table-responsive"> <table class="table table-hover table-dark"> <thead> <tr> <th scope="col">Channel No</th> <th scope="col">Channel Name</th> <th scope="col">Descrption</th> <th scope="col">Recording Status</th> <th scope="col">Edit</th> </tr> </thead> <tbody> <tr> <th scope="row">1</th> <td>TV 1</td> <td>Otto</td> <td>Y</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> <tr> <th scope="row">2</th> <td>TV 2</td> <td>Thornton</td> <td>Y</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> <tr> <th scope="row">3</th> <td>TV 3</td> <td>dfdf</td> <td>N</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> <tr> <th scope="row">4</th> <td>TV 4</td> <td>dfdf</td> <td>Y</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> <tr> <th scope="row">5</th> <td>TV 5</td> <td>dfdf</td> <td>Y</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> <tr> <th scope="row">6</th> <td>TV 6</td> <td>dfdf</td> <td>Y</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> <tr> <th scope="row">7</th> <td>TV 7</td> <td>dfdf</td> <td>Y</td> <td><button type="button" class="btn btn-info" data-toggle="modal" data-target="#ModalLoginForm"> Edit </button></td> </tr> </tbody> </table> <div id="ModalLoginForm" class="modal fade"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <form role="form" method="POST" action=""> <input type="hidden" name="_token" value=""> <div class="form-group"> <label class="control-label">Channel No</label> <div> <input type="number" class="form-control input-lg" name="channelid" value=""> </div> </div> <div class="form-group"> <label class="control-label">Channel Name</label> <div> <input type="text" class="form-control input-lg" name="channel"> </div> </div> <div class="form-group"> <label class="control-label">Description</label> <div> <input type="text" class="form-control input-lg" name="description"> </div> </div> <div class="form-group"> <div class="checkbox"> <label> <input type="checkbox" name="remember"> Channel Recordable </label> </div> </div> <div class="form-group"> <div> </div> </div> <div class="form-group"> <div> <button type="submit" class="btn btn-success">Update</button> </div> </div> </form> </div> </div> <!-- /.modal-content --> </div> <!-- /.modal-dialog --> </div> <!-- /.modal -->的页面应该开头:

$_SESSION

否则您将得到不想要的结果。另外,如果您想检查是否已经 设置了会话值,可以通过以下方法进行测试:

<?php
session_start();
/* other code... */

/* don't do this: 
if (!isset($_SESSION)) {
  session_start();
}
*/
?>

您应该应用这些更改,然后重试。