随着环保意识的增加,人们的出行越来越简单便捷,其中共享自行车是现在很多年轻人最热衷的出行方式之一,本系统主要是对共享自行车的信息进行管理。该系统的基本功能包括用户登录,区域信息管理,用户信息管理,用户充值管理,车辆信息管理,租借信息管理,损耗信息管理,统计报表信息,修改密码等功能。
共享自行车租赁管理系统的设计与实现是通过PHp语言和mysql数据库进行开发的,开发工具为PHpstudy同时可以通过其他PHp环境进行运行
共享自行车租赁管理系统登录页面
区域信息管理界面
车辆信息管理界面
在车辆信息管理中输入对应的车辆编号,品牌,型号,价格,类型,存放点,状态等基本信息后点击确定按钮,在系统检测输入的数据合法后添加车辆信息到数据库中,在本页面设计的时候首先加入一个几行2列的表格,分别用来存放对应的车辆编号,品牌,型号,价格,类型,存放点,状态等信息,然后在加入几个对应的Input用来存放对应车辆编号,品牌,型号,价格,类型,存放点,状态等信息然后加入2个按钮,分别用来提交信息和重填上次输入的信息,当输入了对应的信息后点击确定系统自动提交对应的信息到数据库中
租借信息管理界面
用户可以管理对应的租借信息,在租借信息管理中输入对应的基本信息后点击确定按钮,在系统检测输入的数据合法后添加租借信息到数据库中,当输入了对应的信息后点击确定系统自动提交对应的信息到数据库中
PHP共享自行车租赁管理系统功能结构图
摘 要1
第1章 系统概述5
1.1 研究的背景5
1.2 研究的意义5
1.3 主要研究内容5
第2章 系统开发环境6
2.1 PHP概述6
2.2 数据库技术6
2.3APACHE服务器6
第3章 需求分析8
3.1 需求分析8
3.1.1 功能需求8
3.2 可行性分析8
3.2.1 可行性分析8
3.2.2 技术可行性8
3.2.3 运行可行性9
3.2.4 时间可行性9
3.3 系统流程和逻辑9
第4章 系统概要设计13
4.1 概述13
4.2 系统结构13
4.3. 数据库设计14
4.3.1 数据库概念设计14
4.3.3数据库设计表16
第5章 系统详细设计20
5.1登陆模块的实现20
5.2区域信息管理21
5.3 用户信息管理21
5.4 车辆信息管理22
5.6租借信息管理23
5.7修改密码24
第6章 系统测试25
6.1 共享自行车租赁管理系统的测试目的25
6.2 共享自行车租赁管理系统的测试方法25
6.3 共享自行车租赁管理系统的测试25
6.4 共享自行车租赁管理系统的系统测试结果26
第7章 总结30
致谢语32
参考文献33
<?php
error_reporting(E_ALL ^ E_NOTICE);
$conn=@mysql_connect("localhost","root","root") or die("数据库链接失败".mysql_error());
mysql_select_db("daizu",$conn) or die("数据库链接失败".mysql_error());
mysql_query('set names utf8');
//设置时区
date_default_timezone_set('asia/shanghai');
define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('File_ROOT', SYS_ROOT."/upload/");
define('IMG_ROOT', SYS_ROOT . "/upload/");
@extract($_POST);
@extract($_GET);
function getfirst($sql)
{
$res=mysql_query($sql);
$rows=mysql_fetch_array($res);
return $rows;
}
//
function getcount($sql){
$res=mysql_query($sql);
return mysql_num_rows($res);
}
function get_name($id,$table)
{
$sql="select * from $table where id='$id'";
$rows=getfirst($sql);
return $rows[name];
}
//遍历创建目录
function Remkdir($path) {
if (!file_exists($path)) {
Remkdir(dirname($path));
@mkdir($path, 0777);
}
}
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {
$n = time().rand(1000,9999).'.jpg';
$z = $_FILES[$inputname];
if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
if (!$image) {
Remkdir( IMG_ROOT . '/' . "{$type}/" );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' . $image;
} else {
Remkdir( dirname(IMG_ROOT .'/' .$image) );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' .$image;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $image;exit;
return $image;
}
return $image;
}
//获取文件后缀名
function get_extend($file_name)
{
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
//文件上传实现
function upload_file($inputname, $file=null)
{
$year = date('Y'); $day = date('md');
$z = $_FILES[$inputname];
$file_ext=get_extend($z['name']);
$n = time().rand(1000,9999).".".$file_ext;
if ($z && $z['error']==0) {
if (!$file) {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' . $file;
} else {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' .$file;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $file;exit;
return $file;
}
return $file;
}
//分页函数.
function get_pager($url, $param, $count, $page = 1, $size = 10)
{
$size = intval($size);
if($size < 1)$size = 10;
$page = intval($page);
if($page < 1)$page = 1;
$count = intval($count);
$page_count = $count > 0 ? intval(ceil($count / $size)) : 1;
if ($page > $page_count)$page = $page_count;
$page_prev = ($page > 1) ? $page - 1 : 1;
$page_next = ($page < $page_count) ? $page + 1 : $page_count;
$param_url = '?';
foreach ($param as $key => $value)$param_url .= $key . '=' . $value . '&';
$pager['url'] = $url;
$pager['start'] = ($page-1) * $size;
$pager['page'] = $page;
$pager['size'] = $size;
$pager['count'] = $count;
$pager['page_count'] = $page_count;
if($page_count <= '1')
{
$pager['first'] = $pager['prev'] = $pager['next'] = $pager['last'] = '';
}
else
{
if($page == $page_count)
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = '';
$pager['last'] = '';
}
elseif($page_prev == '1' && $page == '1')
{
$pager['first'] = '';
$pager['prev'] = '';
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
else
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
}
return $pager;
}
?>