Я не могу отобразить $ _SESSION ['username'] на моей странице index.html / auth.php после входа в систему. Это странно, потому что он может обнаружить $ _SESSION ['username'] на других страницах после входа в систему,только не моя страница index / auth.
РЕДАКТИРОВАТЬ: При правильном входе в систему login.php переходит в index.html.Затем index.html отображает кнопку «login» из auth.php как «Login»
login.php, где пользователь вводит имя пользователя и пароль для входа в систему, а $ _SESSION ['username'] равносоздано.
<?php session_start();
require('db.php');
// If form submitted, insert values into the database.
if (isset($_POST['username'])){
// removes backslashes
$username = stripslashes($_REQUEST['username']);
//escapes special characters in a string
$username = mysqli_real_escape_string($con,$username);
$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($con,$password);
//Checking is user existing in the database or not
$query = "SELECT * FROM `users` WHERE username='$username'
and password='".md5($password)."'";
$result = mysqli_query($con,$query) or die(mysql_error());
$rows = mysqli_num_rows($result);
if($rows==1){
$_SESSION['username'] = $username;
// Redirect user to index.html
header("Location: ../index.html");
}else{
echo "<div class='form'>
<h3>Username/password is incorrect.</h3>
<br/>Click here to <a href='login.php'>Login</a></div>";
}
}else{
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Login</title>
<link rel="stylesheet" href="login.css" />
</head>
<body>
<div class="form">
<h1>Log In</h1>
<form action="" method="post" name="login">
<input type="text" name="username" placeholder="Username" required style="text-align: center;"/>
<input type="password" name="password" placeholder="Password" required style="text-align: center;"/>
<input name="submit" type="submit" value="Login" />
</form>
<a href='resetpassword.php'>Forgotten Password?</a>
<br/><a href='registration.php'>Register Here</a>
</div>
<?php } ?>
</body>
</html>
index.html, где вызывается страница auth.php (остальная часть моей страницы index.html не имеет значения для этой проблемы, заменена на «бла-бла-бла»)).РЕДАКТИРОВАТЬ: Мой сервер настроен так, что index.html может запускать php.
<?php session_start(); ?>
<?php require('login/auth.php'); ?>
<?php include('login/checkadmin.php'); ?>
<?php include('login/getoutages.php'); ?>
<!doctype html>
<html>
blah blah blah
</html>
auth.php, где используется база данных и где $ _SESSION ['username'] предназначен для отображения, но не для этого!
<?php session_start();
ob_end_clean();
if(isset($_SESSION['username'])) {
?>
<table id="signedin">
<tr>
<td colspan="5">
Welcome, <?php echo $_SESSION['username']; ?>!
</td>
</tr>
<tr>
<td align="right">
<a id="logouts" href="login/logout.php">Sign Out</a>
</td>
<td align="right">
</td>
<td align="left">
<a id="profiles" href="login/profile.php">Profile</a>
</td>
</tr>
</table>
<?php } else if(!isset($_SESSION['username'])) { ?>
<div id="notsignedin"><a id="logins" href="/login/login.php">Login</a></div>
<?php } ?>
Любая информация полезна!Спасибо!
РЕДАКТИРОВАТЬ: я обновил свой код для запуска session_start ();прежде всегоПо-прежнему не удается обнаружить $ _SESSION ['username'].EDIT2: переключил $ username = $ _SESSION ['username'];в login.php для $ _SESSION ['username'] = $ username;Все еще не отображается на auth.php