PHP在线书签系统分享

前端之家收集整理的这篇文章主要介绍了PHP在线书签系统分享前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文为大家分享PHP在线书签系统,感兴趣的小伙伴们可以参考一下

1、需求分析

首先,需要识别每个用户。应该有验证机制。 其次,需要保存单个用户的书签。用户应该能够添加删除书签。 再次,需要根据对他们的了解,向用户建议他们可能感兴趣的站点

2、解决方

2.1 系统流程图

2.2 PHPbookmark中的文件列表

3、实现数据库

sql;"> create database bookmarks; use bookmarks;

create table user (
username varchar(16) primary key,passwd char(40) not null,email varchar(100) not null
);

create table bookmark (
username varchar(16) not null,bm_URL varchar(255) not null,index (username),index (bm_URL)
);

grant select,insert,update,delete
on bookmarks.*
to bm_user@localhost identified by 'password';

4、实现基本的网站

4.1 login.PHP

PHP;"> /**

  • 包含系统登录表单的页面
    */
    //require_once语句和require语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含。
    require_once('bookmark_fns.php'); //应用程序的包含文件集合

do_html_header(''); //HTML标题

display_site_info();//HTML站点信息
display_login_form();//HTML登录信息

do_html_footer(); //HTML页脚
?>

4.2 bookmark_fns.PHP

PHP;"> /**

  • 应用程序的包含文件集合
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('data_valid_fns.php'); //确认用户输入数据有效的函数
    require_once('db_fns.php'); // 连接数据库的函数
    require_once('user_auth_fns.php'); //用户身份验证的函数
    require_once('output_fns.php'); //以HTML形式格式化输出的函数
    require_once('url_fns.php'); //增加和删除书签的函数
    ?>

5、实现用户身份验证

5.1 register_form.PHP

PHP;">

