兩個都有問題才對,你的SQL語句有錯,假設$_POST['username']='user';
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、虛擬空間、營銷軟件、網站建設、荔城網站維護、網站推廣。
$_POST['password']='pass';你得到的語句是SELECT username FROM DB_TABLE WHERE name= user and password= pass
而正確的語句應該是SELECT username FROM DB_TABLE WHERE name= 'user' and password= 'pass'(掉了幾個引號所以報錯)
SESSION的變量是存于服務端的,cookie與SESSION相關聯,SESSION需要從COOKIE傳來的會話標識,不同用戶的數據就存于各自的session變量中。
在頁面未輸出前:
@session_start();
登錄后從庫中獲取到信息,存入SESSION各變量中,然后在任何一個頁面取得此變量。
$_SESSION["yourname"]=mysql_result($res,0,"name");
到另一個頁取得此變量,如果沒有取得合法數據,則沒有登錄
$yourname=$_SESSION["yourname"];
注意SESSION是個全局變量,所以不同頁面可以調用。
當用戶關閉了瀏覽器重新登錄時,都會產生一個新的會話標識。如果沒有關閉瀏覽器,無論打開多個頁面,始終都是同一個會話標識。
在服務器端取得用戶數據時,服務器首先會比對這個會話識標是否存在,存在才會取得原先保存的數據,否則就取不到。
這個道理就如同超市寄存件一樣
form action="" method="post"
input type="name" name="name"
input type="pass" name="pass"input type='submit' value='提交'/form
?php
$user='安林網絡';
$password='安林網絡話題社';
if($_POST['name']==''||$_POST['pass']==''){echo'用戶名不能為空';}else{$r=1;}
if($_POST['name']!=$user||$_POST['pass']!=$password){echo'用戶名或密碼錯誤';}else{$r.=1;}
if($r==11){echo'登錄成功';}?
?
你可以做一個簡單的例如你只有用戶名和密碼即可那么你先在數據庫(以mysql為例)中建表例如叫做user 字段為 id name pass分別是編號、用戶名、密碼長度分別是int(8) a_t(自動編號) 主鍵,varchar(50) ,varchar(50) 你可以添加一個測試數據 例如 1,admin,admin//說明密碼這里不說加密的問題,用明文實現 登錄頁面的代碼:login.phphtmlheadtitle用戶登錄/title/headbodyform action="checklogin.php" name="loginform" method="post"用戶名:input name="name" type="text"br密 碼:input name="password" type="password"brinput value="登錄" type="submit"br/form/body/html checklogin.php代碼(檢測登錄): $name=$_POST[name];$pass=$_POST[password];session_start();//這個可以維持登錄狀態,可以參照session的使用
//登錄檢查函數 function login_state($uid,$user_shell){ $sql="SELECT * FROM `user` WHERE `name`='$name'";
$query=@mysql_query($sql) or die(mysql_error());
$us=is_array($row=@mysql_fetch_array($query));
$user_shell=$us ? $user_shell==$row[password]:FALSE;
if($user_shell){ echo "scriptalert('登錄成功');/script";
return $row;
}else{
echo "scriptalert('您暫時不能瀏覽該頁面,請先登錄');location.href='login.php';/script";
} }login_state($name,$password);?
希望可以幫到您,如果還有問題可以聯系2458285853
能把表單也截取出來就更好了。只要表單的提交地址正確,就是你現在截圖的這個頁面地址,然后method是post,兩個input的name分別是username和password就行了
創建conn.php,連接數據庫。
$dns = 'mysql:host=127.0.0.1;dbname=test';
$username = 'root';
$password = 'root';
// 1.連接數據庫,創建PDO對象
$pdo = new PDO($dns,$username,$password);
創建login.html,登陸頁面。
用戶名
密 碼
創建login.php,驗證賬號密碼。
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"])){
exit("錯誤執行");
}//檢測是否有submit操作
include('conn.php');//鏈接數據庫
$name = $_POST['name'];//post獲得用戶名表單值
$pwd = sha1($_POST['password']);//post獲得用戶密碼單值
if ($name $pwd){//如果用戶名和密碼都不為空
$sql = "select * from user where username = '$name' and password='$pwd'";//檢測數據庫是否有對應的username和password的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
if($stmt-fetch(PDO::FETCH_BOUND)){//0 false 1 true
header("refresh:0;url=welcome.html");//如果成功跳轉至welcome.html頁面
exit;
}else{
echo "用戶名或密碼錯誤";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";//如果錯誤使用js 1秒后跳轉到登錄頁面重試;
}
}else{//如果用戶名或密碼有空
echo "表單填寫不完整";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";
//如果錯誤使用js 1秒后跳轉到登錄頁面重試;
}
$pdo = null;
創建signup.html,注冊頁面
用戶名:
密 碼:
創建signup.php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST['submit'])){
exit("錯誤執行");
}//判斷是否有submit操作
$name=$_POST['name'];//post獲取表單里的name
$pwd = sha1($_POST['password']);//post獲取表單里的password
include('conn.php');//鏈接數據庫
$sql="insert into user(id,username,password) values (null,'$name','$pwd')";//向數據庫插入表單傳來的值的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
$stmt-fetch(PDO::FETCH_BOUND);
if (!$stmt){
die('Error: ' . $stmt-getMessage());//如果sql執行失敗輸出錯誤
}else{
echo "注冊成功";//成功輸出注冊成功
}
$pdo = null;//關閉數據庫
名稱欄目:php用戶登錄界面數據庫,php實現用戶登錄
瀏覽路徑:http://m.kartarina.com/article34/hdopse.html
成都網站建設公司_創新互聯,為您提供Google、網站建設、全網營銷推廣、網站設計公司、搜索引擎優化、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