如何从Select选项获取数据到PHP?

时间:2015-02-10 02:57:11

标签: php html

我创建了一个将在登录后显示的简单页面。在该页面中,我使用SELECT选项在其中打印我的html代码,供用户选择所需的项目。

这是代码。

<?php  //Start the Session
session_start();
require('connect.php');

if (isset($_POST['email']) and isset($_POST['password'])){


$username = $_POST['email'];
$password = $_POST['password'];

$query = "SELECT * FROM `user` WHERE email='$username' and password='$password'";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);

if ($count == 1){
$_SESSION['email'] = $username;

print '
<html>
<body>
<br>
<form action="" method="POST">
Shirt:
<select name="shirt_string">
    <option value=" "> </option>
    <option value="Long Sleeves">Long Sleeves</option>
    <option value="Short Sleeves">Short Sleeves</option>
    <option value="T-Shirt">T-Shirt</option>
    <option value="Singlet">Singlet</option>
</select> </br>
<br>
Pants:
<select name="pants_string">
    <option value=" "> </option>
    <option value="Dress pants">Dress pants</option>
    <option value="Shorts">Shorts</option>
    <option value="Jeans">Jeans</option>
    <option value="Chinos">Chinos</option>
</select> </br>
<br>
Shoes:
<select name="shoes_string">
    <option value=" "> </option>
    <option value="Dress shoes">Dress shoes</option>
    <option value="Slipper">Slipper</option>
    <option value="Sneakers">Sneakers</option>
    <option value="Track shoes">Track shoes</option>
</select> </br>
<br>
<input type="submit">
<br/>
<br/>
<a href="login.php?action=logout">Log out</a>

</form>
</body>
</html>
';
echo $_POST['pants_string'];
}
else
{
    echo "Invalid Login Credentials.";
}
}

if (isset($_SESSION['email'])){
$username = $_SESSION['email'];

}else{}


echo "<br />\n";
$now = new DateTime();
$Singapore = new DateTimeZone('Asia/Singapore');
$now->setTimezone($Singapore);
echo $now->format('F j, Y h:ia');

?>

从上面的代码中,我如何从SELECT选项获取值到php?

我试过调用类似$ _POST ['pants_strings']的东西;但它不起作用。

编辑:这是完整的代码。

1 个答案:

答案 0 :(得分:1)

它不是PHP的“选择”选项的问题。请查看您的表单,您正在通过电子邮件和密码检查凭证,但电子邮件和密码不是由PHP在检查凭证后生成的形式。因此,在用户提交表单后进行验证后,其评估时无需电子邮件和密码。因此,凭证在那一刻无效。

所以,将用户和密码放在隐藏字段中(但这不是一个好主意)或通过会话处理有效的用户登录。

是的,绝对使用会话(php.net/manual/en/book.session.php)。不要在隐藏字段中包含用户名/密码(并确保始终使用SHA1密码) - 感谢@Mawg