《PHP實例:PHP在線書簽系統分享》要點:
本文介紹了PHP實例:PHP在線書簽系統分享,希望對您有用。如果有疑問,可以聯系我們。
PHP教程本文為大家分享了PHP在線書簽系統,感興趣的小伙伴們可以參考一下
PHP教程1、需求分析
首先,需要識別每個用戶.應該有驗證機制.
其次,需要保存單個用戶的書簽.用戶應該能夠添加和刪除書簽.
再次,需要根據對他們的了解,向用戶建議他們可能感興趣的站點.
PHP教程2、辦理方案
2.1 系統流程圖
PHP教程
PHP教程2.2 PHPbookmark中的文件列表
PHP教程
PHP教程3、實現數據庫
PHP教程
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';
PHP教程4、實現基本的網站
4.1 login.php
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頁腳
?>
PHP教程4.2 bookmark_fns.php
PHP教程
<?php
/**
* 應用程序的包括文件集合
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包括過,如果是則不會再次包括.
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'); //增加和刪除書簽的函數
?>
PHP教程5、實現用戶身份驗證
5.1 register_form.php
PHP教程
<?php
/**
* 系統中用戶注冊表單
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包括過,如果是則不會再次包括.
require_once('bookmark_fns.php');
do_html_header('User Registration'); //HTML標題
display_registeration_form(); //輸出注冊表單
do_html_footer(); //HTML頁腳
?>
PHP教程5.2 register_new.php
PHP教程
<?php
/**
* 處理新注冊信息的腳本
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含.
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.');
}
//檢查郵件地址是否有效
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.');
}
//嘗試注冊
register($username,$email,$passwd);
//注冊會話變量
$_SESSION['valid_user'] = $username;
//提供成員頁面鏈接
do_html_header('Registration successful'); //HTML標題
echo 'Your registration was successful.Go to the members page to start setting up your bookmarks!'; //輸出URL
do_html_URL('member.php','Go to members page'); //HTML頁腳
do_html_footer(); //HTML頁腳
}
catch(exception $e)
{
do_html_header('Problem:');
echo $e->getMessage();
do_html_footer();
exit;
}
?>
PHP教程5.3 member.php
PHP教程
<?php
/**
* 用戶的主頁面,包括該用戶所有的當前書簽
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包括過,如果是則不會再次包括.
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();
?>
PHP教程5.4 logout.php
PHP教程
<?php
/**
* 將用戶注銷的腳本
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包括過,如果是則不會再次包括.
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.<br />';
do_html_URL('login.php','Login');
}
else //不成功
{
echo 'Could not log you out.<br />';
}
}
else
{
echo 'You were not logged in, and so have not been logged ot.<br />';
do_html_URL('login.php','Login');
}
do_html_footer();
?>
PHP教程5.5 change_passwd.php
PHP教程
<?php
/**
* 修改數據庫中用戶暗碼的表單
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含.
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();
?>
PHP教程5.6 forgot_paswd.php
PHP教程
<?php
/**
* 重新設置遺忘暗碼的腳本
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包含過,如果是則不會再次包含.
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.<br />';
}
catch(exception $e)
{
echo 'Your password could not be reset - please try again later.';
}
do_html_URL('login.php','Login');
do_html_footer();
?>
PHP教程6、實現書簽的存儲和檢索
6.1 add_bms.php
PHP教程
<?php
/**
* 添加書簽的表單
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包括過,如果是則不會再次包括.
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();
?>
PHP教程6.2 delete_bms.php
PHP教程
<?php
/**
* 從用戶的書簽列表中刪除選定書簽的腳本呢
*/
//require_once語句和require語句完全相同,唯一區別是PHP會檢查該文件是否已經被包括過,如果是則不會再次包括.
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 '<p>You have not chosen any bookmarks to delete.<br />Please try again.</p>';
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) .'.<br />';
}
else
{
echo 'Could not delete '. htmlspecialchars($url) .'.<br />';
}
}
}
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();
?>
PHP教程6.3 recommend.php
維易PHP培訓學院每天發布《PHP實例:PHP在線書簽系統分享》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7924.html