Abstract: 修改新闻管理系统注册用户功能,添加没有勾选免责协议时要提示,必须勾选后才能注册成功,点击免责协议可以展示协议内容,继续修改点赞功能,展示新闻管理系统,介绍思路。

一、注册功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
Require_once '../basedir/header.php';
?>
<!DOCTYPE html>
<html>
<head > <meta charset="utf-8"></head>
<body>
<br><br><hr><br><br>
<div style="width:100%;text-align:center">
<tr>
<h1>注册</h1>
<form action="logup.php" method="post" onsubmit="checkEmpty()" onchange="checkSelect()">
<p><input type="text" name="name" id="idName" placeholder="用户名"></p>
<p><input type="password" name="passwd" id="idPwd" placeholder="密码"></p>
<p><input type="password" name="passwdagain" id="idPwdAg" placeholder="再次输入密码"></p>

<p><a href="./agree.php" target="_blank"><input type="checkbox" name="agree" id="idAgree">已阅读并同意《免责声明》</a></p>
<p><input type="submit" name="提交"></p>
</form>

</tr>
<tr>
<td align="right">
<a href="/login.php"><button align="right">用户登录</button></a>
</td>
</tr>
</div>
<script>
function checkEmpty(){
var name = document.getElementById('idName').value;
var pwd = document.getElementById('idPwd').value;
var pwdAg = document.getElementById('idPwdAg').value;
var agree = document.getElementById('idAgree').checked;
if(!(name && pwd && pwdAg)){
alert('所有输入框内容不能为空!');
return;
}else {
if (pwd != pwdAg) {
alert('两次输入密码不一致!请重新输入密码!');
return;
}else{
if(!agree){
alert("请阅读完免责协议并勾选同意!");
return;
}
}
}
return agree;
}
</script>
</body>
</html>
<?php

Require_once '../basedir/footer.php';

?>

<?php
error_reporting(E_ALL^E_NOTICE);
Require_once "sql.php";

$agree = $_POST['agree'];

$uname = base64_encode($_POST['name']);

$upass = md5($_POST['passwd']);

$passAgain = md5($_POST['passwdagain']);


if ($uname && $upass && $passAgain) {
$checkName = mysql_query("SELECT * FROM `tb_users` where `username` = '$uname';");

while (@$row = mysql_fetch_array($checkName))//转成数组,且返回第一条数据,当不是一个对象时候退出
{
echo "<br>";
if ($uname == $row['username']) {
echo "<script>alert('用户名已存在,请重新输入!');</script>";
die();
}
}
if ($upass==$passAgain && $agree=='on') {
echo
$result = mysql_query("INSERT INTO `tb_users` (`username`, `password`) VALUES('$uname', '$upass');");
if (mysql_affected_rows()) {
echo "<script>alert('恭喜你注册成功!即将跳转到登录页面!'); location.href='login.php'</script>";
}
}
}
?>

二、问题与总结

程序设计问题:点赞功能实现思路:点击按钮触发事件,进入后台处理页面,对数据库里面的type进行修改,统计出type的总和即热度;访问量的统计,每次从数据库读信息把view加1然后保存到数据库里面。

程序架构问题:层次不清,目录比较混乱。

团队合作问题:合作之前关于变量取名,程序处理结构均未沟通好,导致一些程序写好后合并程序时还要做修改。

漏洞问题:未对用户输入做相应的处理,存在SQL注入、XSS等漏洞。