2013-11-15 24 views
-1

我遇到問題,無法找到解決方案。 經過一個HTML文章後,我有一個正確分配爲用戶選擇「M」或「F」的變量。 對不起,如果源寫的不好,這是我第一次編碼!在某些IF ELSE測試後,從字符串更改爲整數的變量

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; 

回答

4

您正在分配,而不是比較。使用==來比較值。

+0

你是對的,這是問題...我覺得很愚蠢:(謝謝 – user2996667