新浦京娱乐场官网手机版:达成跨域名Cookie

  在PHP中可以使用setcookie函数设置一个cookie,如果设置cookie如setcookie(“mycookie”,在任何时候出现一个交叉域名引用时使用变量,Cookie真是一个伟大的发明

 上面包车型大巴程序流程如下: 
  首先检查有着的新闻是不是按必要填写,若无,再次来到重新输入 
  假使全数消息填好,首先,大家从数据库中取回客商登入详细资料 
    mysql_connect(State of Qatar or die (“连接数据库现身谬误!”卡塔尔国; 
    $query=”select * from info where FirstName=’$FirstName’ and LastName=’$LastName’ and email=’$email'”; 
    $result = mysql_db_query(“users”, $query); 
    $info=mysql_fetch_array($result); 
    $count=$info[“count”];  
  检查数据库是不是有那样一个客商,假如有,它钦赐旧的音信,并用当下的新闻建风流罗曼蒂克新的cookie,假使同样顾客未有数据库登入,新建风流倜傥数据库登入,并建朝气蓬勃新的cookie。 
  今后利用isset(卡塔尔(قطر‎函数检查客户是不是有流量计,假使有则计数器扩展并且创设多个新的cookie: 
    $count++; //扩充流速計
    $CookieString=$FirstName.’&’.$LastName.’&’.$email.’&’.$count; 
    SetCookie (“myCookies”,$CookieString, time()+3600);  
  若无意气风发客商计数器,在mysql中加意气风发记下,并设生机勃勃cookie 
  注意:调用setcookie函数在此以前应当未有别的数据输出倒浏览器,不然将会冒出谬误。 
  如何贯彻跨域名Cookie? 
  从Cookie标准上说,八个cookie只好用于三个域名,由此,假设在浏览器中对三个域名设置了二个cookie,那么这些cookie对于其余的域名帅无济于事。 
  上面大家来谈叁个跨域名cookie的完成方案: 
先是步:创造预置脚本 
  将上边包车型地铁代码加到预置脚本中(或出未来全部脚本以前的函数中卡塔尔(قطر‎。 
    <?php 
    /*倘使GET变量已经设置了,並且它与cookie变量差异 
     *则使用get变量(更新cookie) 
     */
    global $HTTP_COOKIE_VARS, $HTTP_GET_VARS; 
    if (isset($sessionid) && isset($HTTP_GET_VARS[‘sessionid’]) && ($HTTP_COOKIE_VARS[‘sessionid’] != $HTTP_GET_VARS[‘sessionid’])) { 
      SetCookie(‘sessionid’, $HTTP_GET_VARS[‘sessionid’], 0, ‘/’, ”); 
      $HTTP_COOKIE_VARS[‘sessionid’] = $HTTP_GET_VARS[‘sessionid’]; 
      $sessionid = $HTTP_GET_VARS[‘sessionid’]; 
    } 
    ?>  
  这一个代码运转之后,贰个全局变量’sessionid’将得以用来脚本。它将保存顾客的cookie中的sessionid值,可能是经过GET必要发来的sessionid值。 
第二步:为保有的穿插域名援引使用变量 
  创设四个大局的布局文件,用于贮存能够张开切换的域名的主干引用格局。举例,要是大家富有domain1.com和domain2.com,则如下设置: 
    <?php 
    $domains[‘domain1’] = “”; 
    $domains[‘domain2’] = “”; 
    ?>  
  大家写这么意气风发段代码: 
    <?php 
    echo “Click <a href=””, $domains[‘domain2’], “/contact/?email=yes”>here</a> to contact us.”; 
    ?>  
  上边的代码将生出如下的输出: 
    Click <a href=” to contact us.  
  在这里边sessionid已经被插入到U途观L中去了。 
第三步:配置Apache 
  现在,大家来布局Apache来重写这些U牧马人L。 
  我们供给将
     
  形成那样: 
     
  何况这种url: 
    
  变成那样: 
     
  为了兑现地方的渴求,轻巧地配置五个虚构服务器,作为domain1和domain2,如下操作:
    <VirtualHost ipaddress> 
    DocumentRoot /usr/local/www/domain1 
    ServerName www.domain1.com 
    RewriteEngine on 
    RewriteRule ^/-(.*)-(.*?.*)$ $2&sessionid=$1 [L,R,QSA] 
    RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L,R,QSA] 
    </VirtualHost> 
    <VirtualHost ipaddress> 
    DocumentRoot /usr/local/www/domain2 
    ServerName www.domain2.com 
    RewriteEngine on 
    RewriteRule ^/-(.*)-(.*?.*)$ $2&sessionid=$1 [L,R,QSA] 
    RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L,R,QSA] 
    </VirtualHost>  
  这么些重写的准绳完成了上边七个UTucsonL重写的必要。

Cookie真是一个大侠的申明,它答应web开荒者保留他们的客商的报到景况。不过,当您的站点或网络有二个之上的域名时就相会世难题了。
在Cookie标准上说,贰个cookie只可以用来五个域名,不能发给其余的域名。由此,假设在浏览器中对三个域名设置了叁个cookie,这么些cookie对于别的的域老马对事情未有什么益处。假使你想让您的顾客从您的站点中的当中贰个拓宽登入,同有时候也足以在别的域名上进行登入,那可便是三个大难点。
我的解决方案将使用上边包车型客车平常框架:一个预置的剧本将用来接纳通过GET或首席实践官KIE形式传送过来的sessionid号。它将比老董KIE优先选项GET变量。所以,无论什么日期须求引用交叉的域名时,大家把sessionid做为二个UHavalL参数举行发送。修正Apache配置,用来落实重写全数的穿插域名的cookie。那样做的案由转眼间就能够知道了。在任哪一天候现身二个接力域名援引时使用变量。第一步:成立预置脚本
将上面包车型大巴代码加到预置脚本中(或出未来有着脚本在此之前的函数中State of Qatar。?php/*
协理交叉域名cookie… *///
倘诺GET变量已经安装了,并且它与cookie变量差别//则接受get变量(更新cookie卡塔尔国global
$HTTP_COOKIE_VARS, $HTTP_GET_VARS;if (isset($sessionid)
isset($HTTP_GET_VARS[‘sessionid’])
($HTTP_COOKIE_VARS[‘sessionid’] != $HTTP_GET_VARS[‘sessionid’]))
{SetCookie(‘sessionid’, $HTTP_GET_VARS[‘sessionid’], 0, ‘/’,
”);$HTTP_COOKIE_VARS[‘sessionid’] =
$HTTP_GET_VARS[‘sessionid’];$sessionid =
$HTTP_GET_VARS[‘sessionid’];}?
生机勃勃旦这一个代码运转之后,一个大局的’sessionid’变量将得以用来脚本。它将保存着顾客的cookie中的sessionid值,或然是经过GET供给发来的sessionid值。第二步:为全体的接力域名援引使用变量
创设三个大局的安插文件,用于寄存能够实行切换的域名的着力引用格局。比如,要是大家全体domain1.com和domain2.com,则如下设置:?php$domains[‘domain1’]
= $sessionid-;$domains[‘domain2’] = $sessionid-;?
今后,如若在代码中如下做:?phpecho Click lt;a href=,
$domains[‘domain2’], /contact/?email=yesgt;herelt;/agt; to contact
us.;?