[PHP] niepoprawnie dzialajace sesje pod IE

0

Witam!

Mam taki problem:

Chcialbym napisac sobie strone wykorzystujaca mechanizm sesji. Jako przyklad niech posluzy skrypt logowania ponizej:

<?php
    $LOGIN="foo";
	$HASLO="bar";
	session_start();
	if (isset($_SESSION['zalogowano'])) {
	    $zalogowano=1;
		$login=$_SESSION['login'];
	} else {
	    if ($_POST['login']==$LOGIN && $_POST['haslo']==$HASLO) {
		   $zalogowano=1;
		   $login=$_POST['login'];
		   $_SESSION['zalogowano']=1;
		   $_SESSION['login']=$_POST['login'];
		} else if ($_POST['przeslano']==1){
		   $zalogowano=0;
		   $komunikat="Podano nieprawidłowe hasło i/lub login!";
		}
	}
	
	if (isset($_GET['wyloguj'])) {
	   $_SESSION=array();
	   session_destroy();
	   $zalogowano=0;
	   $komunikat="Wylogowano!";
	}
	
?>
<!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>LOGOWANIE</title>
</head>
<body>
<form action="index.php" method="post">
login: <input name="login" type="text" /><br/>
hasło: <input name="haslo" type="password" /><br/>
<input type="hidden" name="przeslano" value="1"/>
<input name="" type="submit" value="prześlij" />
</form>
<br/>
<form action="index.php" method="get">
<input type="hidden" name="wyloguj" value="1" />
<input type="hidden" name="przeslano" value="1"/>
<input name="" type="submit" value="wyloguj" />
</form>
<br/>
<?php
if ($zalogowano==1) {
   echo "Witaj $login!";
} else  if ($zalogowano==0){
   echo $komunikat;
}
?>
<br/><br/>
<a href='index.php?pokaz=news'>news</a><br/>
<a href='index.php?pokaz=inne'>inne</a><br/>

<?php
if (isset($_REQUEST['pokaz'])) {
   echo $_REQUEST['pokaz'];
}
?>
</body>
</html>

kiedy odpalam strone na localhost dziala zarowno pod FF jak i pod IE. Kiedy wgrywam plik na serwer pod FF nadal dziala, pod IE dziala niepoprawnie, tzn. po zalogowaniu wyswietla sie komunikat "witaj foo" jednak po odswiezeniu strony znika, a z nim znikaja zmienne sesji. Podejrzewam, ze to problem serwera (bo na innych dziala pod IE). Chcialbym zapytac:

  1. Czy ktos z Was mial podobne problemy i czy Wiecie czym jest on spowodowany?
  2. Czy Wiecie moze jak rozwiazac/obejsc ten problem?
0

stworz katalog tmp :)

ewentualnie poczytaj o session_save_path

0

sprobowalem dodac kod:

session_save_path($_SERVER['DOCUMENT_ROOT']."/session_tmp");

i stworzyc odpowiedni katalog na serwerze, jednak to nic nie dalo. Jak nie dzialalo pod IE, tak nie dziala...

0

Ku chwale Microsoftu!

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');

Trzeba wielu trudów, żeby pisać aplikacje tak, żeby nie mogły one po prostu działać :)

edit: oczywiście dodaj to na samym początku skryptu.

0

ponownie nic :( jak nie dzialalo, tak nie dziala...

0

na jednej ze stron mi się IE uparło pomimo tego, ale nie mam teraz dostępu do kodu, na chatę wracam w czwartek wieczorem, wtedy będę się mógł podzielić solucją

1 użytkowników online, w tym zalogowanych: 0, gości: 1