0

I wants to check whether the input data stores in database or not. this code works but only when data is valid but if data is invalid else statement runs as many time as the number of columns present in my database.

<?php 
include_once('connection.php');
if(isset($_POST['Submit'])){
$username= $_POST['user'];
$password= $_POST['pass'];
$query = "SELECT * FROM form1 ";
$result = mysqli_query($conn,$query);
if ( false===$result ) {
printf("error: %s\n", mysqli_error($conn));
}
else {
 //echo 'done.';
}
while ($row = mysqli_fetch_assoc($result))
{
$name = $row['username'];
$code = $row['password'];
if((($username == $name) && ($username!="" )) && (($password == $code) && 
($password!="")) )
{
echo "valid";
header("Location:practice.php");
}
else{
echo "please enter correct username <br/>";
}
}
}
?>

output:

please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username 
please enter correct username

}

#18 database values store in my database and its displays this message 18 times i didn't understand what is the issue with this code

Funk Forty Niner
  • 74,450
  • 15
  • 68
  • 141
ruchi
  • 17
  • 5
  • Remove the `else` statement, and put your echo after the while loop. – Syscall Mar 30 '18 at 07:22
  • check your `if else` statement. – Puneet Mar 30 '18 at 07:23
  • 1
    But, I really think that's not the right way to check values from database. Search about `WHERE` clause in your query and use [paramaterized queries](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). – Syscall Mar 30 '18 at 07:23
  • 1
    change your `query` use `WHERE` clause – Puneet Mar 30 '18 at 07:25
  • 1
    Also read [`password_verify()`](http://php.net/password_verify) and [`password_hash()`](http://php.net/manual/en/function.password-hash.php) – Syscall Mar 30 '18 at 07:26
  • 1
    If you'd indented your code properly, you'd be able to see the problem. – alexis Mar 30 '18 at 08:01

0 Answers0