⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 user_auth_fns.php

📁 php源码 php源码参考
💻 PHP
字号:
<?phprequire_once('db_fns.php');function register($username, $email, $password)// register new person with db// return true or error message{  // connect to db  $conn = db_connect();    // check if username is unique   $result = $conn->query("select * from user where username='$username'");   if (!$result)    throw new Exception('Could not execute query');  if ($result->num_rows>0)     throw new Exception('That username is taken - go back and choose another one.');  // if ok, put in db  $result = $conn->query("insert into user values                          ('$username', sha1('$password'), '$email')");  if (!$result)    throw new Exception('Could not register you in database - please try again later.');  return true;} function login($username, $password)// check username and password with db// if yes, return true// else throw exception{  // connect to db  $conn = db_connect();  // check if username is unique  $result = $conn->query("select * from user                          where username='$username'                         and passwd = sha1('$password')");  if (!$result)     throw new Exception('Could not log you in.');    if ($result->num_rows>0)     return true;  else      throw new Exception('Could not log you in.');}function check_valid_user()// see if somebody is logged in and notify them if not{  if (isset($_SESSION['valid_user']))  {      echo 'Logged in as '.$_SESSION['valid_user'].'.';      echo '<br />';  }  else  {     // they are not logged in      do_html_heading('Problem:');     echo 'You are not logged in.<br />';     do_html_url('login.php', 'Login');     do_html_footer();     exit;  }  }function change_password($username, $old_password, $new_password)// change password for username/old_password to new_password// return true or false{  // if the old password is right   // change their password to new_password and return true  // else throw an exception  login($username, $old_password);  $conn = db_connect();  $result = $conn->query( "update user                            set passwd = sha1('$new_password')                            where username = '$username'");  if (!$result)    throw new Exception('Password could not be changed.');  else    return true;  // changed successfully}function get_random_word($min_length, $max_length)// grab a random word from dictionary between the two lengths// and return it{   // generate a random word  $word = '';  // remember to change this path to suit your system  $dictionary = '/usr/dict/words';  // the ispell dictionary  $fp = @fopen($dictionary, 'r');  if(!$fp)    return false;   $size = filesize($dictionary);  // go to a random location in dictionary  srand ((double) microtime() * 1000000);  $rand_location = rand(0, $size);  fseek($fp, $rand_location);  // get the next whole word of the right length in the file  while (strlen($word)< $min_length || strlen($word)>$max_length || strstr($word, "'"))  {       if (feof($fp))           fseek($fp, 0);        // if at end, go to start     $word = fgets($fp, 80);  // skip first word as it could be partial     $word = fgets($fp, 80);  // the potential password  };  $word=trim($word); // trim the trailing \n from fgets  return $word;  }function reset_password($username)// set password for username to a random value// return the new password or false on failure{   // get a random dictionary word b/w 6 and 13 chars in length  $new_password = get_random_word(6, 13);    if($new_password==false)    throw new Exception('Could not generate new password.');  // add a number  between 0 and 999 to it  // to make it a slightly better password  srand ((double) microtime() * 1000000);  $rand_number = rand(0, 999);   $new_password .= $rand_number;   // set user's password to this in database or return false  $conn = db_connect();  $result = $conn->query( "update user                          set passwd = sha1('$new_password')                          where username = '$username'");  if (!$result)    throw new Exception('Could not change password.');  // not changed  else    return $new_password;  // changed successfully  }function notify_password($username, $password)// notify the user that their password has been changed{    $conn = db_connect();    $result = $conn->query("select email from user                            where username='$username'");    if (!$result)    {      throw new Exception('Could not find email address.');      }    else if ($result->num_rows==0)    {      throw new Exception('Could not find email address.');   // username not in db    }    else    {      $row = $result->fetch_object();      $email = $row->email;      $from = "From: support@phpbookmark \r\n";      $mesg = "Your PHPBookmark password has been changed to $password \r\n"              ."Please change it next time you log in. \r\n";                  if (mail($email, 'PHPBookmark login information', $mesg, $from))        return true;            else        throw new Exception('Could not send email.');    }} ?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -