SESSION变量值未通过

时间:2010-08-20 22:03:37

标签: php

我正在尝试从HTML表单上的选择输入控件传递值。 当我对它进行硬编码时,它会得到回应,否则,我得到的就是: 发明类型没有正确完成。

这是我的page1.php:

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

这是我的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."; 
}

?>

我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:3)

应该是

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

答案 1 :(得分:0)

你错过了“session_id();”在“session_start();”的正下方。我不知道为什么要这么做,但如果我没记错的话,那就是。