这个是我网站登陆论坛的代码,只是不知道cookie怎么设置?(就是相当于网站的记住密码的功能)请大家多多帮忙哦!//整合后登录论坛的代码
$act=(isset($_GET['act']))?$_GET['act']:"login";
if(function_exists($act)) $act();else login();   function login()
{        
        $ErrMsg=UserCheck();
        if($ErrMsg!="")echo $ErrMsg;   
}function UserCheck() 
{        
        $passportkey="1234567890";//这里换成你论坛通行证设置的passportkey
        
        //===========验证输入=====================
        if(!isset($_POST['submit'])) return; // login表单的按钮需要与此同名
        $usnm=trim($_POST['username']);//username换成你登陆表单里的用户名域                        
        $pwd=trim($_POST['password']);//password换成你登陆表单里的密码域    
        if($usnm=="") return "请输入用户名!";
        if($pwd=="") return "请输入密码!";
        
        //=========数据库处理==========================
         
        $db=mysql_connect("localhost", "root", "");
        mysql_select_db("dushubao");   //此处没有set names gb2312,直接登录论坛
$sql="Select * from yonghu where username='".$usnm."' Limit 1";        
        $rs = mysql_query($sql,$db)        ;
        $row = mysql_fetch_array($rs);
        if(!$row)return "该用户不存在";
        if($row["pwd"]!=md5($pwd))return "密码错误";
        mysql_free_result($rs);        
       //这个参数用来设置读书宝访问1表示成功0表示失败
    echo "<script language='javascript'>external.invoke( 1,'useronline');</script>";
        //==============header到bbs=====================        
        $member = array
        (
                        'time'     => time(),
                        'username' => $row["username"],
                        'password' => $row["pwd"],
                        'email'    => $row["email"]
        );
        $auth = passport_encrypt(passport_encode($member), $passportkey);
        setcookie("auth",$auth,($_POST["cookietime"]? time()+(int)$_POST["cookietime"] :0));
//setcookie("auth",$auth,($_POST["Cookie"]? time()+(int)$_POST["Cookie"] :0));
//setcookie("auth",$auth,(($_POST["Cookie"])&&($_POST["savepasswd"])? time()+(int)$_POST["Cookie"] :0));
        $forward=$_POST['forward'];
        //if($forward=="")$forward="../../index.php";
//if($forward=="")$forward="../../bbs";                                        
if($forward=="")$forward="../../userinfo.php";                                        
        $verify = md5('login'.$auth.$forward.$passportkey);
        $auth=rawurlencode($auth);
        $forward=rawurlencode($forward);
        header("Location: bbs/api/passport.php?action=login&auth=$auth&forward=$forward&verify=$verify"); 
                       }

解决方案 »

  1.   

    如果登录成功,就设置cookie。
    根据你写的代码,应该是在login()函数里面,function login()
    {        
            $ErrMsg=UserCheck();
            if($ErrMsg!="")echo $ErrMsg; 
            else
            设置cookie;
            #可用函数setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] 
            #注:给每个用户设置一个唯一的cookie,
    }         这样在以后的页面里面就可以从$_COOKIE[]数组中取出cookie,根据cookie,识别用户。不用再次登陆