我们初学者面对第一次开发类似与留言板,小系统的开发时,经常不知道如何下手(因为我之前也是),然后的话写出我的经验供大家参考。
首先来看一下展示效果,学习的话呢是结合b站一些视频和菜鸟教程,因为我接触这方面时间也少,只是学会的一些基本操作,适合初学者看。
这是主页面的效果,用户名瞎点的。
一级标题的板块
二级标题的板块的效果
帖子板块的效果
首先我先来说说开发的整体思路,我们需要把常用的函数都封装起来,比如数据库连接函数,操作mysql查询语句的函数等等来简化代码。全局变量应写在配置文件中,比如以下:
<?php
header('Content-type:text/html;charset=utf-8');
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_DATABASE','sxybbs');
define('DB_PORT',3308);
?>
//数据库链接函数
function connect($host=DB_HOST,$user=DB_USER,$password=DB_PASSWORD,$database=DB_DATABASE,$port=DB_PORT)
{
$link=@mysqli_connect($host, $user, $password, $database, $port);
if(mysqli_connect_errno())
{
exit(mysqli_connect_error());
}
mysqli_set_charset($link,'utf8');
return $link;
}
//执行一条MySQL语句返回结果及对象
function execute($link,$query)
{
$result=mysqli_query($link,$query);
if(mysqli_errno($link)){
exit(mysqli_error($link));
}
return $result;
}
对于页面的样式先写出静态页面的代码,在PHP中直接拿来用即可。
然后页面上的共通点,比如上面的一行标题,可以写在一个文件中直接调用。
在一级标题的页面和二级标题的页面可以把标题栏写在文件中直接调用等等之类的。剩下的话学习一下分页函数(不会不要紧,用着用着就慢慢理解了)。
此外需要再学习一下简单的登陆验证的比如
<?php
if(empty($_POST['name'])){
skip('login.php', 'error', '用户名不得为空!');
}
if(mb_strlen($_POST['name'])>32){
skip('login.php', 'error', '用户名长度不要超过32个字符!');
}
if(empty($_POST['pw'])){
skip('login.php', 'error', '密码不得为空!');
}
if(empty($_POST['time']) || is_numeric($_POST['time']) || $_POST['time']>2592000){
$_POST['time']=2592000;
}
?>
还有内容检查过滤。因为我也是初学者所以说写的也比较基础。
<?php
if(empty($_POST['module_id']) || !is_numeric($_POST['module_id'])){
skip('publish.php', 'error', '所属版块id不合法!');
//写的跳转页面的函数
}
$query="select * from sxy_son_module where id={$_POST['module_id']}";
$result=execute($link, $query);
if(mysqli_num_rows($result)!=1){
skip('publish.php', 'error', '请选择一个所属版块 !');
}
if(empty($_POST['title'])){
skip('publish.php', 'error', '标题不得为空!');
}
if(mb_strlen($_POST['title'])>255){
skip('publish.php', 'error', '标题不得超过255个字符!');
}
?>
缺点:我没有把每个用户头像上传,修改,显示这方面做出来。用户注册时的验证码也不太会做,bug多多就没继续写了。整个系统几乎没有使用js,导致网页很僵硬等等。
源码戳这里 提取码:qeee
或者戳这里