头像上传组件,后台安全控制

http://www.hdfu.net/demo.html
flash头像上传组件

jcrop组件   裁切头像

登录数据库表的建立
   
   
  1. create table hnsc_user(
  2. account varchar(50) primary key,
  3. pwd varchar(50), -- 密码
  4. truename varchar(50),-- 真是姓名
  5. face varchar(200), -- 注册时上传的头像
  6. why varchar(100), -- 注册时设置的问题
  7. ok varchar(100), -- 设置的问题的答案
  8. rip varchar(15),
  9. regtime int unsigned-- 注册的时间
  10. )engine=myisam default charset=utf8;
  11. select * from hnsc_user;
  12. drop table hnsc_user;
  13. -- 日志管理表
  14. create table hnsc_userlog(
  15. id smallint unsigned auto_increment,
  16. account varchar(50), -- 账户
  17. alog varchar(30), -- 用户的日志操作的内容
  18. aip varchar(15), -- 登录的ip
  19. atime int unsigned, -- 登录的时间
  20. primary key(id)
  21. )engine=myisam default charset=utf8;
useradd.php
   
   
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>网站首页</title>
  6. <style>
  7. </style>
  8. </head>
  9. <body>
  10. <form action="usersave.php" method="post">
  11. 账户:<input type="text" name="account"><br>
  12. 密码:<input type="text" name="pwd1"><br>
  13. 再次输入密码:<input type="text" name="pwd2"><br>
  14. 真实姓名:<input type="text" name="truename"><br>
  15. <input type="submit" value="注册账户">
  16. <a href="login.php">登录&nbsp;&nbsp;</a>
  17. </form>
  18. </body>
  19. </html>

头像上传组件,后台安全控制_第1张图片
print_r($_SERVER);
打印出所有的属性
头像上传组件,后台安全控制_第2张图片
$_SERVER['REMOTE_ADDR'] 获得客户的ip地址

如果出现eval()的错误可以尝试

打印出来插入语句,然后复制到数据中,看看能否插入,仔细查看原因
头像上传组件,后台安全控制_第3张图片红框里面一定要加空格不然会报错
checklogin.php
   
   
  1. <?php
  2. session_start();
  3. include '../inc/db_mysqli.php';
  4. $a=trim($_POST['account']);
  5. $p=mymd5($_POST['pwd'],$a);
  6. $stmt=$m->prepare('select count(*),truename from hnsc_user where account=? and pwd=?');
  7. $stmt->bind_param('ss',$a,$p);
  8. $stmt->execute();
  9. $stmt->bind_result($cc,$name);
  10. $stmt->fetch();
  11. $stmt->free_result();
  12. $stmt->close();
  13. if($cc==0){
  14. echo '登录失败请重新登录';
  15. echo " <a href='login.php'>登录&nbsp;&nbsp;</a>";
  16. }else if($cc==1){
  17. echo '欢迎'.$name;
  18. $_SESSION['user']=[$a,$name];//是为了传值
  19. echo"<a href='logout.php'>安全退出</a>";
  20. }
  21. //echo $cc,$name; //如果账号密码乱敲会得出0的结果如果正确输入会显示1,所以如果有账号为1,没有账号则为0

login.php
   
   
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>网站首页</title>
  6. <style>
  7. </style>
  8. </head>
  9. <body>
  10. <form action="checklogin.php" method="post">
  11. 账户:<input type="text" name="account"><br>
  12. 密码:<input type="text" name="pwd"><br>
  13. <input type="submit" value="登录">
  14. </form>
  15. </body>
  16. </html>
乱敲账号密码的结果

正确输入的结果
如果有则为1
checklogin.php 的完整代码
   
   
  1. <?php
  2. session_start();
  3. include '../inc/db_mysqli.php';
  4. $a=trim($_POST['account']);
  5. $p=mymd5($_POST['pwd'],$a);
  6. $stmt=$m->prepare('select count(*),truename from hnsc_user where account=? and pwd=?');
  7. $stmt->bind_param('ss',$a,$p);
  8. $stmt->execute();
  9. $stmt->bind_result($cc,$name);
  10. $stmt->fetch();
  11. $stmt->free_result();
  12. $stmt->close();
  13. if($cc==0){
  14. echo '登录失败请重新登录';
  15. echo " <a href='login.php'>登录&nbsp;&nbsp;</a>";
  16. }else if($cc==1){
  17. echo '欢迎'.$name;
  18. $_SESSION['user']=[$a,$name];//是为了传值
  19. echo"<a href='logout.php'>安全退出</a>";
  20. }
  21. //echo $cc,$name; //如果账号密码乱敲会得出0的结果如果正确输入会显示1,所以如果有账号为1,没有账号则为0

islogin.php
   
   
  1. <?php
  2. session_start();
  3. if(isset($_SESSION['user'])){
  4. }else{
  5. header('location:login.php');
  6. }
  7. ?>
把此行代码全部放在后台管理系统的每个页面的头部即可
头像上传组件,后台安全控制_第4张图片
就必须要登录成功以后才能查看此页面

loginout.php 安全退出
   
   
  1. <?php
  2. session_start();
  3. unset($_SESSION['user']);
  4. echo " <a href='login.php'>登录&nbsp;&nbsp;</a>";
除了登录页面和校验登录页面不用加islogin.php 其他页面都需要加
checklogin.php   和  login.php










你可能感兴趣的:(安全)