>백엔드 개발 >PHP 튜토리얼 >PHP 사용자 로그인 감지를 위한 코드 예제

PHP 사용자 로그인 감지를 위한 코드 예제

WBOY
WBOY원래의
2016-07-25 08:56:491143검색
本文分享一个简单的php用户登录代码,通过将用户名与密码与存储在数组中的值进行比对,检测是否有效。有需要的朋友可以作个参考。

首先,将用户名与密码存储在数组中,当有用户登录时,从数组中取值参与检测,以判断用户名与密码是否有效。

登录与检测在同一个文件LoginFormAction中,代码:

<HTML>
<BODY>
<FORM METHOD="POST" ACTION="LoginFormAction.php">
<H2>用户登录</H2>
<BR><BR>
用户名:
<BR><INPUT TYPE="TEXT" NAME="username" SIZE="16">
<BR><BR>
密 码:
<BR><INPUT TYPE="PASSWORD" NAME="password" SIZE="16">
<BR><BR> <BR><BR>
<INPUT TYPE="SUBMIT" VALUE="Submit">
</FORM>
</BODY>
</HTML>
<!-- LoginFormAction.php
<?php
$passwords = array("name1"   =>"pass1", 
                   "name2"   =>"pass2");
                   
if ($password == $passwords[$username]){
    setcookie("username", $username, time()+1200);
    echo "<H2>登录成功.</H2>";
}else{
    setcookie("username", "", time()-3600);
    echo "<H2>禁止登录:无效的用户名或密码</H2>";
}
?>
-->

2,下面这段代码,通过一个自定义的php函数,实现用户登录检测。 可以检测用户名与密码长度、用户名与密码是否正确。

代码:

<?php
//验证用户登录
//by bbs.it-home.org
function validate_user ($username, $password){
    return true;
}
   
// create empty array to store error messages
$errors = array();
$p =& $_POST;
   
if (count ($p) > 0){
     if (!isset ($p['username']) || (trim ($p['username']) == '')){
          $errors[] = 'You must enter a username.';
     }elseif{ ((strlen ($p['username']) < 8) || (ereg ('[^a-zA-Z0-9]', $p['username']))){
          $errors[] = '用户名无效,请输入至少8位的用户名,且只能包含字母与数字的组合。';
     }
     
     if (!isset ($p['password']) || (trim ($p['password']) == '')){
          $errors[] = 'You must enter a password.';
     }elseif ((strlen ($p['password']) < 8) || (ereg ('[^[:alnum:][:punct:][:space:]]', $p['password']))){
          $errors[] = '密码无效,请输入至少8位的密码,且只能包含字母、数字、标点与空格的组合。';
     }
     
     if (count ($errors) == 0) {
          $r = validate_user ($p['username'], $p['password']);
   
          if ($r == false){
               $errors[] = '登录失败,用户名与密码错误。';
          } else {
               print ('<html><head><title>登录成功</title></head>
                      <body><h1>祝贺你</h1><p>成功登录!</p>
                      </body></html>');
               exit;
          }
     }
}
?>
<html>
<head><title>用户登录</title></head>
<body>
<h1>用户登录</h1>
<?php
     if (count ($errors) > 0) {
          $n = count ($errors);
          for ($i = 0; $i < $n; $i++){
               print '<br /><font color="red">' . $errors[$i] . '</font>';
          }     
     }
?>
<form action="<?php print ($PHP_SELF); ?>" method="POST">
     <table>
     <tr><td>Username:</td>
     <td><input type="text" name="username" value="<?php if (isset ($p['username'])) print $p['username']; ?>" /></td>
     </tr>
     <tr><td>Password:</td>
     <td><input type="text" name="password" value="<?php if (isset ($p['password'])) print $p['password']; ?>" /></td>
     </tr>
     <tr><td colspan="2"><input type="submit" name="submit"></td></tr>
     </table>
     <input type="hidden" name="__process_form__" value="1" />
</form>
</body>
</html>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.