메인 페이지에 Im이 있고 다른 페이지로 이동했는데 더 이상 저장된 세션이 표시되지 않는 문제가 있습니다. 그러나 로그인을 클릭하면 이미 Im이라고 표시됩니다. 하지만 내가/admin /과 같은 다른 디렉토리로 간다면 세션 데이터가 여전히 존재합니다. 모든 솔루션? 모든 페이지세션 데이터가 페이지간에 손실 됨
<div id="loginoutbox">
<?php session_start();
if($_SESSION["username"]) { ?>
<div>
Hello <?php echo $_SESSION['username']; ?>! | </div>
<a id="register" href="http://www.kdogisthebest.webege.com/admin/" class="button">Dashboard</a> |
<a id="signin" href="#fallr-confirmlike" class="button">Logout</a>
<?php }else{ ?>
<div style="display: inline-block; font-size: 14px; padding-left: 20px;">Hello Guest!</div>
<a id="register" href="#fallr-register" class="button">Register</a> |
<a id="signin" href="#fallr-signin" class="button">Login</a>
<?php } ?>
</div>
데모 --->http://www.kdogisthebest.webege.com/index.php
사용자 이름 = demouser
비밀번호에
login.php
<?php
session_start();
require_once('connections/Main.php');
if($_SESSION['username']) {
echo '<div class="error_message">Attention! '.$_SESSION['username'].'. You are already logged in.</div>';
echo "<br />";
echo "Go <a target='top' href='index.php'>back</a> to the page you were viewing before this.</li>";
exit();
}
// Has an error message been passed to login.php?
$error = $_GET['e'];
if($error == 1) {
$error = '<div class="error_message">Attention! You must be logged in to view this page.</div>';
}
// Only process if the login form has been submitted.
if(isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if (empty($username) || empty($password)) {
$error = '<div class="error_message">Attention! Please enter your Username and Password.</div>';
} else {
mysql_select_db($database_Main);
// Add slashes to the username and md5() the password
$user = mysql_real_escape_string(addslashes($_POST['username']));
$pass = mysql_real_escape_string(md5($_POST['password']));
$sql = "SELECT * FROM users WHERE username = '$user' AND password= '$pass' OR email = '$user' AND password= '$pass' ";
$result = mysql_query($sql);
// Check that at least one row was returned
$rowCheck = mysql_num_rows($result);
if($rowCheck > 0) {
while($row = mysql_fetch_array($result)) {
// Start the session and register a variable
if(isset($_POST['remmemberme'])){
setcookie(kitbusername, $user, time()+(3600*24*30));
}
$_SESSION['username'] = $user;
//session_register('username');
echo '<script>parent.changeURL("index.php"); </script>';
}
} else {
// If nothing is returned by the query, unsuccessful login code goes here...
$error = '<div class="error_message">Attention! Incorrect username or password.</div>';
}
}
}
echo $error; ?>
header.php = demouser
기본 디버깅을 먼저 요구합니다. 'error_reporting (~ 0); ini_set ('display_errors', 1);'스크립트의 맨 처음에. 또한 [오류 로깅 사용] (http://www.cyberciti.biz/tips/php-howto-turn-on-error-log-file.html)을 읽고 오류 로그를 따르십시오. – hakre
나는 session_start()가 어떤 html 코드보다 먼저 호출되어야한다고 생각한다. – caRameL
html dont do anything을하기 전에 그것을 호출하십시오. – kezi