By default a mysqli_error
will display first thing on top of the page.
I'm trying to understand how I can echo errors wherever I want on a page.
signup.php
if(isset($_POST['register'])){
$username = $db->real_escape_string(trim(strip_tags($_POST['username'])));
$checkrow = mysqli_query($db, "SELECT * FROM users WHERE username='".$username."'");
if(mysqli_num_rows($checkrow) > 0){
echo '<divclass="alert alert-danger">Username already exists. Please choose a different one</div>';
}else{
//do some
}}
<html>
<body>
<div class="error_message"> Display error message here instead </div>
<form> Please sign up</form>
</body>
</html>
Something like this:-
<?php
$error = '';//empty variable
if(isset($_POST['register'])){
$username = $db->real_escape_string(trim(strip_tags($_POST['username'])));
$checkrow = mysqli_query($db, "SELECT * FROM users WHERE username='".$username."'");
if(mysqli_num_rows($checkrow) > 0){
$error = 'Username already exists. Please choose a different one'; // assign error
}else{
//do some
}
}
?>
<html>
<body>
<?php if(!empty($error)){?>
<div class="error_message"><?php echo $error; // echo errors?></div>
<?php } ?>
<form> Please sign up</form>
</body>
</html>
Note:- try to read about prepared statements
and use them to prevent from SQL Injection
.Thanks