Сесията не се зайдейства

PHP_Masters

Registered
Правя си админ панел с логин, та когато стигна до логина и сложа $_SESSION['admin_log']=true; и не ми се задейства, а ми изписва, че съм се логнал успешно

Код:
<?php
        ob_start();
        @session_start();
        $login="admin";
        $pass="password";
        $login_name=htmlspecialchars($_POST['nick']);
        $login_pass=htmlspecialchars($_POST['pass']);
        if($_SESSION['admin_log']===true)
        {
            echo 'asdasdasd';
        }
        else
        {
            ?>
            <form action="index.php" method="POST">
            Име: <input type="text" name="nick"/><br/>
            Парола: <input type="text" name="pass"/><br/>
            <input type="submit" name="submit" value="Влез"/><br/>
            </form>
            <?php
            if(isset($_POST['submit']))
            {
                if(strlen($login_name)>3 && strlen($login_pass)>3)
                {
                    if($login_name=="admin" && $login_pass=="password")
                    {

                        $_SESSION['admin_log']=true;
                        echo 'Логнахте се успепно!';
                    }
                    else
                    {
                        echo 'Грешно име или парола';
                    }
                }
                else
                {
                    echo 'Празни полета!';
                }
            }
        }
        ?>
 
<?php
ob_start();
@session_start();
$login="admin";
$pass="password";
$login_name=htmlspecialchars($_POST['nick']);
$login_pass=htmlspecialchars($_POST['pass']);
if($_SESSION['admin_log']===true)
{
echo 'asdasdasd';
}
else
{
?>
<form action="index.php" method="POST">
Име: <input type="text" name="nick"/><br/>
Парола: <input type="text" name="pass"/><br/>
<input type="submit" name="submit" value="Влез"/><br/>
</form>
<?php
if(isset($_POST['submit']))
{
if(strlen($login_name)>3 && strlen($login_pass)>3)
{
if($login_name=="admin" && $login_pass=="password")
{

$_SESSION['admin_log']=$login_name;
echo 'Логнахте се успепно!';
}
else
{
echo 'Грешно име или парола';
}
}
else
{
echo 'Празни полета!';
}
}
}
?>
 
Може би така със заявка към базата да направиш проверката.
Това е примерен код

$result=mysql_query("select * from users where username='$user' AND password='$pass'");

//check that at least one row was returned

$rowCheck = mysql_num_rows($result);
if($rowCheck > 0){
while($row = mysql_fetch_array($result)){

//start the session and register a variable

session_start();
session_register('username');

//successful login code will go here...
echo 'Success!';

//we will redirect the user to another page where we will make sure they're logged in
header( "Location: checkLogin.php" );

}

}
else {

//if nothing is returned by the query, unsuccessful login code goes here...

echo 'Incorrect login name or password. Please try again.';
}
 
аз не искам цял логин, иначе мога да си го направя, аз просто искам админ панел, но сесията не се задейства
 
Ето

Код:
<?php
ob_start();
session_start();
$login="admin";
$pass="password";
$login_name=htmlspecialchars($_POST['nick']);
$login_pass=htmlspecialchars($_POST['pass']);
if($_SESSION['admin_log']) {
	echo 'asdasdasd';
}
else {
?>
<form action="" method="POST">
Име: <input type="text" name="nick"/><br/>
Парола: <input type="text" name="pass"/><br/>
<input type="submit" name="submit" value="Влез"/><br/>
</form>
<?php
	if(isset($_POST['submit'])) {
		if(strlen($login_name)>3 && strlen($login_pass)>3) {
			if($login_name=="admin" && $login_pass=="password") {
				$_SESSION['admin_log']=$login_name;
				echo 'Логнахте се успепно!';
			}
			else {
				echo 'Грешно име или парола';
			}
		}
		else {
			echo 'Празни полета!';
		}
	}
}
?>
 
