2010-08-20 8 views
3

HTML 양식의 선택 입력 컨트롤에서 값을 전달하려고합니다. 내가 하드 코드하면 에코가 울리고, 그렇지 않다면 다음과 같습니다. 발명 유형이 올바르게 적용되지 않았습니다.SESSION 변수 값이 전달되지 않습니다.

다음
<?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."; 
} 

?> 

내가 뭘 잘못하고 여기에

내 page1.php입니까?

감사합니다.

답변

3

그것은

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

'$ _POST [ 'var']'가'$ var'에 자동으로 내 보내지는 때가있었습니다. – NullUserException

+1

그래, 그들은 가장 악명 높은 보안 위협 중 하나가 되었기 때문에 기본적으로 옵션이 켜지는 것을 중단했습니다. 전체 인터넷에. – Teekin

+0

감사합니다! 그것은 효과가있다! – vlevsha

0

당신에게없는 게해야한다 "SESSION_ID를();" "session_start();"바로 아래에 있습니다. 왜 그것이 정확히 필요한지 모르겠지만, 정확하게 기억한다면, 그렇습니다.

+0

그럴 필요는 없습니다. – NullUserException

관련 문제