PHP会话_以PostGreSQL不在其他页面上运行开始

PHP会话_以PostGreSQL不在其他页面上运行开始,php,mysql,html,postgresql,Php,Mysql,Html,Postgresql,我试图使用会话来存储信息,以便能够使用PHP访问其他页面 我已经用MySQL做过几次了,它工作得很好,但是在PostGreSQL中,除了在创建的页面上,它似乎在其他任何地方都不起作用 下面是一个非常简单的示例,我试图制作,但这甚至不起作用(如果您将psql替换为mysql,下面的代码可以工作): index.php: <?php include_once("connection.php"); ?> <!DOCTYPE HTML> <html>

我试图使用会话来存储信息,以便能够使用PHP访问其他页面

我已经用MySQL做过几次了,它工作得很好,但是在PostGreSQL中,除了在创建的页面上,它似乎在其他任何地方都不起作用

下面是一个非常简单的示例,我试图制作,但这甚至不起作用(如果您将psql替换为mysql,下面的代码可以工作):

index.php:

<?php
    include_once("connection.php");
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Index</title>
    </head>
    <body>
        <div class="container">
            <p>hello</p>
            <form method="post" action="">
                <input type="text" name="name">
                <input type="submit" name="submit" value="Submit">              
            </form>
        </div>
    </body>
</html>
<?php
    include_once("connection.php");

    $username = $_SESSION['name'];
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Index</title>
    </head>
    <body>
        <div class="container">
            <?php echo '<p> Hello ' . $username .'</p>';
            ?>
        </div>
    </body>
</html>
<?php

    $conn_data = ("host=cimteaching1 port=27005 dbname='enter name' user='enter username' password='enter password'");
    $dbconn = pg_connect($conn_data) or die("Cannot connect to db" . pg_last_error());



    if(isset($_POST['submit'])) {
         $name = $_POST['name'];
         session_start();
         $_SESSION['name'] = $name;
         header("Location: test.php");
    }
?>

指数
你好

test.php:

<?php
    include_once("connection.php");
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Index</title>
    </head>
    <body>
        <div class="container">
            <p>hello</p>
            <form method="post" action="">
                <input type="text" name="name">
                <input type="submit" name="submit" value="Submit">              
            </form>
        </div>
    </body>
</html>
<?php
    include_once("connection.php");

    $username = $_SESSION['name'];
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Index</title>
    </head>
    <body>
        <div class="container">
            <?php echo '<p> Hello ' . $username .'</p>';
            ?>
        </div>
    </body>
</html>
<?php

    $conn_data = ("host=cimteaching1 port=27005 dbname='enter name' user='enter username' password='enter password'");
    $dbconn = pg_connect($conn_data) or die("Cannot connect to db" . pg_last_error());



    if(isset($_POST['submit'])) {
         $name = $_POST['name'];
         session_start();
         $_SESSION['name'] = $name;
         header("Location: test.php");
    }
?>

指数
Connection.php:

<?php
    include_once("connection.php");
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Index</title>
    </head>
    <body>
        <div class="container">
            <p>hello</p>
            <form method="post" action="">
                <input type="text" name="name">
                <input type="submit" name="submit" value="Submit">              
            </form>
        </div>
    </body>
</html>
<?php
    include_once("connection.php");

    $username = $_SESSION['name'];
?>
<!DOCTYPE HTML>
<html>
    <head>
        <title>Index</title>
    </head>
    <body>
        <div class="container">
            <?php echo '<p> Hello ' . $username .'</p>';
            ?>
        </div>
    </body>
</html>
<?php

    $conn_data = ("host=cimteaching1 port=27005 dbname='enter name' user='enter username' password='enter password'");
    $dbconn = pg_connect($conn_data) or die("Cannot connect to db" . pg_last_error());



    if(isset($_POST['submit'])) {
         $name = $_POST['name'];
         session_start();
         $_SESSION['name'] = $name;
         header("Location: test.php");
    }
?>

在包含
connection.php
之前,您有一个
session\u start
,但是在
connection.php
中有另一个
session\u start
?这是混乱的…这只是作为一个额外的测试添加的。你到底得到了什么错误?据我所知,
$\u SESSION['name']
仅在提交表单时设置(
$\u POST
),因此
$username=$\u SESSION['name']
很可能什么都没有。。。。为什么只有在有
$\u POST['submit']
数据的情况下才开始会话?我似乎没有收到任何错误,它只是不会显示。与数据库的连接是正确的,除非您提交
$\u POST['name']
,否则您应该得到一个通知:test.php上存在未定义的索引错误-并且由于index.php正在向自身发布。。。确保已打开所有错误报告-我非常确定这将准确地告诉您问题所在: