私はここに書かれたコードに懸念があります。接続を確認してもOKですが、ここのif文が実行されると、password = cpasswordから2番目のif文までユーザーが存在するかどうかをチェックし、falseのためelseに入りますが、 if($ query_run)が偽になる理由がわからない、3番目のif文に達しました。
したがって、データは自分のデータベースに追加されず、そのelse文で宣言したERRORのアラートが表示されます。
<?php
if(isset($_POST['submit_btn']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
if($password==$cpassword)
{
$query= "select * from user WHERE username ='$username'";
$query_run = mysqli_query($con,$query);
if(mysqli_num_rows($query_run)>0)
{
// there is already a user with the same username
echo '<script type="text/javascript"> alert("user already exist.. Try another username")</script>';
}
else
{
$query = "insert into user values('$username','$password')";
$query_run = mysqli_query($con,$query);
if($query_run)
{
echo '<script type="text/javascript"> alert("User Registered Go to Login page to Log in")</script>';
}
else
{
echo '<script type="text/javascript"> alert("Error..")</script>';
}
}
}
else
{
echo '<script type="text/javascript"> alert("Password does not match!")</script>';
}
}
?>
してください、準備されたクエリを使用するには、SQLインジェクションに開放されています。 –
@IvanBolnikhこれは問題ではありませんでした。 –
@MichaelHirschler:それは問題ではありません。誰かが安全でないことをしていて、安全でないことが分かっている場合は、話す必要があります。 – halfer