PHP用户验证和标签推荐的简单使用
php  /  管理员 发布于 7年前   142
本文给大家讲解一些最简单的验证知识。大家可以先看下效果图,如果大家感觉还不错,请参考实现代码。 效果图 bookmark_fns.php data_valid_fns.php db_fns.php user_auth_fns.php url_fns.php output_fns.php Not a member? $value) {if ((!isset($key)) || ($value == '')) {return false;} } return true;}// Valid emailfunction valid_email($address) {if (ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $address)) {return true;}else {return false;}}?>
query("select * from user where username = '".$username."'");if (!$results) {throw new Exception("Could not execute query", 1);}if ($results -> num_rows > 0) {throw new Exception("That username is taken - go back and choose another one.", 1);} $results = $conn -> query("insert into user values ('".$username."', sha1('".$email."'), '".$password."')");if (!$results) {throw new Exception('Could not register you in database - please try again later.');}return true;}// Log in function login($username, $password) {$conn = db_connect();$results = $conn -> query("select * from user where username = '".$username."' and passwd = sha1('".$password."')");if (!$results) {throw new Exception('Could not log you in.');}if ($results -> num_rows > 0) {return true;}else {throw new Exception('Could not log you in.');}}// Check valid user function check_valid_user() {if (isset($_SESSION['valid_user'])) {echo "Logged in as ".$_SESSION['valid_user'].".
";}else {do_html_header('Problem:');echo "You are not logged in.
";do_html_url('login.php', 'Login');do_html_foot();exit;}}// change password function change_password($username, $old_password, $new_password) {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$rand_location = rand(0, $size);fseek($fp, $rand_location);// get the next whole word of the right length in the filewhile ((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 fgetsreturn $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$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 userset 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 userwhere 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.');}}}?> query("select bm_URL from bookmark where username = '" . $username . "'");if (!$results) {return false;}$url_array = array();for ($i = 1;$row = $results -> fetch_row();++$i) {$url_array[$i] = $row[0];}return $url_array;}// Add url to dbfunction add_bm($new_url) {echo "Attempting to add ".htmlspecialchars($new_url)."
";$valid_user = $_SESSION['valid_user'];$conn = db_connect();$results = $conn -> query(" select * from bookmark where username = '".$valid_user."' and bm_URL = '".$new_url."'");if ($results && ($results -> num_rows > 0)) {throw new Exception("Bookmark already exists.", 1); }$insert_result = $conn -> query("insert into bookmark values ('".$valid_user."', '".addslashes($new_url)."')");if (!$insert_result) {throw new Exception("Bookmark could not be inserted.", 1); }return true;}// Delete url function delete_bm($user, $url) {$conn = db_connect();$results = $conn -> query(" delete from bookmark where username = '".$user."' and bm_URL = '".$url."'");if (!$results) {throw new Exception("Bookmark could not be deleted.", 1); }return true; }function recommend_urls($valid_user, $popularity = 1) {$conn = db_connect();// $query = "select bm_URL// from bookmark// where username in// (select distinct(b2.username)// from bookmark b1, bookmark b2// where b1.username='".$valid_user."'// and b1.username != b2.username// and b1.bm_URL = b2.bm_URL)// and bm_URL not in// (select bm_URL// from bookmark// where username='".$valid_user."')// group by bm_url// having count(bm_url)>".$popularity;$query = "select bm_URLfrom bookmarkwhere username in(select distinct(b2.username)from bookmark b1, bookmark b2where b1.username='".$valid_user."'and b1.username != b2.usernameand b1.bm_URL = b2.bm_URL)and bm_URL not in(select bm_URLfrom bookmarkwhere username='".$valid_user."')group by bm_urlhaving count(bm_url)>".$popularity;if (!($result = $conn->query($query))) {throw new Exception('Could not find any bookmarks to recommend.');}if ($result->num_rows==0) {throw new Exception('Could not find any bookmarks to recommend.');}$urls = array();// build an array of the relevant urlsfor ($count=0; $row = $result->fetch_object(); $count++) {$urls[$count] = $row->bm_URL;}return $urls;}?>PHPbookmark
Home | Add BM | Delete BM | ";}?>Change password
Recommend URLs to me | Logout
recommend.php
getMessage();}display_user_menu();do_html_footer();?>
member.php
以上所述是小编给大家介绍的PHP用户验证和标签推荐的简单使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号