2012-01-20 67 views
3

嘿人,在下面的代码中,我的会话在IE中不工作。我不知道为什么导致我没有什么不对。PHP会话不能在IE中工作

browser.php //此处的PHP查找什么浏览器打开的页面上:

<?php 
session_start(); 


if (strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko')) 
{ 
    if (strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape')) 
    { 
    $browser = 'Netscape '; 
    } 
    else if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox')) 
    { 
    $browser = 'Firefox'; 
    } 
    else if(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')) 
    { 
     $browser = 'Chrome'; 
    } 
    else if (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari')) 
    { 
    $browser = 'Safari'; 
    } 
} 
else if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) 
{ 
    if (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera')) 
    { 
    $browser = 'Opera '; 
    } 
    else 
    { 
    $browser = 'Explorer'; 
    } 

} 
else 
{ 
    $browser = 'Others browsers'; 
} 


$_SESSION['Ibrowser'] = $browser; 
?> 

Print.php //这是一个网页,我想打印PDF由于iFrame的

<?php 
session_start(); 
include("Browser.php"); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>wk demo</title> 
<link href="css/main.css" rel="stylesheet" type="text/css" /> 
<script language="javascript"> 
function printTrigger(elementId) 
{ 
    var browser = '<?php echo $_SESSION['Ibrowser']; ?>'; 
    var iFramePdf = elementId; 
    /*alert("hello world");*/ 
    if(browser == "") 
    { 
     alert("session is leeg"); 
    } 
    else 
    { 
     if(browser == 'Explorer') 
     { 
      //alert("IE"); 
      window.frames[iFramePdf].focus(); 
      window.frames[iFramePdf].print();   
     } 
     else if(browser == 'Safari') 
     { 
      //alert("Safari"); 
      window.frames[iFramePdf].focus(); 
      window.frames[iFramePdf].print();   
     } 
     else if(browser == 'Chrome') 
     { 
      //alert("Chrome"); 
      var getMyFrame = document.getElementById(elementId); 
      getMyFrame.focus(); 
      getMyFrame.contentWindow.print(); 
     } 
     else if(browser == 'Firefox') 
     { 
      //alert("Firefox"); 
      window.open('http://62291.ict-lab.nl/Stage/VDMdm/pdf.php'); 
     } 
     else 
     { 
      alert("Onbekende Browser"); 
     } 
    }  
} 
</script> 
+0

它在IE中做错了什么? –

+0

你确定,你包含的文件** Browser.php **不是** browser.php **? –

+0

如何删除歌剧结束时的空间$ browser ='Opera'; ' – rauschen

回答

4

由于P3P (Platform for Privacy Preferences)的原因,IE对cookies和处理iFrames有问题。一个solution我发现是包括使用cookie每一页这个头:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 

给一个尝试,让我知道如何去。

+1

解决了我的问题,非常感谢!但是,这可能值得在这里查看:http://www.p3pwriter.com/lrn_111.asp究竟是什么标题代码的意思。您不希望宣布有关您的隐私政策的事实并非如此。最初我复制并粘贴了这个,但研究发现的代码后,我只需要:header('P3P:CP =“NOI NID”'); - 因为我的网站没有收集任何可识别信息 – 2013-10-15 10:35:59

+0

好点!我很高兴你能解决你的问题。 –