avatar

MS IE 8 не работет реффер $_SERVER['HTTP_REFERER'] PHP

Рейтинг 3.7 из 5. Голосов: 227
Den 7 лет назад
3
,

0


Ответы (3)

Den
avatar
Модератор За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений за 500 сообщений За 700 сообщений №1 по сообщениям
1026 Mar 10
7 лет назад
MS IE 8 не работет реффер $_SERVER['HTTP_REFERER'] PHPхотел использовать изменение сессии для хранения дат, с изменением по урл,но в ие 8 почему то пустое значение $_SERVER['HTTP_REFERER'] как мне получить это значение вот код
PHP:
$URL=$_SERVER['HTTP_REFERER'];увы, но ие 8 не передает рефер по джавескрипту$strainer1='';$strainer2=''; $strainer3='';$namepage=$_GET['page']; if ( strpos($namepage,"news")===FALSE ){$thisnews=0;}else{$thisnews=1;} if ((isset($_SESSION['show_top_year'])) and (isset($_SESSION['show_top_month'])) ){}else {$user_day =-2;} if (isset($_SESSION['show_top_year'])) { $user_year = $_SESSION['show_top_year']; } else {$user_year = date("Y"); $_SESSION['show_top_year'] = date("Y");} if (isset($_SESSION['show_top_month'])) { $user_month = $_SESSION['show_top_month']; }else {$user_month = date("m");$_SESSION['show_top_month'] = date("m");} if (($_SESSION['show_top_day'])<>'') { $user_day = $_SESSION['show_top_day'];} else {$user_day = date("d");$_SESSION['show_top_day'] = date("d");}// if ( $user_year==0){$user_year =1 ; } if ( $user_month==0){ $user_month =1 ; } if ( $user_day==0){ $user_day =0 ; }/**/ $month_arr = array(1 => 'Январь',2 => 'Февраль',3 => 'Март',4 => 'Апрель',5 => 'Май',6 => 'Июнь',7 => 'Июль',8 => 'Август',9 => 'Сентябрь',10 => 'Октябрь',11 => 'Ноябрь',12 => 'Декабрь');$max_day = array(1 => 31,2 => 28,3 => 31,4 => 30,5 => 31,6 => 30,7 => 31,8 => 31,9 => 30,10 => 31,11 => 30,12 => 31); if (checkdate(2, 29, $user_year))$max_day[2]=29; else $max_day[2]=28; // а какой это у нас год? =)//проверим высокостный ли год на PHP $day_arr = array (); if (isset($_SESSION['show_top_month']) ) { $day_arr[0] ='Любая'; for($i= 1;$i<$max_day [$user_month]+1;$i++){ $day_arr[$i] = $i; } $user_day = $_SESSION['show_top_day']; if ($user_day<=0){$user_day=0;} } if ( ($user_month== date("m") ) and ($user_year== date("Y") )) { unset($day_arr) ; $day_arr = array (); $day_arr[-2] ='Сегодня'; $day_arr[-1] ='Вчера'; for($i= date("d")-2;$i>0;$i--){ $day_arr[$i] = $i; } $user_day = $_SESSION['show_top_day']; } else { }$query =' SELECT min( YEAR (`news_date`)) as minyear FROM `module_news`;$row = $db->GetRow($query); if ($row) $minyear = $row['minyear']; else $minyear= date("Y"); $year_arr = array (); /* date("Y")-2 заменит на мин год новости запросом в бд*/ for($i= date("Y");$i>$minyear-1;$i--) { $year_arr[$i] = $i; } if (($user_day=='')and ($user_month!= date("m") ) and ($user_year!= date("Y") )) { $user_day = 0 ;}//// select для дня if ($thisnews==1) {$strainer1.= "<select id='day' onchange="location='/'+this.value">";} else { $strainer1.= "<select id='day' onchange="location=window.location.pathname+this.value">";} foreach($day_arr as $day_nom=>$day_name) {$strainer1.= "<option value='?show_top_day=$day_nom' ".( $day_nom==$user_day ? "selected=selected" : NULL ).">$day_name</option>"; } $strainer1.="</select>";// select для месяца if ($thisnews==1) {$strainer2.= "<select id='month' onchange="location='/'+this.value">";} else { $strainer2.= "<select id='month' onchange="location=window.location.pathname+this.value">";} foreach($month_arr as $month_nom=>$month_name) {if (!( ($user_month== date("m") ) and ($user_year== date("Y") )) ) {$strainer2.= "<option value='?show_top_month=$month_nom' ".( $month_nom==$user_month ? "selected=selected" : NULL ).">$month_name</option>"; } else {$strainer2.= "<option value='?show_top_month=$month_nom' ".($month_nom==$user_month ? "selected=selected" : NULL ).">$month_name</option>"; } } $strainer2.="</select>"; // select для года if ($thisnews==1) { $strainer3.= "<select id='year' onchange="location='/'+this.value">";} else { $strainer3.= "<select id='year' onchange="location=window.location.pathname+this.value">";} foreach($year_arr as $year_nom=>$year_name) {$strainer3.= "<option value='?show_top_year=$year_nom' ".( $year_nom==$user_year ? "selected=selected" : NULL ).">$year_name</option>"; } $strainer3.="</select>";if( isset( $_GET['show_top_year'] )){ $TrueDate=$_SESSION['show_top_day']; if ( $_SESSION['show_top_day']== 0) $TrueDate= date("d"); if ( $_SESSION['show_top_day'] == -1) $TrueDate= date("d")-1; if ( $_SESSION['show_top_day'] == -2) $TrueDate= date("d")-2; if (!checkdate($_SESSION['show_top_month'],$TrueDate, $_GET['show_top_year'])) { $_SESSION['show_top_day'] = 0 ; $_GET['show_top_year'] =date("Y");} // die($TrueDate. $_SESSION['show_top_day'] ); $_SESSION['show_top_year'] = $_GET['show_top_year'] ; // if (strpos($URL, "?show_top_year=")>0) $URL= substr($URL,0,strpos($URL, "?show_top_year=")); $pos=strpos($URL, "?show_top_year="); if ($pos>0) $URL= substr($URL,0,$pos); if ($URL<>'') header ("Location: ". $URL); }if( isset( $_GET['show_top_month'] )){ $TrueDate=$_SESSION['show_top_day']; if ( $_SESSION['show_top_day'] == 0) $TrueDate= date("d"); if ( $_SESSION['show_top_day'] == -1) $TrueDate= date("d")-1; if ( $_SESSION['show_top_day'] == -2) $TrueDate= date("d")-2; if (!checkdate( $_GET['show_top_month'],$TrueDate, $_SESSION['show_top_year'])) { $_SESSION['show_top_day'] = 0 ; $_GET['show_top_month'] =date("m"); } $_SESSION['show_top_month'] = $_GET['show_top_month'] ; $pos=strpos($URL, "?show_top_month="); if ($pos>0) $URL= substr($URL,0,$pos); //if (strpos($URL, "?show_top_month=")>0) $URL= substr($URL,0,strpos($URL, "?show_top_month=")); if ($URL<>'') header ("Location: ". $URL); } if( isset( $_GET['show_top_day'] )){ $TrueDate=$_GET['show_top_day']; if ( $_GET['show_top_day'] == 0) $TrueDate= date("d"); if ( $_GET['show_top_day'] == -1) $TrueDate= date("d")-1; if ( $_GET['show_top_day'] == -2) $TrueDate= date("d")-2; if (!checkdate($_SESSION['show_top_month'], $TrueDate, $_SESSION['show_top_year'])) {// $_GET['show_top_day'] =$TrueDate; $_SESSION['show_top_day'] = 0 ; } else $_SESSION['show_top_day'] = $_GET['show_top_day'] ; $pos=strpos($URL, "?show_top_day="); if ($pos>0) $URL= substr($URL,0,$pos); if ($URL<>'') header ("Location: ". $URL); }
отправить
+ 0