/**

  • 系统中用户注册表单
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.php');
    do_html_header('User Registration'); //HTML标题

display_registeration_form(); //输出注册表单

do_html_footer(); //HTML页脚
?>

5.2 register_new.PHP

PHP;"> PHP

/**

  • 处理新注册信息的脚本
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.PHP');

//创建变量
$email = $_POST['email'];
$username = $_POST['username'];
$passwd = $_POST['passwd'];
$passwd2 = $_POST['passwd2'];

//开启会话
session_start();

try
{
//检查表单是否填写满
if(!filled_out($_POST))
{
throw new exception('You have not filled the form out correctly - please go back and try again.');
}

//检查<a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a>地址是否有效 
if(!valid_email($email)) 
{ 
  throw new exception('That is not a vald email address. Please go back try again.'); 
} 

//检查两次输入密码是否相同 
if($passwd != $passwd2) 
{ 
  throw new exception('The passwords you entered do not match - please go back try again.'); 
} 

//检查密码长度是否合格 
if((strlen($passwd) < 6) || (strlen($passwd) > 16)) 
{ 
  throw new exception('Your password must be between 6 and 16 characters Please go back and try again.'); 
} 

//尝试<a href="https://www.jb51.cc/tag/zhuce/" target="_blank" class="keywords">注册</a> 
register($username,$email,$passwd); 

//<a href="https://www.jb51.cc/tag/zhuce/" target="_blank" class="keywords">注册</a>会话变量 
$_SESSION['valid_user'] = $username; 

//提供成员<a href="https://www.jb51.cc/tag/yemian/" target="_blank" class="keywords">页面</a><a href="https://www.jb51.cc/tag/lianjie/" target="_blank" class="keywords">链接</a> 
do_html_header('Registration successful'); //HTML<a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a> 
echo 'Your registration was successful.Go to the members page to start setting up your bookmarks!'; //<a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a>URL 
do_html_URL('member.<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>','Go to members page'); //HTML页脚 
do_html_footer();  //HTML页脚 

}
catch(exception $e)
{
do_html_header('Problem:');
echo $e->getMessage();
do_html_footer();
exit;
}
?>

5.3 member.PHP

PHP;"> /**

  • 用户的主页面,包含该用户所有的当前书签
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.php');
    session_start();

//创建变量
$username = @$_POST['username'];
$passwd = @$_POST['passwd'];

if($username && $passwd)
{
try
{
login($username,$passwd);
//如果该用户在数据库中,则注册会话变量
$_SESSION['valid_user'] = $username;
}
catch(exception $e)
{
//登录不成功
do_html_header('Problem:');
echo 'You could not be logged in. You must be logged in to view this page.';
do_html_URL('login.php','Login');
do_html_footer();
exit;
}
}

do_html_header('Home');
check_valid_user();

//获取用户的书签
if($url_array = get_user_urls($_SESSION['valid_user']))
display_user_urls($url_array);
//获取用户菜单选项
display_user_menu();

do_html_footer();
?>

5.4 logout.PHP

PHP;"> PHP

/**

  • 用户注销的脚本
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.PHP');
    session_start();
    $old_user = $_SESSION['valid_user'];

//注销会话变量
unset($_SESSION['valid_user']);
$result_dest = session_destroy();

do_html_header('Logging Out');

if(!empty($old_user))
{
if($result_dest) //登出成功
{
echo 'Logged out.
';
do_html_URL('login.PHP','Login');
}
else //不成功
{
echo 'Could not log you out.
';
}
}
else
{
echo 'You were not logged in,and so have not been logged ot.
';
do_html_URL('login.PHP','Login');
}
do_html_footer();
?>

5.5 change_passwd.PHP

PHP;"> /**

  • 修改数据库中用户密码的表单
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.php');
    session_start();
    do_html_header('Changing password');

//创建变量
$old_passwd = $_POST['old_passwd'];
$new_passwd = $_POST['new_passwd'];
$new_passwd2 = $_POST['new_passwd2'];

try
{
check_valid_user();
if(!filled_out($_POST))
throw new exception('You have not filled out the form completely.Please try again.');

if($new_passwd != $new_passwd2) 
  throw new exception('Passwords entered were not the same. Not changed.'); 

if((strlen($new_passwd) > 16) || (strlen($new_passwd) < 6)) 
{ 
  throw new exception('New password must be between 6 and 16 characters. Try again.'); 
} 

//尝试修改 
change_password($_SESSION['valid_user'],$old_passwd,$new_passwd); 
echo 'Password changed.'; 

}
catch(exception $e)
{
echo $e ->getMessage();
}
display_user_menu();
do_html_footer();
?>

5.6 forgot_paswd.PHP

PHP;"> PHP

/**

  • 重新设置遗忘密码的脚本
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.PHP');
    do_html_header("Resetting password");

//创建变量
$username = $_POST['username'];

try
{
$passwd = reset_password($username);
notify_password($username,$passwd);
echo 'Your new password has been emailed to you.
';
}
catch(exception $e)
{
echo 'Your password could not be reset - please try again later.';
}
do_html_URL('login.PHP','Login');
do_html_footer();
?>

6、实现书签的存储和检索

6.1 add_bms.PHP

PHP;"> /**

  • 添加书签的表单
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.php');
    session_start();

//创建变量
$new_url = $_POST['new_url'];

do_html_header('Adding bookmarks');

try
{
check_valid_user(); //检查用户有效性
if(!filled_out($new_url)) //检查表单是否填写
throw new exception('Form not completely filled out.');
if(strstr($new_url,'http://') === false)
$new_url = 'http://'. $new_url;
if(!(@fopen($new_url,'r'))) //可以调用fopen()函数打开URL,如果能打开这个文件,则假定URL是有效的
throw new exception('Not a valid URL.');
add_bm($new_url); //将URL添加到数据库中
echo 'Bookmark added.';
if($url_array = get_user_urls($_SESSION['valid_user']))
display_user_urls($url_array);
}
catch(exception $e)
{
echo $e ->getMessage();
}
display_user_menu();
do_html_footer();
?>

6.2 delete_bms.PHP

PHP;"> PHP

/**

  • 用户的书签列表中删除选定书签的脚本呢
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.PHP');
    session_start();

//创建变量
$del_me = @$_POST['del_me'];
$valid_user = $_SESSION['valid_user'];

do_html_header('Deleting bookmarks');
check_valid_user();

if(!filled_out($del_me)) //
{
echo '

You have not chosen any bookmarks to delete.
Please try again.

';
display_user_menu();
do_html_footer();
exit;
}
else
{
if(count($del_me) > 0)
{
foreach($del_me as $url)
{
if(delete_bm($valid_user,$url))
{
echo 'Deleted '. htmlspecialchars($url) .'.
';
}
else
{
echo 'Could not delete '. htmlspecialchars($url) .'.
';
}
}
}
else
{
echo 'No bookmarks selected for deletion';
}
}
if($url_array = get_user_urls($valid_user))
{
display_user_urls($url_array);
}
display_user_menu();
do_html_footer();
?>

6.3 recommend.PHP

PHP;"> /**

  • 基于用户以前的操作,推荐用户可能感兴趣的书签
    */
    //require_once语句和require语句完全相同,如果是则不会再次包含。
    require_once('bookmark_fns.php');
    session_start();
    do_html_header('Recommending URLs');
    try
    {
    check_valid_user();
    $urls = recommend_urls($_SESSION['valid_user']);
    display_recommended_urls($urls);
    }
    catch(exception $e)
    {
    echo $e ->getMessage();
    }
    display_user_menu();
    do_html_footer();
    ?>

以上就是PHP在线书签系统的详细代码,希望对大家的学习有所帮助。

原文链接:https://www.f2er.com/php/20596.html

猜你在找的PHP相关文章