开发者

SESSION variable value is not passing

I'm trying to pass a value from a select input control on an HTML form. When I hardcode it, it gets echoed, when not, all I get is this: The invention type did not go through correctly.

Here is my page1.php:

<?php
se开发者_JAVA百科ssion_start(); 

$_SESSION['invtype'] = $invtype;

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

if (isset($_POST['Submit'])) {

        if ($_POST['firstname'] != "") {
            $_POST['firstname'] = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);
            if ($_POST['firstname'] == "") {
                $errors .= 'Please enter a valid first name.<br/><br/>';
            }
        } else {
            $errors .= 'Please enter your first name.<br/>';
        }

        if ($_POST['lastname'] != "") {
            $_POST['lastname'] = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING);
            if ($_POST['lastname'] == "") {
                $errors .= 'Please enter a valid last name.<br/><br/>';
            }
        } else {
            $errors .= 'Please enter your last name.<br/>';
        }

    if (!$errors) {header("location: offerform_switch.php");
       }


        else {
            echo '<div style="color: red">' . $errors . '<br/>
                </div>';



        }
    }

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title>Offer Form, Part 1</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" href="inventron_sage_short.css" type="text/css" />
        <link rel="stylesheet" href="form.css" type="text/css" />

    </head>
    <body>
        <div id = "logo">
            <img src = "img/top.jpg" alt = "logo" />
        </div>  
        <div id = "wrapper">




            <div id="stylized" class="myform">
<form id="form" action="page1.php" method="post">



    <p>
        <label for="firstname">FIRST NAME*:
        </label>
        <input type="text" name="firstname" id="firstname" value="<?php echo $firstname?>" />
    </p>    

    <p>
        <label for="lastname">LAST NAME*:
        </label>
        <input type="text" name="lastname" id="lastname" value="<?php echo $lastname?>" />
    </p>    

    <div id = "category">Categorize your invention:</div>

<div class="spacer"></div>

    <p>
        <select  id="invtype" name="invtype">
            <option value="0" selected="selected">Select type</option>
            <option value="product">PRODUCT</option>
            <option value="software">SOFTWARE</option>

        </select>
        <input type="submit" name="Submit" value="Next!" />

    </div>
      </div>
    </body>
</html>

Here is my offerform_switch.php:

<?php

session_start(); 
// echo variable from the session, we set this on our other page 
echo $_SESSION['invtype'];
$invtype = $_SESSION['invtype'];

//connect to your database ** EDIT REQUIRED HERE **
mysql_connect("mysql.myserver.com","myuser","mypassword"); //(host, username, password)

//specify database ** EDIT REQUIRED HERE **
mysql_select_db("invention") or die("Unable to select database"); //select which database we're using


switch ($invtype){
    case "product":
        include("page2_product.php");
        break;
    case "software":
        include("page2_software.php");
        break;
    default:
       echo "The invention type did not go through correctly."; 
}

?>

What am I doing wrong?

Thank you!


It should be

$_SESSION['invtype'] = $_POST['invtype'];


You're missing "session_id();" right below the "session_start();". I don't know why exactly it's required, but if I remember correctly, it is.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