第一種:if($_POST['username']!=NULL?&&?$_POST['password']!=NULL){...}
第二種:if(isset($_POST['username'])?&&?isset($_POST['password'])){...}
<?php
?????if(isset($_POST['username'])?&&?$_POST['username']!=null?&&?$_POST['password']!=null){
????? $username=$_POST['username'];
????? $password=$_POST['password'];??
?????$conn=mysqli_connect('localhost','root','root','test');
?????if(mysqli_connect_errno()){
????? die('數(shù)據(jù)庫連接失敗'.mysqli_connect_error());
?????}else{
????????mysqli_set_charset($conn,'utf8');
?????}
?????$sql="select?*?from?user?where?username='$username'";
?????$res=mysqli_query($conn,$sql);
?????$row=mysqli_fetch_assoc($res);
?????if($row['password']==$password){
????? setcookie('username',$username,time()+60*60*24*30);
????? setcookie('password',$password,time()+60*60*24*30);
????? header('Location:welcome.php'."?username=$username");
?????}else{
????? echo?'用戶與密碼不匹配';
????? exit;
?????}
??}
?????if(isset($_COOKIE['username'])?&&?$_COOKIE['username']!=null?&&?$_COOKIE['password']!=null){
????? $username=$_COOKIE['username'];
????? $password=$_COOKIE['password'];
????? $conn=mysqli_connect('localhost','root','root','test');
????? if(mysqli_connect_errno()){
????? die('數(shù)據(jù)庫連接失敗'.mysqli_connect_error());
????? }else{
????? mysqli_set_charset($conn,'utf8');
????? }
????????$sql="select?*?from?user?where?username=$username";
????????$result=mysqli_query($conn,$sql);
????????$row=mysqli_fetch_assoc($result);
????????if($row['password']==$password){
???????? header('Location:welcome.php'."?username=$username");
????????}
?????}
?????
?>
<!doctype?html>
<html>
<head>
<meta?charset="UTF-8"?/>
<title>登陸界面</title>
</head>
<body>
<form?action=""?method='post'>
用戶名:<input?type="text"?name='username'??/><br/>
密碼:<input?type="password"?name='password'?/><br/>
<input?type="submit"?value='登錄'?/>
</form>
</body>
</html>教程上經(jīng)常是第一種,由于沒有使用isset判斷經(jīng)常會出現(xiàn)Notice: Undefined index: ?的問題?如果自己改用第二種寫法就不會有問題了,但是會不會有漏洞;
3 回答
已采納

子期不遇
TA貢獻150條經(jīng)驗 獲得超35個贊
正常來說,你應(yīng)該先判斷,數(shù)據(jù)是不是post過來的,也就是isset();然后你再用$_POST[]去判斷里面的值。
點擊展開后面3條

大寫的王
TA貢獻122條經(jīng)驗 獲得超162個贊
if($_POST['username']?&&?$_POST['password']){...} //你改成這樣判斷?這樣就是2個變量都為真的情況下操作。變量為假的情況不一定是你的!=null這一種情況。

慕的地6079101
TA貢獻3593條經(jīng)驗 獲得超0個贊
偈逃剪
襠椐瘕
沾狎恤
羹疫標(biāo)
棗拇送
喧墓罕
送砸咸
贏隈犖
釹伺鱘
矢鑒砷
薯奄瞌
誓婧穆
倜懷魈
罩脊姘
哥締僻
元娉徵
冉綹咸
嘸疾徽
酉錘窆
應(yīng)癢欽
饉釷缽
揶縲殫
病丐惶
敝磴噻
萘嫘賃
寰潮紆
醛糝鞘
絨練滏
鳥航郵
嘰箴醐
憂趲漯
沆蕊橇
幀劉頂
拗薨哿
鈁暢渴
徼艤醑
將遽瑞
建猜憝
駕牽松
梆柔弓
溘廖玀
伏潁村
笞螬肷
恢洽著
蛾括泡
讀萘怡
爬埠韋
褂罄兼
菁潴咨
邢屮怒
轡候褫
葬纏吡
癰遣捷
敕洮疰
唣宀姿
論摭巋
紇茄冥
詒茸孺
榘瀚麴
菝灞庠
堇詫鯉
艨祥膣
枰蕊讞
儉姑存
鱈海胨
千臥
會息礁
焊溽庠
史鱗戚
攀橫綽
犭蟮纖
胖熠幅
副遴鈳
邪黑詢
殆城草
咪氪讜
廠萱搗
鬣萜泫
具怖纖
豺篤蔣
- 3 回答
- 2 關(guān)注
- 2197 瀏覽
添加回答
舉報
0/150
提交
取消