私はユーザ認証スクリプトを作りたいと思います。ここでは、ユーザーがサインアップしたい場合は、彼/彼女は、登録フォームに記入しなければならないとクリック"if"が動作しているか "else"が動作しています
を「登録」しますPHP
<?php
$usrnm=$_POST["userName"];
$email=$_POST["mailID"];
$pwd=$_POST["Password"];
$firstName=$_POST["firstName"];
$lastName=$_POST["lastName"];
$confpwd=$_POST["ConfirmPassword"];
if ($pwd == $confpwd)
{
if (!$con = @mysql_connect("localhost", "root","","login"))
{
echo "connection unsuccessful\n";
}
if (!$selectdb = mysql_select_db("login",$con))
{
echo "database selection unsuccessful\n";
}
$sql = "SELECT userName FROM userdetails WHERE userName='$usrnm'";
$sql2 = "INSERT INTO userdetails (userName, Password,mailID, firstName,
lastName) VALUES ('$usrnm','$pwd','$email','$firstName','$lastName')";
$retval = mysql_query($sql, $con);
while($row = mysql_fetch_row($retval))
{
フィールドの数が0以上であれば、これがあることを意味Usernameはすでにデータベースに存在し、ELSEはその情報をデータベースに追加します。私の問題は、ELSE条件が機能しておらず、IFが機能しているということです。私はISSETを使ってみましたが、まだ運がありません。
$fields=mysql_num_fields($retval);
if ($fields>0)
{echo "Username already exists";}
else
{$retval2 = mysql_query($sql2, $con);
echo "Information added";
}
}
}
}
else
{
echo "Opps...";
}
mysql_close($con);
?>
「mysql()」着信についてのコメント mysqli()または「PDO」を使用してください。また、あなたの入力を検証してください。 – TripleDeal
あなたは[古い**データベースAPI](http://stackoverflow.com/q/12859942/19068)を使用していますので、[最新の置き換え](http://php.net/manual/en /mysqlinfo.api.choosing.php)、** [SQLインジェクション攻撃](http://bobby-tables.com/)に**脆弱です**現代のAPIは、[防御](http: /stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)に対して。あなたは[不適当なハッシングアルゴリズム](http://php.net/manual/en/faq.passwords.php)を使用していますので、[注意が必要です](https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet)。 – Quentin
インデントを処理してください。このコードは事実上読めません。 – deceze