我遇到了问题而无法找到解决方案。 在html帖子后,我有一个正确分配为用户的变量选择“M”或“F”。 对不起,如果来源写得不好,这是我第一次编码!!
HTML:
<select style="width:75px;" name="sesso" multiple>
<option value="m">Male</option>
<option value="f">Female</option>
</select>
以下是我发现问题的PHP代码的一部分:
$reg_nome = strip_tags($_POST['nome']);
$reg_username = strip_tags($_POST['username']);
$reg_password = strip_tags($_POST['password']);
$reg_passwordck = strip_tags($_POST['passwordck']);
$reg_sesso = strip_tags($_POST['sesso']);
$reg_data = date("Y-m-d");
$uomo = "m";
$donna = "f";
这里有效。打印变量$reg_sesso
是正确的“M”或“F”。
echo "sesso = $reg_sesso";
$stmt = $mysqli->prepare("SELECT username FROM users WHERE username= ?");
$stmt->bind_param('s', $reg_username);
$stmt->execute();
$stmt->bind_result($query_username);
$stmt->store_result();
$n_row = $stmt->num_rows;
$stmt->close();
if ($n_row==1) //check if the user exists
{
echo "L'utente $reg_username è già registrato";
}
else {
if (preg_match("#.*^(?=.{8,20})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$#", $reg_password)) //check if password is ok
{
if($reg_password==$reg_passwordck) //check if two pass are the same
{
if($reg_sesso=$uomo||$reg_sesso=$donna) //se è stato inserito M o F
{
echo " sesso= $reg_sesso ";
// Here $reg_sesso is 1 not "M" or "F"
$password_sha1=(sha1($reg_password));
$stmt = $mysqli->prepare("INSERT INTO users (nome,username,password,data,sesso) VALUES (?,?,?,?,?)");
$stmt->bind_param('sssss', $reg_nome, $reg_username, $password_sha1, $reg_data, $reg_sesso);
$stmt->execute();
$stmt->close();
movePage(301,"login.php");
exit;
答案 0 :(得分:4)
您正在分配,而非比较。使用==
来比较值。