Код:
<?php
ob_start();
session_start();
$login="admin";
$pass="password";
$login_name=htmlspecialchars($_POST['nick']);
$login_pass=htmlspecialchars($_POST['pass']);
if($_SESSION['admin_log']) {
   echo 'asdasdasd';?>
<form action="" method="POST">
<input type="submit" name="logout" value="Logout"/><br/>
</form>
   
  <?php  if(isset($_POST['logout'])) {
   	unset($_SESSION['admin_log']);
   	echo "Logged out";
   }
}
else {
?>
<form action="" method="POST">
Name: <input type="text" name="nick"/><br/>
Pass: <input type="text" name="pass"/><br/>
<input type="submit" name="submit" value="Log in"/><br/>
</form>
<?php
   if(isset($_POST['submit'])) {
      if(strlen($login_name)>3 && strlen($login_pass)>3) {
         if($login_name=="admin" && $login_pass=="password") {
            $_SESSION['admin_log']=$login_name;
            echo 'Logged in succesfuly!';
         }
         else {
            echo 'Wrong username or password';
         }
      }
      else {
         echo 'Empty fields!';
      }
   }
}
?>

Така ? Аз лично го пробвах и става.
 
CaTaHuK каза:
Ето

Код:
<?php
ob_start();
session_start();
$login="admin";
$pass="password";
$login_name=htmlspecialchars($_POST['nick']);
$login_pass=htmlspecialchars($_POST['pass']);
if($_SESSION['admin_log']) {
	echo 'asdasdasd';
}
else {
?>
<form action="" method="POST">
Име: <input type="text" name="nick"/><br/>
Парола: <input type="text" name="pass"/><br/>
<input type="submit" name="submit" value="Влез"/><br/>
</form>
<?php
	if(isset($_POST['submit'])) {
		if(strlen($login_name)>3 && strlen($login_pass)>3) {
			if($login_name=="admin" && $login_pass=="password") {
				$_SESSION['admin_log']=$login_name;
				echo 'Логнахте се успепно!';
			}
			else {
				echo 'Грешно име или парола';
			}
		}
		else {
			echo 'Празни полета!';
		}
	}
}
?>

След като се логнеш дай рефреш и ще видиш, че ще ти изкара
echo 'asdasdasd';
 
PHPclown каза:
Код:
<?php
ob_start();
session_start();
$login="admin";
$pass="password";
$login_name=htmlspecialchars($_POST['nick']);
$login_pass=htmlspecialchars($_POST['pass']);
if($_SESSION['admin_log']) {
   echo 'asdasdasd';?>
<form action="" method="POST">
<input type="submit" name="logout" value="Logout"/><br/>
</form>
   
  <?php  if(isset($_POST['logout'])) {
   	unset($_SESSION['admin_log']);
   	echo "Logged out";
   }
}
else {
?>
<form action="" method="POST">
Name: <input type="text" name="nick"/><br/>
Pass: <input type="text" name="pass"/><br/>
<input type="submit" name="submit" value="Log in"/><br/>
</form>
<?php
   if(isset($_POST['submit'])) {
      if(strlen($login_name)>3 && strlen($login_pass)>3) {
         if($login_name=="admin" && $login_pass=="password") {
            $_SESSION['admin_log']=$login_name;
            echo 'Logged in succesfuly!';
         }
         else {
            echo 'Wrong username or password';
         }
      }
      else {
         echo 'Empty fields!';
      }
   }
}
?>

Така ? Аз лично го пробвах и става.

не съм го пробвал, защото сега съм на друг компютър, та като работи какво направи, за да проработи
 
Код:
	 <?php
        session_start();
        ob_start();
        $login="admin";
        $pass="password";
        $login_name=htmlspecialchars($_POST['nick']);
        $login_pass=htmlspecialchars($_POST['pass']);
        if($_SESSION['admin_log']==true)
        {
            echo 'SESSION EXISTS :) ';
        }
        else
        {
            ?>
            <form action="index.php" method="POST">
            Име: <input type="text" name="nick"/><br/>
            Парола: <input type="text" name="pass"/><br/>
            <input type="submit" name="submit" value="Влез"/><br/>
            </form>
            <?php
            if(isset($_POST['submit']))
            {
                if(strlen($login_name)>3 && strlen($login_pass)>3)
                {
                    if($login_name=="admin" && $login_pass=="password")
                    {

                        $_SESSION['admin_log']=true;
                        echo 'Логнахте се успепно!';
                    }
                    else
                    {
                        echo 'Грешно име или парола';
                    }
                }
                else
                {
                    echo 'Празни полета!';
                }
            }
        }
        ?>
 
олеле, то моя код си е бил работил през цялото време, само е трябвало да се даде рефреш
 

Back
Горе