Я новичок в php-коде, и здесь я хочу отображать сообщение об ошибке в login.php, если пользователь ввел неверный идентификатор пользователя или пароль. В этом случае я написал два кода страницы. На странице login.php введите имя пользователя и пароль на страницу check.php. если имя пользователя и пароль верны, то он переходит на страницу xyz.php else на страницу входа в систему.
login.php // страница входа
<form name="login" enctype="multipart/form-data" action="checkpage.php" method="post"> <table border="0" cellpadding="0" cellspacing="0"> <tr> <th>Username</th> <td><input type="text" name="username" value="sandeep" onfocus="this.value=''" class="login-inp" /></td> </tr> <tr> <th>Password</th> <td><input type="password" name="password" class="login-inp" /></td> </tr> <tr> <th></th> <td valign="top"><input type="checkbox" class="checkbox-size" id="login-check" /><label for="login-check">Remember me</label></td> </tr> <tr> <th></th> <td><input type="submit" class="submit-login" /></td> </tr> <tr><th></th><td>w want to display error message here..</td></tr> </table></form>
checkpage.php // страница подключения
<?php session_start(); //connecting to db $username=$_POST['username']; $pwd=$_POST['password']; $q="select *from xyz where username='$username' AND password='$pwd'"; $qry=mysql_query($q); if(mysql_num_rows($qry)>0) { $_SESSION['username']=$username; echo "<script>window.open('xyz.php','_self')</script>"; } else{ header("location:login.php"); } ?>
приведенный выше код работает нормально, но я хочу отобразить сообщение об ошибке, как я могу отобразить сообщение об ошибке. пожалуйста, направляйте меня.
Вы можете установить сообщение на сеанс в вашем скрипте check.php, а затем сразу же удалить его после отображения (AKA «читать один раз»):
$_SESSION['message'] = 'Your message';
и затем (в login.php, где вы хотите, чтобы сообщение отображалось):
if (isset($_SESSION['message'])) { echo $_SESSION['message']; unset($_SESSION['message']); }
сif (isset($_SESSION['message'])) { echo $_SESSION['message']; unset($_SESSION['message']); }
Дайте пробел между * и из запроса.
$q="select * from xyz where username='$username' AND password='$pwd'";
Для сообщения об ошибке вы можете установить флаг как error= 1
Заголовок ( "? местоположение: login.php ошибки = 1"); и в login.php вы можете проверить этот флаг и отобразить сообщение типа
<?php If(isset($_GET['error']) && $_GET['error'] == 1){ ?> <h3>Invalid username or password</h3> <?php } ?>
Вы можете установить сеанс ошибки и отобразить его в login.php и отключить его после отображения.
но не забывайте использовать session_start на обеих страницах session_start (); // наверху страницы
перед кодом заголовка добавьте $_SESSION['error'] = "you message here"
в login.php
<?php if(isset($_SESSION['error'])) { echo $_SESSION['error']; } ?>
else { echo 'invalid username or password'; header("location:login.php"); }