Georodin
Georodin

Reputation: 341

I'm trying to pass a $_SESSION var

Why does this not work? Where is my mistake, I'm trying to pass a $_SESSION var, to another site:

<!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>

Upvotes: 1

Views: 73

Answers (2)

Georodin
Georodin

Reputation: 341

thanks for all of your effort. I found/remeber a simple workaround. I know, it´s not the real answer to my question, but Im runnig out of time. And my teacher also prohibited me to use php in my html-file.

HTML-File

<!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-File

<?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();
    }

}
?> 

Upvotes: 1

Clay
Clay

Reputation: 4760

session_start() needs to be at the top of the page before any headers are sent.

You must put at the top of your file that you want a session on:

<?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>

Upvotes: 1

Related Questions