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
等漏洞。