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