Redy
avatar
За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений за 500 сообщений
503 Mar 10
7 лет назад
универсальный способ определения реферра для осликов 8 ие добавите в начала кода
PHP:
// получим полный урл текущей страницыfunction current_page_url(){ $page_url = 'http'; if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){ $page_url .= 's'; } return $page_url.'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];}//если сессия была начатаif(isset($_SESSION['referrer'])){ // получим существующий рефер $referrer = $_SESSION['referrer'];} elseif(isset($_SERVER['HTTP_REFERER'])){ // использууем полученный рефер $referrer = $_SERVER['HTTP_REFERER'];} else { // нет рефера}$URL=$referrer ;// $_SERVER['HTTP_REFERER'];увы, но ие 8 не передает рефер по джавескрипту// сохраним текущую страницу как рефер для следующей$_SESSION['referrer'] = current_page_url();
отправить
+ 0

Den
avatar
Модератор За 6 месяцев на форуме За год на форуме За два года на форуме за 10 сообщений За 100 сообщений за 500 сообщений За 700 сообщений №1 по сообщениям
1026 Mar 10
7 лет назад
а это условия для выбора новостей за сегодня, вчера,и за определенный день, в зависимости от значения переменных фильтра сессий на php
PHP:
if ( ($_SESSION['show_top_day']==0)) // любая { } if (($_SESSION['show_top_day']==-2)) // СЕГОДНЯ { $query1 .= " AND (DAY( news_date ) = DAY( CURDATE()) ) "; $query2 .= " AND (DAY( news_date ) = DAY( CURDATE()) ) "; $stainer_date.=" AND (DAY( news_date ) = DAY( CURDATE()) ) "; } if($_SESSION['show_top_day']==-1) //ВЧЕРА { $query1 .= " AND (DAY( news_date )= DAY( (CURDATE()-1)) ) "; $query2 .= " AND (DAY( news_date )= DAY( (CURDATE()-1)) ) "; $stainer_date.= " AND (DAY( news_date )= DAY( (CURDATE()-1)) ) "; } if(( $_SESSION['show_top_day']) and($_SESSION['show_top_day']>0) ) { $query1 .= " AND ( DAY( news_date ) = '".$_SESSION['show_top_day']."')"; $query2 .= " AND ( DAY( news_date ) = '".$_SESSION['show_top_day']."')"; $stainer_date.=" AND ( DAY( news_date ) = '".$_SESSION['show_top_day']."')"; } if($_SESSION['show_top_month']>0) { $query1 .= " AND ( MONTH ( news_date ) = '".$_SESSION['show_top_month']."')"; $query2 .= " AND ( MONTH ( news_date ) = '".$_SESSION['show_top_month']."')"; $stainer_date.= " AND ( MONTH ( news_date ) = '".$_SESSION['show_top_month']."')"; } if($_SESSION['show_top_year']>1) { $query1 .= " AND ( YEAR ( news_date ) = '".$_SESSION['show_top_year']."')"; $query2 .= " AND ( YEAR ( news_date ) = '".$_SESSION['show_top_year']."')"; $stainer_date.= " AND ( YEAR ( news_date ) = '".$_SESSION['show_top_year']."')"; } }// конец only_today $_SESSION['stainer_date'] =$stainer_date; } // end strainer
отправить
+ 0


Чтобы оставить комментарий войдите или зарегистрируйтесь