fazelit
یک شنبه 12 دی 1389, 21:46 عصر
با سلام و خسته نباشید خدمت دوستان
من یه مشکل عجیب با کوکی دارم !!!!
من با سیستم آژاکس اومدم یه کوکی رو با کد زیر ذخیره کردم
if($CheckPolls->Kind=='cookie')
{
$NameR='response'.$rowQ['id'];
$NameQ='question'.$rowQ['id'];
setcookie($NameR,$idR,time()+(360*24*3600));
setcookie($NameQ,$rowQ['id'],time()+(360*24*3600));
}
بعدش اومدم یه کلاس تعریف کردم که خیلی چیزها رو میسنجه از جمله کوکی رو بررسی میکنه ببینم ذخیره هستش یا نه کد کلاس:
[/Pclass CheckPolls
{
var $Question='';
var $Check=true;
var $Response='';
var $ip;
var $Kind='';
//var $RNum=0;
function check_cookie()
{
?>
<script language="javascript" type="text/javascript">
if (navigator.cookieEnabled == 0)
{
alert("سیستم شما قادر به نظر سنجی نمی باشد");
}
</script>
<?php
}
function getRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
##### چک کردن آیا نظر داده است یا خیر
function __construct($idQ)
{
$idQ=intval($idQ);
$ip=self::getRealIp();
################# Kind Check
$kind='cookie';
//$kind='ip';
$this->Kind=$kind;
////// End
if($kind=='cookie')
{
$NameR='response'.$idQ;
$NameQ='question'.$idQ;
print $this->Response=$_COOKIE[$NameR];
$this->Question=$_COOKIE[$NameQ];
if(($this->Response>0)||($this->Question>0))$this->Check=false;
else $this->Check=true;
}
elseif($kind=='ip')
{
$s=mysql_query("SELECT * FROM `polls_poll` WHERE `ip`='$ip' AND `question_id`='$idQ' LIMIT 0,1");
if($s)
{
if(mysql_num_rows($s)>0)
{
$row=mysql_fetch_assoc($s);
$this->Check=false;
$this->Response=$row['response_id'];
$this->Question=$row['question_id'];
}
else $this->Check=true;
}
}
}
//// پایان
###########/ مشاهده آمار
function Result($idQ)
{
$Res='';
$idQ=intval($idQ);
$sP=mysql_query("SELECT DISTINCT `response_id` FROM `polls_poll` WHERE `question_id`= '$idQ' ");
if($sP)
{
//$this->$RNum=mysql_num_rows($sP);
while($r=mysql_fetch_assoc($sP))
{
$Res["{$r['response_id']}"]=mysql_num_rows(mysql_query("SELECT * FROM `polls_poll` WHERE `response_id`= '{$r['response_id']}' "));
}
$this->Response=$Res;
}
}
//// پایان
}
########## Class Polls
class Polls_Index
{
var $rowP='';
var $NumResponse=0;
function Polls($id)
{
$id=intval($id);
if($id>0)
{
$selP=mysql_query("SELECT * FROM `polls_question` q, `polls_response` r WHERE r.question_id=q.id && q.id='$id' ORDER BY q.id DESC, r.swich ASC");
if($selP)
{
$num=0;
$this->NumResponse=mysql_num_rows($selP);
while($Polls=mysql_fetch_array($selP))
{
$num++;
$id=$Polls[0];
$this->rowP['idQ']=$Polls[0];
$this->rowP['question']=$Polls['question'];
if($Polls['active']==0)$active='';
$this->rowP[$num]=array(
'response'=>$Polls['response'],
'swich'=>$Polls['swich'],
'idR'=>$Polls['id'],
);
}
}
}
}
}
///// End ClassHP]
این هم بخش مورد نظر در کلاس:
$NameR='response'.$idQ;
$NameQ='question'.$idQ;
print $this->Response=$_COOKIE[$NameR];
$this->Question=$_COOKIE[$NameQ];
if(($this->Response>0)||($this->Question>0))$this->Check=false;
else $this->Check=true;
اما داستان از اینجا شروع میشه که من هروقت با آزاکس میام بررسی میکنم ببینم کوکی ذخیره شده درست کار میکنه اما وقتی بدون آژآکس تیت میکنم میگه کوکی خالیه
کد تست کوکی ذخیره شده:
$ChPolls=new CheckPolls($Polls[$i]->rowP['idQ']);
if($ChPolls->Check==true)
مشکل کجاست؟:متفکر::متفکر::متفکر:: تفکر:
من یه مشکل عجیب با کوکی دارم !!!!
من با سیستم آژاکس اومدم یه کوکی رو با کد زیر ذخیره کردم
if($CheckPolls->Kind=='cookie')
{
$NameR='response'.$rowQ['id'];
$NameQ='question'.$rowQ['id'];
setcookie($NameR,$idR,time()+(360*24*3600));
setcookie($NameQ,$rowQ['id'],time()+(360*24*3600));
}
بعدش اومدم یه کلاس تعریف کردم که خیلی چیزها رو میسنجه از جمله کوکی رو بررسی میکنه ببینم ذخیره هستش یا نه کد کلاس:
[/Pclass CheckPolls
{
var $Question='';
var $Check=true;
var $Response='';
var $ip;
var $Kind='';
//var $RNum=0;
function check_cookie()
{
?>
<script language="javascript" type="text/javascript">
if (navigator.cookieEnabled == 0)
{
alert("سیستم شما قادر به نظر سنجی نمی باشد");
}
</script>
<?php
}
function getRealIp()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
##### چک کردن آیا نظر داده است یا خیر
function __construct($idQ)
{
$idQ=intval($idQ);
$ip=self::getRealIp();
################# Kind Check
$kind='cookie';
//$kind='ip';
$this->Kind=$kind;
////// End
if($kind=='cookie')
{
$NameR='response'.$idQ;
$NameQ='question'.$idQ;
print $this->Response=$_COOKIE[$NameR];
$this->Question=$_COOKIE[$NameQ];
if(($this->Response>0)||($this->Question>0))$this->Check=false;
else $this->Check=true;
}
elseif($kind=='ip')
{
$s=mysql_query("SELECT * FROM `polls_poll` WHERE `ip`='$ip' AND `question_id`='$idQ' LIMIT 0,1");
if($s)
{
if(mysql_num_rows($s)>0)
{
$row=mysql_fetch_assoc($s);
$this->Check=false;
$this->Response=$row['response_id'];
$this->Question=$row['question_id'];
}
else $this->Check=true;
}
}
}
//// پایان
###########/ مشاهده آمار
function Result($idQ)
{
$Res='';
$idQ=intval($idQ);
$sP=mysql_query("SELECT DISTINCT `response_id` FROM `polls_poll` WHERE `question_id`= '$idQ' ");
if($sP)
{
//$this->$RNum=mysql_num_rows($sP);
while($r=mysql_fetch_assoc($sP))
{
$Res["{$r['response_id']}"]=mysql_num_rows(mysql_query("SELECT * FROM `polls_poll` WHERE `response_id`= '{$r['response_id']}' "));
}
$this->Response=$Res;
}
}
//// پایان
}
########## Class Polls
class Polls_Index
{
var $rowP='';
var $NumResponse=0;
function Polls($id)
{
$id=intval($id);
if($id>0)
{
$selP=mysql_query("SELECT * FROM `polls_question` q, `polls_response` r WHERE r.question_id=q.id && q.id='$id' ORDER BY q.id DESC, r.swich ASC");
if($selP)
{
$num=0;
$this->NumResponse=mysql_num_rows($selP);
while($Polls=mysql_fetch_array($selP))
{
$num++;
$id=$Polls[0];
$this->rowP['idQ']=$Polls[0];
$this->rowP['question']=$Polls['question'];
if($Polls['active']==0)$active='';
$this->rowP[$num]=array(
'response'=>$Polls['response'],
'swich'=>$Polls['swich'],
'idR'=>$Polls['id'],
);
}
}
}
}
}
///// End ClassHP]
این هم بخش مورد نظر در کلاس:
$NameR='response'.$idQ;
$NameQ='question'.$idQ;
print $this->Response=$_COOKIE[$NameR];
$this->Question=$_COOKIE[$NameQ];
if(($this->Response>0)||($this->Question>0))$this->Check=false;
else $this->Check=true;
اما داستان از اینجا شروع میشه که من هروقت با آزاکس میام بررسی میکنم ببینم کوکی ذخیره شده درست کار میکنه اما وقتی بدون آژآکس تیت میکنم میگه کوکی خالیه
کد تست کوکی ذخیره شده:
$ChPolls=new CheckPolls($Polls[$i]->rowP['idQ']);
if($ChPolls->Check==true)
مشکل کجاست؟:متفکر::متفکر::متفکر:: تفکر: