国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php用戶登錄代碼實例

2024-05-04 23:06:20
字體:
來源:轉載
供稿:網友

實例一最基本的用戶登錄,跑到指定頁面這個不安全,如果用戶知道你這個地址就不需要登錄了,實例二利用了session也是較常用的在操作頁面加了session驗證,但是無法記住下次登錄,實例三就利用了session和cookie同時登錄并可以自動記錄下次自動登錄功能。

我們先來看個最簡單的實例,以下附簡單的login.htm內容,代碼如下:

  1. <html> 
  2. <body> 
  3. <form name="login" action="login.php" method=post> 
  4. 用戶名<input type=text name="name"> 
  5. <p>密碼<input type=password name="password"> 
  6. <p> 
  7. <input name="log" type=submit value="登錄"> 
  8. </form> 
  9. </body> 
  10. </html> 

login.php內容如下:

  1. <? 
  2. error_reporting(0); 
  3. $mysql_servername = "localhost"//主機地址 
  4. $mysql_username = "root"//數據庫用戶名 
  5. $mysql_password =""//數據庫密碼 
  6. $mysql_database ="peng"//數據庫 
  7. mysql_connect($mysql_servername , $mysql_username , $mysql_password); 
  8. mysql_select_db($mysql_database);  
  9. $name=$_POST['name']; 
  10. $passowrd=$_POST['password']; 
  11. if ($name && $passowrd){ 
  12.  $sql = "SELECT * FROM liuyanban WHERE name = '$name' and password='$passowrd'"
  13.  $res = mysql_query($sql); 
  14.  $rows=mysql_num_rows($res); 
  15.   if($rows){ 
  16.    header("refresh:0;url=a.htm");//跳轉頁面,注意路徑 
  17.    exit
  18.  } 
  19.  echo "<script language=javascript>alert('用戶名密碼錯誤');history.back();</script>"
  20. }else { 
  21.  echo "<script language=javascript>alert('用戶名密碼不能為空');history.back();</script>"
  22. ?> 

下面還有一個我剛學php 是寫的,代碼如下:

  1. <input name="myname" type="text" id="myname" style="border:solid 0px;" /> 
  2. <input name="mypass" type="password" id="mypass" style="border:solid 0px;" /> 

php代碼如下:

  1. <? 
  2. session_start();//這個一定要申明嘍,給個小提示:在session之前不能有任何輸出哦,在php.5以下的版本會有問題. 
  3.  
  4.  $myname =get_value('myname',post); 
  5.  $mypass =get_value('mypass',post); 
  6.  if(!preg_match("/^w+$/",$myname) || strlen($myname)<3 || strlen($myname)>15 ){ 
  7.   alert('輸入的用戶名信息有誤!用戶名必須由數字下劃線英語字母組成,長度為3-15個字符!',''); 
  8.  } 
  9.  if(!preg_match("/^w+$/",$mypass) || strlen($mypass)<6 || strlen($mypass)>15 ){ 
  10.   alert('輸和的用戶密碼!密碼必須由數字下劃線英語字母組成,長度為6-15個字符!',''); 
  11.  } 
  12.  $sql ="select * from tbn where admin_name='$myname' and admin_pwd='".md5($mypass)."'"
  13.  $result =mysql_query($sql); 
  14.  if(mysql_num_rows($result) ){ 
  15.   $my =mysql_fetch_array($result); 
  16.   $_SESSION['uid']=$myname
  17.   //$_SESSION['auth']=return_auth($my['group_id']);  //這里是因為用到用戶組取得用戶組的權限 
  18.   header("location:main.php"); 
  19.  }else
  20.   alert('提示:你輸入的用戶名與密碼不一致!',''); 
  21.  } 
  22. ?> 

上面的實例我都只保存信息到了session下面來看個同時應用session和cookie來保存用戶登錄信息

1,數據庫連接設備頁面:connectvars.php,代碼如下:

  1. <?php 
  2. //數據庫的地位 
  3. define(""DB_HOST"", ""127.0.0.1""); 
  4. //用戶名 
  5. define(""DB_USER"", ""root""); 
  6. //口令 
  7. define(""DB_PASSWORD"", ""19900101""); 
  8. //數據庫名 
  9. define(""DB_NAME"",""test"") ; 
  10. ?> 

2、登錄頁面:logIn.php,代碼如下:

  1. <?php 
  2. //插入連接數據庫的相干信息 
  3. require_once ""connectvars.php""
  4. //開啟一個會話 
  5. session_start(); 
  6. $error_msg = ""
  7. //若是用戶未登錄,即未設置$_SESSION[""user_id""]時,履行以下代碼 
  8. if(!isset($_SESSION[""user_id""])){ 
  9.     if(isset($_POST[""submit""])){//用戶提交登錄表單時履行如下代碼 
  10.         $dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME); 
  11.         $user_username = mysqli_real_escape_string($dbc,trim($_POST[""username""])); 
  12.         $user_password = mysqli_real_escape_string($dbc,trim($_POST[""password""])); 
  13.         if(!emptyempty($user_username)&&!emptyempty($user_password)){ 
  14.             //MySql中的SHA()函數用于對字符串進行單向加密 
  15.             $query = "SELECT user_id, username FROM mismatch_user WHERE username = ""$user_username"" AND "."password = SHA(""$user_password"")"
  16.             $data = mysqli_query($dbc$query); 
  17.             //用用戶名和暗碼進行查詢,若查到的記錄正好為一條,則設置SESSION和COOKIE,同時進行頁面重定向 
  18.             if(mysqli_num_rows($data)==1){ 
  19.                 $row = mysqli_fetch_array($data); 
  20.                 $_SESSION[""user_id""]=$row[""user_id""]; 
  21.                 $_SESSION[""username""]=$row[""username""]; 
  22.                 setcookie(""user_id"",$row[""user_id""],time()+(60*60*24*30)); 
  23.                 setcookie(""username"",$row[""username""],time()+(60*60*24*30)); 
  24.                 $home_url = ""loged.php""
  25.                 header(""Location: "".$home_url); 
  26.             }else{//若查到的記錄不合錯誤,則設置錯誤信息 
  27.                 $error_msg = ""Sorry, you must enter a valid username and password to log in.""
  28.             } 
  29.         }else
  30.             $error_msg = ""Sorry, you must enter a valid username and password to log in.""
  31.         } 
  32.     } 
  33. }else{//若是用戶已經登錄,則直接跳轉到已經登錄頁面 
  34.     $home_url = ""loged.php""
  35.     header(""Location: "".$home_url); 
  36. ?> 
  37. <html> 
  38.     <head> 
  39.         <title>Mismatch - Log In</title> 
  40.         <link rel="stylesheet" type="text/css" href="style.css" /> 
  41.     </head> 
  42.     <body> 
  43.         <h3>Msimatch - Log In</h3> 
  44.         <!--經由過程$_SESSION[""user_id""]進行斷定,若是用戶未登錄,則顯示登錄表單,讓用戶輸入用戶名和暗碼--> 
  45.         <?php 
  46.         if(!isset($_SESSION[""user_id""])){ 
  47.             echo ""<p class="error">"".$error_msg.""</p>""
  48.         ?> 
  49.         <!-- $_SERVER[""PHP_SELF""]代表用戶提交表單時,調用自身php文件 --> 
  50.         <form method = "post" action="<?php echo $_SERVER[""PHP_SELF""];?>"
  51.             <fieldset> 
  52.                 <legend>Log In</legend> 
  53.                 <label for="username">Username:</label> 
  54.                 <input type="text" id="username" name="username" 
  55.                 value="<?php if(!empty($user_username)) echo $user_username; ?>" /> 
  56.                 <br/> 
  57.                 <label for="password">Password:</label> 
  58.                 <input type="password" id="password" name="password"/> 
  59.             </fieldset> 
  60.             <input type="submit" value="Log In" name="submit"/> 
  61.         </form> 
  62.         <?php 
  63.         } 
  64.         ?> 
  65.     </body> 
  66. </html> 

3、登入頁面,loged.php,代碼如下:

  1. <?php 
  2. //應用會話內存儲的變量值之前必須先開啟會話 
  3. session_start(); 
  4. //若是會話沒有被設置,查看是否設置了cookie 
  5. if(!isset($_SESSION[""user_id""])){ 
  6.     if(isset($_COOKIE[""user_id""])&&isset($_COOKIE[""username""])){ 
  7.         //用cookie給session賦值 
  8.         $_SESSION[""user_id""]=$_COOKIE[""user_id""]; 
  9.         $_SESSION[""username""]=$_COOKIE[""username""]; 
  10.     } 
  11. //應用一個會話變量搜檢登錄狀況 
  12. if(isset($_SESSION[""username""])){ 
  13.     echo ""You are Logged as "".$_SESSION[""username""].""<br/>""
  14.     echo ""<a href="logOut.php"> Log Out("".$_SESSION[""username""]."")</a>""
  15. /**在已登錄頁面中,可以哄騙用戶的session如$_SESSION[""username""]、 
  16.  * $_SESSION[""user_id""]對數據庫進行查詢,可以做很多多少很多多少工作*/ 
  17. ?> 

4、刊出session與cookie頁面,logOut.php(刊出后重定向到lonIn.php),代碼如下:

  1. <?php 
  2. /**同時刊出session和cookie的頁面*/ 
  3. //即使是刊出時,也必須起首開端會話才干接見會話變量 
  4. session_start(); 
  5. //應用一個會話變量搜檢登錄狀況 
  6. if(isset($_SESSION[""user_id""])){ 
  7.     //要清除會話變量,將$_SESSION超等全局變量設置為一個空數組 
  8.     $_SESSION = array(); 
  9.     //若是存在一個會話cookie,經由過程將到期時候設置為之前1個小時從而將其刪除 
  10.     if(isset($_COOKIE[session_name()])){ 
  11.         setcookie(session_name(),"""",time()-3600); 
  12.     } 
  13.     //應用內置session_destroy()函數調用撤銷會話 
  14.     session_destroy(); 
  15. //同時將各個cookie的到期時候設為疇昔的某個時候,使它們由體系刪除,時候以秒為單位 
  16. setcookie(""user_id"","""",time()-3600); 
  17. setcookie(""username"","""",time()-3600); 
  18. //location首部使瀏覽看重定向到另一個頁面 
  19. $home_url = ""logIn.php""
  20. header(""Location:"".$home_url); 
  21. ?> 

用戶注冊登錄涉及到用戶信息與數據庫的交互,因此要特別注意用戶提交的信息不能為非法信息,本例中注冊部分已經使用正則表達式做了限制,對登錄部分只簡單使用了 htmlspecialchars() 處理,實際應用時可更嚴格一些。 

本教程只是簡單演示用戶注冊與登錄的過程,其代碼僅供學習參考,不可直接用于項目生產。 

對于用戶登錄成功后采用 session 來管理,也可以采用 cookie 來管理,尤其對于有時限要求的情況。 

為了提高用戶體驗,用戶注冊部分可以結合 AJAX 來檢測用戶輸入的信息而不必等點擊提交后再檢測。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 弥渡县| 漳平市| 太谷县| 米林县| 临潭县| 苍南县| 沂源县| 鲁甸县| 博客| 铁岭市| 睢宁县| 牡丹江市| 孝昌县| 江永县| 泗阳县| 金阳县| 吉木萨尔县| 嘉义市| 尼勒克县| 临猗县| 宁远县| 房产| 濮阳县| 台湾省| 延安市| 深圳市| 康马县| 宜良县| 宁武县| 马关县| 遂川县| 林芝县| 新郑市| 南岸区| 广平县| 乌恰县| 洪洞县| 淅川县| 绵竹市| 黄山市| 当雄县|