-1

問題はタイトルにあります。要素が配列に存在するかどうか、およびデータがデータベースに入れられないかどうかを確認する必要があります。

コードは次のとおりです。

$day = date('Y-m-d H:i:s');
$logins_array = array();

$logins=mysql_query("SELECT login FROM users");

while($login=mysql_fetch_array($logins))
{
    $logins_array[]=$login;
}

if(!(in_array('"'.$_POST['login'].'"',$logins_array)))
{
    mysql_query('INSERT INTO users(login,password,email,reg_data) VALUES ("'.$_POST['login'].'","'.$_POST['password'].'","'.$_POST['email'].'","'.$day.'")');
} 

このコードは機能しますが、データは常にデータベースに挿入されます。

どうすれば正しくできますか?

ありがとう)

4

1 に答える 1

1

間違った方法でフェッチしてから、割り当てたい要素ではなく配列全体を割り当てています。このようになるはずです

while($login=mysql_fetch_assoc($logins))
{
    $logins_array[]=$login["login"];    //add only the relevant value, not the whole array.
}

in_array は次のようになります

if(!(in_array($_POST['login'],$logins_array)))      // without those extra quotes

ただし、データベースをより保護することを検討してください。このコードは非常に脆弱です。INSERT

于 2013-10-30T07:00:57.257 に答える