第一次學(xué)PHP就是做這個驗證..
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、鶴城ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的鶴城網(wǎng)站制作公司
html做個表單,
當表單onsubmit=return?check();調(diào)用自寫js來判斷用戶名和密碼是否為空,
如果是空就alert不能為空,然后return?false;相反則return?true;
而接收的PHP也要驗證是否為空,如果嚴謹點還要對提交的數(shù)據(jù)進行過濾,防止sql注入。
然后php再根據(jù)提交的數(shù)據(jù)搜MYSQL,如果用戶名和密碼都相同時,echo?登錄成功,相反則登錄失敗.
html
script
function?check(obj){
with(obj){
if((user.value+"").length?=?0){
alert("用戶名不能為空");
return?false;
}else?if((pwd.value+"").length?=?0){
alert("用戶名不能為空");
return?false;
}else{
return?true;
}
}
}
/script
body
form?action="check.php"?method="post"?onsubmit="return?check(this)"
input?type="text"?name="user"?value=""
input?type="password"?name="pwd"?value=""
input?type="submit"?name="submit"?value="登錄"
input?type="cancel"?name="cancel"?value="取消"
/form
/body
/html
?php
$conn?=?mysql_connect(?"數(shù)據(jù)庫地址",?"數(shù)據(jù)庫用戶名",?"密碼"?);
mysql_query("set?names?utf8");
mysql_select_db(?"數(shù)據(jù)庫名"?);
function?inject_check($sql_str){?????
return?preg_match("/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|%|eval|=|and|'|;|exec|count/i",?$sql_str);????//?進行過濾
}
if(!empty($_POST)){
foreach($_POST?as?$key?=?$value){
if(inject_check($value)){
exit?('scriptalert("地址欄輸入發(fā)現(xiàn)有非法字符,請重新輸入!");history.go(-1);/script');
die?();
}
}
}
$res?=?mysql_query("SELECT?count(*)?as?m?from?`表名`?where?用戶名='${_POST['user']}'?AND?密碼='${_POST['pwd']}'");
$row?=?mysql_fetch_object($res);
if($row-m?0){
echo?"登陸成功";
}else{
echo?"用戶名或密碼錯誤";
}
exit;
?
首先得到提交的數(shù)據(jù)
鏈接數(shù)據(jù)庫,查詢數(shù)據(jù)庫,查詢username 和pwd
提交的username 和 pwd? 跟數(shù)據(jù)庫查詢的username 和pwd做對比,
都相等那就是登陸成功
?php
mysql_connect('localhost','root','123');
mysql_select_db('lx');
mysql_query("SET?CHARACTER?SET?utf8");
mysql_query("SET?NAMES?utf8");
//數(shù)據(jù)庫lx?表user??字段id?username??pwd
//用md5加密,可以自己試試????
if(isset($_POST['user'])$_POST['tijiao']?==?'success'){
$query?=?mysql_query("select?pwd?from?user?where?username?=?'".$_POST['user']."'");
$num?=?mysql_num_rows($query);
if($num??0?){
while($info?=?mysql_fetch_array($query)){
if($info['pwd']?==?md5($_POST['pwd'])){
echo?'登陸成功';
}else{
echo?'登陸失敗';????
}
}
}else{
echo?'登陸失敗';
}
}
?
form?action=""?method="get"/
table?border="0"?cellspacing="0"?cellpadding="0"?
tr
td?class="fieldKey"?width="30%"用戶名:/td
td?class="fieldValue"?width="100%"input?type="text"?name="user"?//td
/tr
trtd?height="10"/td/tr
tr
td?class="fieldKey"密碼:/td
td?class="fieldValue"input?type="password"?name="pwd"?//td
/tr
/table
input?type="hidden"?name="tijiao"?value="success"?/
input?type="submit"?value="登陸"/
/form
你可以做一個簡單的例如你只有用戶名和密碼即可那么你先在數(shù)據(jù)庫(以mysql為例)中建表例如叫做user 字段為 id name pass分別是編號、用戶名、密碼長度分別是int(8) a_t(自動編號) 主鍵,varchar(50) ,varchar(50) 你可以添加一個測試數(shù)據(jù) 例如 1,admin,admin//說明密碼這里不說加密的問題,用明文實現(xiàn) 登錄頁面的代碼: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();//這個可以維持登錄狀態(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('您暫時不能瀏覽該頁面,請先登錄');location.href='login.php';/script";
} }login_state($name,$password);?
希望可以幫到您,如果還有問題可以聯(lián)系2458285853
真刁鉆,
不會PHP的就別在這里瞎蹭!
快回去買一本php的書吧,php不難的,網(wǎng)上連視頻教程都有。
我最多只會告訴你基本思路,代碼我是決不會給懶到極點的人的!
特別準備:臨時數(shù)據(jù)表;
從用戶獲取賬號和密碼 - 用查找密碼md5 - 若不吻合,跳出錯誤頁面,否則掠過 - 把密碼用md5加密 - 與數(shù)據(jù)庫md5碼對比 - 若不吻合,跳出警告頁面,否則掠過 - 在臨時數(shù)據(jù)表中記錄用戶登錄時間 - 引入成功目標頁面
ps:
你問我為什么要用臨時數(shù)據(jù)表?
那用作超時標記,也就是在下次訪問時,若用戶超時就把該用戶踢出去...
這樣的好處就是更安全,不用怕Cookies被黑,
但是會消耗一定的服務(wù)器資源......
ps*2:
你這個人真的太刁鉆了,給人的感覺就是:裝蒜+不要臉。
更可惡的就是你太愛擺架子了,
別以為你那個破200分就可以糊弄我們PHP工程師,
簡直就是有辱我們智商!!
你現(xiàn)在知道為什么還得不到滿意的答案吧,
因為你已經(jīng)被真正的PHP工程師鄙視了?。?!
我就是那種抱打不平(爆打不平)的人,看你不順眼!