Есть ли ошибка в этих кодах? login.php PHP: <?php // we must never forget to start the session session_start(); $errorMessage = ''; if (isset($_POST['txtUserId']) && isset($_POST['txtPassword'])) { include 'config.php'; include 'opendb.php'; $userId = $_POST['txtUserId']; $password = $_POST['txtPassword']; $email = ""; // check if the user id and password combination exist in database $sql = "SELECT user_id FROM tbl_auth_user WHERE user_id = '$userId' AND user_password = PASSWORD('$password')"; $result = mysql_query($sql) or die('Query failed. ' . mysql_error()); $sql1="SELECT user_id FROM tbl_auth_user WHERE email='$email'"; $r=mysql_query($sql1) or die('Query failed. ' . mysql_error()); $_SESSION['username']= $userId; $_SESSION['password']= $password; $_SESSION['email']= $email; if (mysql_num_rows($result) == 1) { // the user id and password match, // set the session $_SESSION['db_is_logged_in'] = true; // after login we move to the main page header('Location: main.php'); exit; } else { $errorMessage = 'Sorry, wrong user id / password'; } include 'closedb.php'; } ?> <html> <head> <title>Basic Login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php if ($errorMessage != '') { ?> <p align="center"><strong><font color="#990000"><?php echo $errorMessage; ?></font></strong></p> <?php } ?> <form action="" method="post" name="frmLogin" id="frmLogin"> <table width="400" border="1" align="center" cellpadding="2" cellspacing="2"> <tr> <td width="150">User Id</td> <td><input name="txtUserId" type="text" id="txtUserId"></td> </tr> <tr> <td width="150">Password</td> <td><input name="txtPassword" type="password" id="txtPassword"></td> </tr> <tr> <td width="150"> </td> <td><input name="btnLogin" type="submit" id="btnLogin" value="Login"></td> </tr> </table> </form> </body> </html> main.php PHP: <?php // like i said, we must never forget to start the session session_start(); // is the one accessing this page logged in or not? if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) { // not logged in, move to login page header('Location: login.php'); exit; } ?> <html> <head> <title>Main User Page</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <p>This is the main application page. You are free to play around here since you are an autenthicated user :-) </p> <p><?php echo $_SESSION['username'].$_SESSION['password'].$_SESSION['email'];?></p> <p><a href="logout.php">Logout</a> </p> </body> </html> Не отображает $_SESSION['email']; и кстати, что должно быть в файле closedb.php
1. Нафига второй запрос, к тому же такой кривой? Если емайл не передается в форме, считывай его из базы, в первом запросе где проверяеш логин и пароль 2. closedb.php - ета твои странные придумки или ты подсмотрел этот кусок в какойто странной программе. Возможно в ней оно и было актуально, но не в твоем случае
Знаете почему второй запрос, потому что если поместить емейл в первом типо PHP: <?php $sql = "SELECT user_id FROM tbl_auth_user WHERE user_id = '$userId' AND user_password = PASSWORD('$password') AND email = '$email'"; $result = mysql_query($sql) or die('Query failed. ' . mysql_error()); ?> (не только это а весь код с таким исходом...) Тупо не заходит в аккаунт...'Sorry, wrong user id / password'
И кстати Diver $email=""; а потом после запроса должно минятся на то, что в базе, а уж потом на $_SESSION['email'];
Ребят а может стоит напистать <?php $_SESSION['email'] =& '$email'; ?>(не только это а весь код с таким исходом=)) стоит???
Код (Text): $sql1="SELECT user_id FROM tbl_auth_user WHERE email='$email'"; $r=mysql_query($sql1) or die('Query failed. ' . mysql_error()); $_SESSION['username']= $userId; $_SESSION['password']= $password; $_SESSION['email']= $email; Ничего не понятно, что такой $userId, $password? Откуда? Запрос тут причем? http://www.php.net/mysql — курить и курить мануал.