设为首页 收藏本站
查看: 844|回复: 0

[经验分享] PHP管理员登陆、验证与添加(前端验证)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-29 08:10:19 | 显示全部楼层 |阅读模式
  //造成乱码的原因为数据库(源),网页编码,文件编码,php代码,数据库传输过程编码mysql_query('SET NAMES utf8')
  header('Content-Type:text/html;charset=utf-8');
  header('Cache-control:private');                //页面启用session之后,退回去时表单数据还存在。
  session_start();                        //session_start()前面不能有内容输出
  //连接服务器,数据库,(服务器的IP地址或者域名,用户名,密码)
  $server = '127.0.0.1';
  $user = 'root';
  $pwd = '';
  //将连接结果存入一个变量,并用错误抑制符@
  @ $linkid = mysql_connect($server,$user,$pwd);
  //输出错误,终止程序。
  if(!$linkid)
  {
  die('与服务器'.$server.'的连接失败,原因为'.mysql_error());
  }
  //选择数据库
  $database = 'e1215cms';
  $rs = mysql_select_db($database);
  if(!$rs)
  {
  die('选择数据库'.$database.'失败,错误原因为'.mysql_error());
  }
  //数据库传输过程编码mysql_query()该函数可以将代码放入服务器、数据库上运行。。
  mysql_query('SET NAMES utf8');
  将这部分代码作为独立文件,放入includes文件夹,将代码放入新建的config.php文件。
  用require('../includes/config.php');调用.
  //流程:入口页—login.html,用post方式提交到login.php,到数据库查询post过来的password和username。
  $username = $_POST['username'];
  $password = md5( $_POST['password'] );      //由于表单中的密码被加密,所以要用加密函数
  $sql=" select * from `tb_admin` where `username` = '$username' and `password` = '$password' LIMIT 1";   //加快执行效率
  //用双引号
  $sql = 'SELECT FROM `tb_admin` WHERE `username ` = " '.$username.' " AND `password` = " '.$password.' " ';
  $result = mysql_query($sql);              //$result代表执行sql语句后的结果集,用来判断sql语句是否执行成功
  //判断sql语句是否出错,如果有错,终止程序,输出错误。如果查询数据为0,依然代表执行成功,不代表$result为false.
  if(!$result)
  {
  die(mysql_error());
  }
  //从查询到的结果集中抓取到$r
  $data = mysql_fetch_assoc($result);
  if(!$data)
  {
  die('<script>alert("不正确");window.location="login.html"</script>')       //退回去,不保留原表单中的数据。
  die('<script>alert("不正确");window.history.back()</script>');        //退回去,能够保留原表单中的数据。
  }
  else
  {
  //验证管理员登陆,用全局变量$_SESSION,服务器端生成文件,安全性高。$_COOKIE验证会员登录,客户端生成,安全性不高。
  $_SESSION['username'] = $data['username'];
  $_SESSION['id'] = $data['id'];
  echo '输入正确,您的ID是:'.$data['id'];
  print_r($r);                        //返回的为数组
  header('location:index.php');                 //PHP跳转
  die('<script>window.location="index.php";</script>')
  }
  检测$_SESSION,放入includes,
  session_start();
  if(!$_SESSION['username'] || !$_SESSION['id'])
  {
  header('Location:login.html');
  die('<script>window.location="login.html";</script>');
  }
  //添加管理员,add-admin.php,验证功能尽量写在前端。
  require(../includes/check-admin.php);
  <script>
  function check(obj)
  {
  /*var n = document.getElementsByName('username')[0];    //getElementsByName抓取到的是数组,因此需要下标来指定值;*/
  var n = obj.elements['username'];    //返回的为对象或集合(自动判断是对象还是集合,适合单选按钮,复选框。)  OR
  var n = obj.username;
  if(n.value == '' )
  {
  alert('用户名不能为空');
  n.focus();          //定位光标到用户名填写框
  return false;
  }
  var p = obj.password;
  if(p.value )
  {
  alert('密码不能为空');
  p.focus();          //定位光标到用户名填写框
  return false;
  }
  if(p.value != obj.confirmpwd.value)
  {
  alert('密码输入不一致');
  p.focus();
  p.select();                 //获得焦点的同时,选中内容
  obj.confirmpwd.focus();          //定位光标到用户名填写框
  return false;
  }
  }
  </script>
  <form action="admin_action.php" method="post" >
  <p>用户名:<input type="text" name="username" /></p>
  <p>密码:<input type="password" name="password" /></p>
  <p>密码确认:<input type="password" id="confirmpwd" /></p>
  <p><input tyep="submit" value="提交" /></p>
  </form>
  //管理员列表页
  <?php
  require(../includes/check-admin.php);
  //查询所有管理员
  $sql = "SELECT * FROM e1215cms ORDER BY id DESC";   //将最新添加的管理员放在前面
  $result = mysql_query($sql);
  if(!$result)
  {
  die(mysql_error());
  } 
  ?>
  <table>
  <tr>
  <th>ID</th>
  <th>用户名</th>
  <th>操作</th>
  </tr>
  <tr>
  <?php
  while($data = mysql_fetch_assoc($result))
  {
  ?>
  <td><?=$data['id']?></td>
  <td><?=$data['username']?></td>
  <td><a href="edit.php">编辑</a><a href="delete.php">删除</a></td>
  </tr>
  <?php
  }
  ?>
  </table>
  //管理员添加
  <?php
  header('Cache-control:private');                          //页面启用session之后,退回去时表单数据存在。(密码域和文件域除外)
  session_start();
  header('Content-Type:text/html;charset=utf-8');
  
  ?>
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105706-1-1.html 上篇帖子: php注射后的提权 下篇帖子: [ThinkPHP] 比较标签 neq&nheq 与 PHP 中的 != 与 !== 出现的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表