Я новичок в PHP, и я хочу сделать доступ к странице только в том случае, если человек вошел в систему. Login2.php:
<?php $host="hostxyz"; $dbusername="userxyz"; $dbpassword="xyz"; $db_name="dbxyz"; $tbl_name="tblxyz"; mysql_connect("$host", "$dbusername", "$dbpassword")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $username=$_POST['username']; $password=$_POST['pwd']; $encryptedpwd=sha1($password); $username = stripslashes($username); $encryptedpwd = stripslashes($encryptedpwd); $username = mysql_real_escape_string($username); $encryptedpwd = mysql_real_escape_string($encryptedpwd); $sql="SELECT * FROM $tbl_name WHERE username='$username' and pwd='$encryptedpwd'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ $_SESSION['username'] = $username; $_SESSION['pwd'] = $encryptedpwd; header("location:login_success.php"); } else { echo "Username e/o password errata."; } ?>
login_success.php:
<?php session_start(); if($_SESSION['username']){ header("location:area_utenti.php"); } ?> <html> <body> Login Successful </body> </html>
area_utenti.php (member_area.php):
<?php session_start(); if(!isset($_SESSION['username'])) { header("location:dologin.html"); } ?> <html> <head> <title>Area Utenti</title> </head> <body> <p>Sei loggato, bravoh!</p> </body> </html>
dologin.html – это просто страница, на которой перенаправляются незарегистрированные / неработающие пользователи, если они пытаются получить доступ к области-участнику. Проблема в том, что после входа в систему я должен быть перенаправлен на area_utenti.php, но area_utenti.php перенаправляет меня на dologin.html. Что я сделал не так? Извините за плохой английский.
PS: Я попытался найти решения на StackOverflow, и я попытался их применить, но они не сработали.
Вы забыли начать сеанс в одном из ваших сценариев, возможно, это проблема, возможно, стоит проверить его:
<?php session_start(); $host="hostxyz"; $dbusername="userxyz"; $dbpassword="xyz"; $db_name="dbxyz"; $tbl_name="tblxyz"; //...rest of your code...