[PHP] Sesje - opera i mozilla lapie a IE nie

0

Dziwny problem - Mozilla i Opera lapia mi sesje a IE sie wywala i wyrzuca komunikat 'Wszystkie pola wymagane'. Co jest grane ?

<?

$db = mysql_connect('localhost','root','krasnal');
if (!$db)
{
  	echo ('Wystapil blad w polaczeniu z baza danych<br />');
	  	exit;
		}
  mysql_select_db('syslog');
  if(!empty($_POST)){
    	if((isset($_POST["login"])) && (isset($_POST["haslo"])))
	    	{
		      	$_SESSION["admin"][0] = $_POST["login"];
			$_SESSION["admin"][1] = $_POST["haslo"];

			}
		}
if(!empty($_GET)){
  	if(isset($_GET["admin"]))
	  	{
		    	$_SESSION["admin"][0] = '';
    			$_SESSION["admin"][1] = '';
    			echo 'dupa2';
			    	}
    		}
$admin_login = $_SESSION["admin"][0];
$admin_haslo = $_SESSION["admin"][1];

$wynik=mysql_query("SELECT * FROM ls_users WHERE login = '$admin_login' AND haslo = PASSWORD('$admin_haslo')");

if((mysql_num_rows($wynik) > 0) && ($admin_login=='admin' && $admin_haslo=='stg'))
{
	session_start();
	$_SESSION["admin"][0] = $admin_login;
	$_SESSION["admin"][1] = $admin_haslo;
	$_SESSION['zalogowany'] = $_POST['login'];
	echo '<meta http-equiv="refresh" content="1; app.php "> ';
	}else if( (!$_SESSION["admin"] && !$_SESSION["admin"])||(!$_SESSION["admin"]|| !$_SESSION["admin"])) { 
                    echo 'Wszystkie pola wymagane';
    }else if (mysql_num_rows($wynik) == 0){
          echo 'nieprawidlowe haslo';
          echo $_SESSION["admin"][0];
    } else {
        session_start();
        $_SESSION["admin"][0] = $admin_login;
		    $_SESSION["admin"][1] = $admin_haslo;
		    $_SESSION['zalogowany'] = $_POST['login'];
		echo '<META HTTP-EQUIV="refresh" CONTENT="1; app_user.php ">';
		  }


?>

0

((!$_SESSION["admin"] && !$_SESSION["admin"])||(!$_SESSION["admin"]|| !$_SESSION["admin"]))
cóżto za twór o_O

session_start(); daj na samym początku pliku php

0
tomkiewicz napisał(a)

((!$_SESSION["admin"] && !$_SESSION["admin"])||(!$_SESSION["admin"]|| !$_SESSION["admin"]))
cóżto za twór o_O

to juz bylo w najwyzszyma akcie desperacji - myslalem ze problem lezy w sesjach a tak nie bylo. Co do tej linijki to pierwotnie wygladala ona:

( ($admin_login=='' && $admin_haslo=='')||($admin_login=='' || $admin_haslo==''))

A rozwiazanie problemu naszlo mnie gdy sie przeszedlem a po powrocie strzelilem kawe:
otoz IE nieczai meta refreshow jesli nie sa na poczatku w sekcje head, tutaj dobrym rozwiazaniem okazalo sie uzycie:

$host  = $_SERVER['HTTP_HOST'];
    $uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
    $extra = "app_user.php?sid=".SID;
    header("Location: http://$host$uri/$extra");
		exit;

to mnie poratowalo (php.net jak zawsze rzadzi) - poczatkowo zamiast metarefreshu wrzucilem include(), ale sesja niebyla przekazywana wiec dla jej przekazania posluzylem sie headerem i zmienna sid.

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