我最近一直在用php做實驗,我正在嘗試理解會話。 到目前爲止,我明白每個頁面需要一個session_start(),如果我需要登錄來查看某些頁面/攜帶信息,但我無法弄清楚如何在登錄頁面後保留用戶的信息。如何通過PHP登錄重定向進行會話?
這裏是我的login.php腳本:
<?php
session_start();
?>
<head>
<link rel="stylesheet" type="text/css" href="styles.css">
<link href='http://fonts.googleapis.com/css?family=Lato|Quattrocento+Sans|Oxygen|Hind|Raleway' rel='stylesheet' type='text/css'>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="career.js"></script>
</head>
<body onload="fadeUp()">
<form id="login" class="login" action="logCheck.php" method="POST">
<div id="titleArea"><img src="tampa-bay.png" class="t2"><div class="workspaceTitle">CPC <br><align ="left">WorkSpace</align></div></div>
<center>
<table class="logTable">
<tr><td colspan="2"><input type="text" class="field" value="username" onclick='javascript: this.value = ""' name="user"></td></tr>
<tr><td colspan="2"><input type="password" class="field" onclick='javascript: this.value = ""' value="password" name="pass"></td></tr>
<tr><td></td><td colspan="2"><input type="submit" name="login" value="Login"></td></tr>
<tr><td></td><td colspan="2">Don't have an account?<a href="register.php"> Register Here</a></td></tr>
<tr><td></td><td colspan="2">Forgot your username/password?<a href="register.php"> Click Here</a></td></tr>
</table>
</center>
</form>
</body>
這裏是相關的登錄驗證(logCheck.php)腳本
if(isset($_POST['login'])){
$username = mysqli_real_escape_string($con,$_POST['user']);
$pass = mysqli_real_escape_string($con,$_POST['pass']);
$sel_user = "select * from userdata where username='$username' AND password='$pass'";
$run_user = mysqli_query($con, $sel_user);
$check_user = mysqli_num_rows($run_user);
if($check_user>0){
$_SESSION['username']=$_POST['user'];
echo "<script>window.open('careerindex.php','_self')</script>";
}
else {
echo "<script>alert('Username or password is not correct, try again!')</script><script>window.open('login.php','_self')</script>";
}
}
?>
最後,我也有一個具有保持頭在需要登錄的所有頁面上。這裏是頭的會話:
<?php
session_start();
if (isset($_SESSION['username'])) {
?>
logged in HTML and code here
<?php
} else {
?>
Not logged in HTML and code here
<?php
}
?>
我試圖使用常規的session_start()在每一頁上,使用的用戶名(如$_SESSION['username']=$_POST['user'];
)會話變量。但我不明白我做錯了什麼。有什麼建議麼? (Ps,我試過谷歌搜索,查找答案在這裏和W3學校,但沒有任何方法建議似乎工作)
資源我試過了:http://www.formget.com/login-form-in-php/ http://phppot.com/php/php-login-script-with-session/ http ://stackoverflow.com/questions/16889995/simple-login-session-php http://www.homeandlearn.co.uk/php/php14p2.html 和http://stackoverflow.com/questions/10097887/ php-login-script – motoko96
你必須在logCheck.php中有'session_start()'來處理$ _SESSION變量 – Toumash