代码之家  ›  专栏  ›  技术社区  ›  Georodin

我正在尝试传递$_SESSION变量

  •  1
  • Georodin  · 技术社区  · 10 年前

    为什么这不起作用?我的错误在哪里,我试图通过 $_SESSION var,发送到另一个站点:

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Buch eintragen</title>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
     <table><form method='post'>
            <tr><td>ISBN: </td><td><input type='text' name='isbn' /></td></tr>
            <tr><td>Titel: </td><td><input type='text' name='title' /></td></tr>
            <tr><td>Autor: </td><td><input type='text' name='autor' /></td></tr>
            <tr><td>Verlag: </td><td><input type='text' name='verlag' /></td></tr>
            <tr><td><input type='submit' value='neues Buch anlegen'/></td></tr>
            </form></table>
            <?php 
            session_start();
            if (isset($_POST['isbn'])){
            $_SESSION['isbn'] = $_POST['isbn'];
            $_SESSION['title'] = $_POST['title'];
            $_SESSION['autor'] = $_POST['autor'];
            $_SESSION['verlag'] = $_POST['verlag'];
    
            //header('Location: /KlausurSchulzke/buch-eintragen.php');
            } ?>
    
            <strong><?php echo $_SESSION['isbn'];?></strong>
    </body>
    
    </html>
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   Clay    10 年前

    在发送任何标题之前,session_start()必须位于页面的顶部。

    您必须将会话放在文件的顶部:

    <?php
    session_start(); // session is always at the top here.
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Buch eintragen</title>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
     <table><form method='post'>
            <tr><td>ISBN: </td><td><input type='text' name='isbn' /></td></tr>
            <tr><td>Titel: </td><td><input type='text' name='title' /></td></tr>
            <tr><td>Autor: </td><td><input type='text' name='autor' /></td></tr>
            <tr><td>Verlag: </td><td><input type='text' name='verlag' /></td></tr>
            <tr><td><input type='submit' value='neues Buch anlegen'/></td></tr>
            </form></table>
            <?php 
            if (isset($_POST['isbn'])){
            $_SESSION['isbn'] = $_POST['isbn'];
            $_SESSION['title'] = $_POST['title'];
            $_SESSION['autor'] = $_POST['autor'];
            $_SESSION['verlag'] = $_POST['verlag'];
    
            //header('Location: /KlausurSchulzke/buch-eintragen.php');
            } ?>
    
            <strong><?php echo $_SESSION['isbn'];?></strong>
    </body>
    
    </html>
    
        2
  •  1
  •   Georodin    10 年前

    谢谢你的努力。 我找到了一个简单的解决办法。 我知道,这不是我问题的真正答案,但我没时间了。我的老师还禁止我在html文件中使用php。

    HTML文件

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Buch eintragen</title>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
     <table><form method='post' action="buch-eintragen.php">
            <tr><td>ISBN: </td><td><input type='text' name='isbn' /></td></tr>
            <tr><td>Titel: </td><td><input type='text' name='title' /></td></tr>
            <tr><td>Autor: </td><td><input type='text' name='autor' /></td></tr>
            <tr><td>Verlag: </td><td><input type='text' name='verlag' /></td></tr>
            <tr><td><input type='submit' value='neues Buch anlegen'/></td></tr>
            </form></table>
            <div class='button menu' onclick="javascript:location.href='/KlausurSchulzke/SchulzkeKlausurBuecherSQL.php'">Menu</div>
    </body>
    
    </html>
    

    PHP文件

    <?php
    $baseURI = $_SERVER['PHP_SELF'];
            openSQL();
            $sqlbefehl = 'INSERT INTO `buecher` VALUES (\''.$_POST['isbn'].'\',\''.$_POST['title'].'\',\''.$_POST['autor'].'\',\''.$_POST['verlag'].'\')';
            @mysql_query("SET NAMES 'utf8'");
            @mysql_query($sqlbefehl);
            header('Location: /KlausurSchulzke/SchulzkeKlausurBuecherSQL.php?command=work');
    
    function openSQL()
    {
        $server   = "localhost";
        $user     = "root";
        $passwort = "";
        $db       = "schulzke";
        $dblink   = @mysql_connect($server, $user, $passwort);
        if (!@mysql_select_db($db)) {
            echo "<br>Keine Verbindung zur Datenbank $db möglich!";
            echo "<br>" . mysql_error();
            global $baseURI;
            echo "<div class='button menu' onclick=\"javascript:location.href='$baseURI'\">Menu</div>";
            die();
        }
    
    }
    ?>