Beste mensen, in mijn volgende code werken de sessions in Internet Explorer niet. Ik heb in elke pagina die session_start() uitgevoerd dus ik snap er echt helemaal niks meer van..


<?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 if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Internet Explorer') )
   {
     $browser = 'Explorer';
   }
}
else
{
   $browser = 'Others browsers';
}


$_SESSION['Ibrowser'] = $browser;
?>
&&&
<?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']; ?>';
	
	/*alert("hello world");*/
	if(browser == "")
	{
		alert("session is leeg");
	}
}
</script>


Bij Chrome, Safari en FF werkt het wel allemaal. Zou iemand kunnen helpen aub?

Ik denk eerder dat er wordt gecontroleerd of de browser Javascript ondersteund, niet of het aan of uit staat.

Lynx bijv. als text-browser zal ongetwijfeld niks met JS doen.
@Aar: ah zo... jammer, dan heb je er niet heel veel aan.
PHP kan eenmaal niet zien of iets bij de client aan/uit staat.
[offtopic]@Aar, voor de volledigheid zou je zin een kleine toevoeging moeten krijgen: "PHP (Server-side) kan eenmaal niet zien of iets bij de bezoeker (Client-side) aan/uit staat."[/offtopic]
Ja, klopt inderdaad. Thanks, mijn vraag is beantwoord.

Nu weer ontopic...
Heey bedankt iedereen, ik heb de instellingen voor de Cookies en session enzo juist minder beveiligd zodat dit zou werken, maar dat is het geval dus niet. ik ben er nog steeds niet uit wat nou het probleem zou kunnen zijn...
toon nog eens je aangepaste code
Je roept session_start() twee keer aan. Een keer in het script zelf en een keer in het aangeroepen browser.php. Dat is in elk geval geen goed begin. Vanuit de php manual:


As of PHP 4.3.3, calling session_start() after the session was previously started will result in an error of level E_NOTICE. Also, the second session start will simply be ignored.


De session_start() in browser.php weghalen dus. Of het helemaal je probleem verhelpt durf ik niet te zeggen.
in Browser.php is eigelijk alleen dit aangepast:
else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') )
{
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') )
{
$browser = 'Opera ';
}
else
{
$browser = 'Explorer';
}

voor print.php:
?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>

ik heb gister ook nog met een collega van mij eraan zitten puzzelen maar zelfs hij zij dat er eigelijk niks mis is met mijn script alleen werkt hij gwn niet in IE

[size=xsmall]Toevoeging op 20/01/2012 10:26:56:[/size]

bij alle andere browsers werkt het wel ook met de nu gecommente alert.
Patrick van t Hart op 19/01/2012 10:02:29

... Ik heb in elke pagina die session_start() uitgevoerd dus ik snap er echt helemaal niks meer van..


Toch even duidelijk maken: zo hoort het niet.
Je mag session_start() maar 1 keer tegen komen.
Je moet session_start() zetten bovenaan elke php-file waar mensen naartoe surfen.
Niet in include files (of juist wel in 1 include file die bij elk verzoek wordt geïnclude).
Indien de gebruiker altijd via index.php gaat, heb je session_start() maar 1 keer nodig in je hele site.

Probeer dit eens: bij mij werkt dit in alle browsers (die op deze pc zijn geïnstalleerd). Ik heb de alert's terug gezet (debug mode)

index.php

<?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>
  </head>
  <body>
    <input type="button" onclick="printTrigger(this)" value="Klik"/>
  </body>
</html>


Browser.php

<?php
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;
?>


Reageren