提供一款可以保存客户登入的新闻来做了,这里正是二个总结的php
登入并设置cookie代码哦,相当粗略的。

require_once(‘inc.php’);
if(!file_exists($l_file)){
 echo getstop();
 if(!file_exists($c_file)){
  if($_SERVER[‘REQUEST_METHOD’]==’POST’ && $_POST[‘hostname’]!=”
&& $_POST[‘database’]!=” && $_POST[‘username’]!=”){
   if(@mysql_connect($_POST[‘hostname’], $_POST[‘username’],
$_POST[‘password’])){
    if(mysql_select_db($_POST[‘database’]) || mysql_query(‘CREATE
DATABASE ‘.$_POST[‘database’])){
     $c_content=”<?phpn$hostname_conn='”.$_POST[‘hostname’].”‘;n$database_conn='”.$_POST[‘database’].”‘;n$username_conn='”.$_POST[‘username’].”‘;n$password_conn='”.$_POST[‘password’].”‘;n$dbprefix='”.$_POST[‘dbprefix’].”‘;n$conn=mysql_connect($hostname_conn,
$username_conn, $password_conn) or
die(”);nmysql_select_db($database_conn,
$conn);”.(chksqlv()?”nmysql_query(“SET NAMES ‘gb2312′”,
$conn);n$charset_conn=1;”:”).”n?>”;
     writeText($c_file,$c_content);
    }else{
     $e=1;
    }
   }else{
    $e=2;
   }
   echo ‘<script
type=”text/JavaScript”>’.(isset($e)?’location.href=’?e=’.$e:’location.href=’mysql.php’).”;</script>’;
  }else{
   if(isset($_GET[‘e’]))$msg=$_GET[‘e’]==2?’无法连接数据库!’:’不能够树立数据库!’;
   if(isset($msg))echo ‘<div
class=”msg_v”>’.$msg.'</div>’;
?>
 <div class=”title”>第1步:配置MySQL</div>
 <div class=”lcontent”>
  <form method=”post” onsubmit=”if(document.form1.hostname.value==”
|| document.form1.database.value==” ||
document.form1.username.value==”){alert(‘请输入主机名、数据库名、客户名。’);return
false;}” name=”form1″>
   <div class=”formline”><label
for=”formhostname”>主机名:</label><input name=”hostname”
id=”formhostname” size=”32″ value=”localhost”/></div>
   <div class=”formline”><label
for=”formdatabase”>数据库名:</label><input name=”database”
id=”formdatabase” size=”32″/></div>
   <div class=”formline”><label
for=”formusername”>用户名:</label><input name=”username”
id=”formusername” size=”32″ value=”root”/></div>
   <div class=”formline”><label
for=”formpassword”>密码:</label><input name=”password”
id=”formpassword” size=”32″/></div>
   <div class=”formline”><label
for=”formdbprefix”>表前缀:</label><input name=”dbprefix”
id=”formdbprefix” size=”32″ value=”alu_”/></div>
   <div class=”formline”><input type=”submit” value=”下一步”
id=”formsubmit” class=”button” /> <input type=”reset” value=”重置”
class=”button” /></div>
  </form>
 </div>
<?php
  }
 }else{
  echo ‘<div
class=”gcontent”>要安装’.$app_n.’,请先删除“’.$b_file.’”。</div>’;
 }
 echo getsfoot();
}else{
 header(‘Location:../’);

本例大家运用Mysql数据库,成立一张user表,表结构如下:

if(!$c_log){
 $title.=’登陆’;
 if($_SERVER[‘REQUEST_METHOD’]==’POST’){
  if(isset($_POST[‘username’]) && trim($_POST[‘username’])!=” &&
isset($_POST[‘password’]) && trim($_POST[‘password’])!=”){
   $username=trim($_POST[‘username’]);
   $password=enc_p(trim($_POST[‘password’]));
   $q_author=sprintf(‘select * from %s where username=%s and
password=%s’, $dbprefix.’member’, SQLString($username, ‘text’),
SQLString($password, ‘text’));
   $author=mysql_query($q_author) or die(”);
   $r_author=mysql_fetch_assoc($author);
   if(mysql_num_rows($author)>0){
    if($r_author[‘status’]==0 || $r_main[‘veri’]>0){
     $uSQL=sprintf(‘update %s set visit=visit+1, visitdate=%s where
id=%s’, $dbprefix.’member’, time(), $r_author[‘id’]);
     $result=mysql_query($uSQL) or die(”);
     session_unset();
     session_start();
     $_SESSION[‘palu_id’]=$r_author[‘id’];
     if(isset($_POST[‘remember’]) && $_POST[‘remember’]==’1′){
      setcookie(‘palu_u’, $username, time()+86400*30);
      setcookie(‘palu_p’, $password, time()+86400*30);
     }else{
      setcookie(‘palu_u’,”,time());
      setcookie(‘palu_p’,”,time());
     }
    }else{
     $e=1;
    }
   }else{
    $e=2;
   }
   mysql_free_result($author);
  }
  if(isset($_GET[‘m’]))$u[]=’m=’.$_GET[‘m’];
  if(isset($_GET[‘t’]))$u[]=’t=’.$_GET[‘t’];
  if(isset($_GET[‘page’]))$u[]=’page=’.$_GET[‘page’];
  if(isset($e))$u[]=’e=’.$e;
  $topinfo.='<script
type=”text/JavaScript”>location.href=”.(isset($u)?’?’.join(‘&’,
$u):’./’).”;</script>’;
 }else{
  if(isset($_GET[‘e’])){
   if($_GET[‘e’]==2){
    $msg=’顾客名/密码错误!’;
   }elseif($_GET[‘e’]==3){
    $msg=’注册成功!请’.($r_main[‘veri’]>0?’登入’:’等待管理员检查核对’).’。’;
   }else{
    $msg=’您的帐号还尚无通过核查,请稍候再试。’;
   }
  }
  $content.='<div class=”tcontent”>’.(isset($msg)?'<div
class=”msg_v”>’.$msg.'</div>’:”).'<div
class=”title”>登录</div><div class=”lcontent”><form
method=”post” action=”” onsubmit=”return chklog();”><div
class=”formline”><label
for=”formname”>顾客名:</label><input name=”username”
id=”formname” size=”32″ maxlength=”20″ /></div><div
class=”formline”><label
for=”formpw”>密 码:</label><input name=”password”
id=”formpw” size=”32″ maxlength=”20″ type=”password”
/></div><div
class=”formline”><label></label><input name=”remember”
value=”1″ type=”checkbox”
title=”为了保障音讯安全,请不要在网吧或然国有机房接纳此项!假诺今后要注销此选项,只需点击“退出登录”就可以。”
/>记住自个儿</div><div class=”formline”><input
type=”submit” value=”登入” id=”formsubmit” class=”button” />
<input type=”reset” value=”打消” class=”button”
/><br/>’.($r_main[‘openreg’]==0?'<a
href=”?m=reg”>出席本班</a> | ‘:”).'<a
href=”?m=lostpw”>忘记密码</a></div></form></div></div>’;
 }
}else{
 $topinfo.='<script
type=”text/JavaScript”>location.href=’./’;</script>’;
}
?>

 代码如下

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(30) NOT NULL COMMENT ‘用户名’,
  `password` varchar(32) NOT NULL COMMENT ‘密码’,
  `login_time` int(10) default NULL COMMENT ‘登陆时间’,
  `login_ip` varchar(32) default NULL COMMENT ‘登录IP’,
  `login_counts` int(10) NOT NULL default ‘0’ COMMENT ‘登五次数’,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
下一场往user表中插入一条客户消息数量:

INSERT INTO `user` (`id`, `username`, `password`,
`login_time`, `login_ip`, `login_counts`)
 VALUES(1, ‘demo’, ‘fe01ce2a7fbac8fafaed7c982a04e229’, ”, ”, 0);

顾客在输入客商名和密码后,提醒顾客登录成功,并呈现相关登入讯息,要是点击“退出”,则脱离到客户登入分界面。

进入index.php,若是顾客已报到则彰显登陆音信,若是未登入则突显登入框需求客商登录。

 代码如下

<div id=”login”>
      <h3>客户登入</h3>
      <?php
      if(isset($_SESSION[‘user’])){
      ?>
      <div id=”result”>
        <p><strong><?php echo
$_SESSION[‘user’];?></strong>,恭喜您登入成功!</p>
        <p>您那是第<span><?php echo
$_SESSION[‘login_counts’];?></span>次登入本站。</p>
        <p>上次登入本站的年月是:<span><?php echo
date(‘Y-m-d H:i:s’,$_SESSION[‘login_time’]);?>
</span></p><p><a href=’#’
id=’logout’>【退出】</a></p>
      </div>
      <?php }else{?>
      <div id=”login_form”>
          <p><label>用户名:</label> <input
type=”text” class=”input” name=”user” id=”user” /></p>
          <p><label>密 码:</label> <input
type=”password” class=”input” name=”pass” id=”pass” />
</p>
          <div class=”sub”>
              <input type=”submit” class=”btn” value=”登 录” />
          </div>
      </div>
      <?php }?>
</div>

当心在index.php文件头应该加上语句:session_start;
同期在head部分引进jquery库,以及包罗global.js,您还足以为登陆框写个卓越的CSS样式,当然本例已经有一点写了个大约的体裁,请查看源码。

 代码如下

<script type=”text/javascript”
src=”../Script/jquery.js”></script>
<script type=”text/javascript”
src=”./Script/global.js”></script> 

global.js文件富含了将要达成的jquery代码。首先要做的便是让输入框得到核心,像百度和google那样一张开,鼠标光标就在输入框内。使用代码如下:

 代码如下

$(“input:text,textarea,input:password”).focus(function()
{
   
$(this).addClass(“cur_select”);
});
$(“input:text,textarea,input:password”).blur(function() {
    $(this).removeClass(“cur_select”);
});

客商登入
客商点击登陆开关后,首先要验证顾客的输入不能够为空,然后向后台login.php发送三个Ajax乞求。当后台表明登入打响后,重回登入客商新闻:如客商登捌遍数和上次登陆时间等;假使登陆失利,则赶回登陆失利音讯。

 代码如下

$(“.btn”).live(‘click’,function(){
    var user = $(“#user”).val();
    var pass = $(“#pass”).val();
    if(user==””){
        $(‘<div id=”msg”
/>’).html(“客商名不能为空!”).appendTo(‘.sub’).fadeOut(三千);
        $(“#user”).focus();
        return false;
    }
    if(pass==””){
        $(‘<div id=”msg”
/>’).html(“密码无法为空!”).appendTo(‘.sub’).fadeOut(三千);
        $(“#pass”).focus();
        return false;
    }
    $.ajax({
        type: “POST”,
        url: “login.php?action=login”,
        dataType: “json”,
        data: {“user”:user,”pass”:pass},
        beforeSend: function(){
            $(‘<div id=”msg”
/>’).addClass(“loading”).html(“正在登入…”).css(“color”,”#999″)
.appendTo(‘.sub’);
        },
        success: function(json){
            if(json.success==1){
                $(“#login_form”).remove();
                var div = “<div
id=’result’><p><strong>”+json.user+”</strong>,恭喜你登入成功!</p>
               
<p>您那是第<span>”+json.login_counts+”</span>次登入本站。</p>
               
<p>上次登陆本站的时刻是:<span>”+json.login_time+”</span></p><p>
                <a href=’#’
id=’logout’>【退出】</a></p></div>”;
                $(“#login”).append(div);
            }else{
                $(“#msg”).remove();
                $(‘<div id=”errmsg”
/>’).html(json.msg).css(“color”,”#999″).appendTo(‘.sub’)
.fadeOut(2000);
                return false;
            }
        }
    });
});

本身在拓宽Ajax恳求时,数据传输格式使用的是json,再次回到的多少也是json数据,使用JS将json数据剖判,获得登陆后的顾客信息,然后经过append追加到#login成分下,实现报到操作。

客户退出
当点击“退出”时,向login.php发送四个Ajax央浼,后台注销全体Session,页面重新回来登陆分界面。

 代码如下

$(“#logout”).live(‘click’,function(){
    $.post(“login.php?action=logout”,function(msg){
        if(msg==1){
             $(“#result”).remove();
             var div = “<div
id=’login_form’><p><label>用户名:</label> 
             <input type=’text’ class=’input’ name=’user’ id=’user’
/></p>
             <p><label>密 码:</label> <input
type=’password’ class=’input’ name=’pass’ 
id=’pass’ /></p>
             <div class=’sub’><input type=’submit’ class=’btn’
value=’登 录’ /></div>
             </div>”;
             $(“#login”).append(div);
        }
    });
});

login.php
据书上说前台提交的呼吁,登陆时,获取顾客输入的顾客名和密码,并与数据库中对应的顾客名和密码举行比对,借使比对成功,则将新的换代该客商登入音信,并建设构造json数据传给前台。

 代码如下

session_start();
require_once (‘connect.php’);
 
$action = $_GET[‘action’];
if ($action == ‘login’) {  //登录
    $user =
stripslashes(trim($_POST[‘user’]));
    $pass = stripslashes(trim($_POST[‘pass’]));
    if (empty ($user)) {
        echo ‘客户名不可能为空’;
        exit;
    }
    if (empty ($pass)) {
        echo ‘密码不能够为空’;
        exit;
    }
    $md5pass = md5($pass); //密码使用md5加密
    $query =
mysql_query(“select *
from user where username=’$user'”);
 
    $us = is_array($row = mysql_fetch_array($query));
 
    $ps = $us ? $md5pass == $row[‘password’] : FALSE;
    if ($ps) {
        $counts = $row[‘login_counts’] + 1;
        $_SESSION[‘user’] = $row[‘username’];
        $_SESSION[‘login_time’] = $row[‘login_time’];
        $_SESSION[‘login_counts’] = $counts;
        $ip = get_client_ip(); //获取登陆IP
        $logintime = mktime();
        $rs = mysql_query(“update user set
login_time=’$logintime’,login_ip=’$ip’,
login_counts=’$counts'”);
        if ($rs) {
            $arr[‘success’] = 1;
            $arr[‘msg’] = ‘登入成功!’;
            $arr[‘user’] = $_SESSION[‘user’];
            $arr[‘login_time’] = date(‘Y-m-d
H:i:s’,$_SESSION[‘login_time’]);
            $arr[‘login_counts’] = $_SESSION[‘login_counts’];
        } else {
            $arr[‘success’] = 0;
            $arr[‘msg’] = ‘登陆战败’;
        }
    } else {
        $arr[‘success’] = 0;
        $arr[‘msg’] = ‘客商名或密码错误!’;
    }
    echo json_encode($arr); //输出json数据
}
elseif ($action == ‘logout’) {  //退出
    unset($_SESSION);
    session_destroy();
    echo ‘1’;
}

当前台央求退出时,只需注销session就能够,并回到1给前台JS管理。注意上述代码中get_client_ip()是取得客商端IP的函数,限于篇幅未能列出。

 

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注