Php 检查cookies并设置会话

Php 检查cookies并设置会话,php,session,cookies,Php,Session,Cookies,我根本不是一名编程人员,因此在这种情况下我需要一些帮助: 我需要将Cookie和会话设置到一个参考系统,该系统的工作方式如下: www.mywebsite.com/?id=附属公司 我需要检查数据库中是否存在附属机构 如果是,则获取用户名以设置要在页面中打印的cookie和名称 如果不是,我将使用默认的附属公司,如第一附属公司。 Cookie的有效期必须为30天 我的一个问题是,当被推荐的客户来到我的网站时,链接中没有。/?id=affiliate,因为我需要检查是否有注册的cookie,如果没

我根本不是一名编程人员,因此在这种情况下我需要一些帮助:

我需要将Cookie和会话设置到一个参考系统,该系统的工作方式如下: www.mywebsite.com/?id=附属公司

  • 我需要检查数据库中是否存在附属机构
  • 如果是,则获取用户名以设置要在页面中打印的cookie和名称
  • 如果不是,我将使用默认的附属公司,如第一附属公司。 Cookie的有效期必须为30天
  • 我的一个问题是,当被推荐的客户来到我的网站时,链接中没有。/?id=affiliate,因为我需要检查是否有注册的cookie,如果没有,则使用默认的affiliate设置一个全新的cookie

    我写了这段代码,但我有110%的把握它是错误的。 请你看一下,并提出一些建议。我很感激

    代码:

    $id = $_POST("id");
    if ($_POST("id") = null) {
        if( isset( $_COOKIE['pro']  ) )   
        { 
            $id = $_COOKIE['pro']; 
        }else{
            $id = "defaultaffiliate"
        }
    }
    session_start();
    $rs = mysql_query("select * from users where Username='$id'");
    $arr=mysql_fetch_array($rs);
    if(mysql_num_rows($rs) > 0){
        $uid=$arr['id'];
        $_SESSION["name"]=$arr['Name'];
        setcookie("pro", $uid, time()+30 * 24 * 3600);
    }else{
        $uid='claudioxerez';
        $_SESSION["name"]='Claudio Xerez';
        setcookie("pro", $uid, time()+30 * 24 * 3600);
    }
    

    对于Set会话和Cookie:

    Config.php:

        $SERVER="localhost";
        $DB_NAME="********";
        $USERNAME="*******";
        $PASSWORD="*******";
    
    
    $CONN=mysql_connect($SERVER,$USERNAME,$PASSWORD);
    mysql_query("set names UTF8",$CONN);
    if(!$CONN)
    {
        die('ERROR IN CONNECT TO DATABASE!'.mysqli_connect_error());    
        mysql_close();
    }
    else
    {
        mysql_select_db($DB_NAME,$CONN);
    }
    
    Login.php:

    <form enctype="multipart/form-data" method="post" action="Config/Checklogin.php">
       <input name="txtUsername" type="text"  id="txtUsername" autocomplete="off" />
       <input name="txtPassword" type="password"  id="txtPassword" />
       <p>Remember ME .</p><input name="chkRemember" id="chkRemember" type="checkbox"     /><
       <input type="submit" value="Submit" />
    </form>
    
    session_start();
          include("Config.php");
    if(!empty($_POST["txtUsername"])&& !empty($_POST["txtPassword"]))
    {
    
            $User=$_POST["txtUsername"];
            $PASSWORD=$_POST["txtPassword"];
                 $Remember=$_POST["chkRemember"];
                setSession($User,$PASSWORD,$Remember);
    }
    if(  (ctype_alnum($User))   ) 
    {
          setSession($User,$PASSWORD,$Remember); // --> setSession is a function
    }
    else
    {
    
    header("Location:../Login.php");        
    }
    //------------------------ FUNCTION :
    function setSession($YOURUSERNAME,$YOURPASSWORD,$Remember)
    {
    
    
        /* ========================================================= */
        $sel="SELECT * FROM TBL_USERS WHERE USERNAME='".SAFE($YOURUSERNAME)."'".
        "AND PASSWORD= '".SAFE($YOURPASSWORD)."'";
    
        //=================================================
    
    
    
        $Result=QUERY($sel);
        $Row=mysql_num_rows($Result);
    
        if($Row==1)
        {
            if($Remember=='on')
            {
                setcookie("user", $YOURUSERNAME, time()+3600,"/");  // for an houre 
                header("location:../index.php");
    
            } 
            else if($Remember==NULL)
            {
                    $_SESSION["user"]=$YOURUSERNAME;
                    header("location:../index.php");
            }
        }
        else
        {
                header("location:../login.php");    
        }
    

    嗨@Mohammad.Amin,可能是我没有正确解释我需要做什么。事实上,这段代码是跟踪销售而不是登录。每个分支机构都有自己的跟踪代码,该代码通过url“../id=affiliate”传递,因此我需要选择此id,并查看是否有任何分支机构注册,以便将其通信记入贷方。我需要设置cookie来设置会话的原因是,我将有许多附属公司推广相同的产品和页面。