Проблем с един код за вход.

topchokt

Registered
Здравейте.
Правя едно админ панелче и реших да използвал една система за вход/изход, за да може лесно да добавям администратори, но имам проблем. Когато се логна ми изписва, че съм логнат, когато отида в страница където вече би трябвало да имам достъп, ми извежда съобщение, че не съм логнат.
Та, формата за вход е:
PHP:
  <?php 


//This displays your login form 
function index(){ 

echo "
<form action='?act=login' id='form1' name='form1' method='post' > 
    	    <p> 
    	      <label><strong>Администраторско име</strong> 
<input type='text' name='adminname' class='fields' id='textfield' /> 
    	      </label> 
  	      </p> 
    	    <p> 
    	      <label><strong>Парола</strong> 
  <input type='password' name='password' class='fields' id='textfield2' /> 
  	        </label> 
    	    </p> 
			<input   type='submit' class='button' value='Влез'>
    		 
             <label> 
             </label>            
    	  </form>
"; 

} 

//This function will find and checks if your data is correct 
function login(){ 

//Collect your info from login form 
$adminname = $_REQUEST['adminname']; 
$password = $_REQUEST['password']; 


//Connecting to database 
$connect = mysql_connect("localhost", "*****", "*****"); 
if(!$connect){ 
die(mysql_error()); 
} 

//Selecting database 
$select_db = mysql_select_db("*******"); 
if(!$select_db){ 
die(mysql_error()); 
} 

//Find if entered data is correct 

$result = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND password='$password'"); 
$row = mysql_fetch_array($result); 
$id = $row['id']; 

$select_user = mysql_query("SELECT * FROM administrators WHERE id='$id'"); 
$row2 = mysql_fetch_array($select_user); 
$user = $row2['adminname']; 

if($adminname != $user){ 
die("Грешно потребителско име!"); 
} 


$pass_check = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id'"); 
$row3 = mysql_fetch_array($pass_check); 
$email = $row3['email']; 
$select_pass = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id' AND email='$email'"); 
$row4 = mysql_fetch_array($select_pass); 
$real_password = $row4['password']; 

if($password != $real_password){ 
die("Грешна парола!"); 
} 



//Now if everything is correct let's finish his/her/its login 

session_register("adminname", $adminname); 
session_register("password", $password); 

echo "Здравей, ".$adminname." цъкни  <a href=test.php>тук</a> за да отидеш в админ панела."; 




} 

switch($act){ 

default; 
index(); 
break; 

case "login"; 
login(); 
break; 

} 
?>

Ето и кода в страниците, който проверява дали съм логнат:
PHP:
<?php
session_start();
$adminname = $_SESSION['adminname']; 
$password = $_SESSION['password']; 

//Check do we have username and password 
if(!$adminname && !$password){ 
die('
<html xmlns="http://www.w3.org/1999/xhtml">


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Достъп отказан!</title>


    

 





<link href="style/noaccess.css" rel="stylesheet" type="text/css" />
</head>
<body>
Не сте логнат!
</body>
</head>
');
}
?>

Странното е, че преди време кода си работеше, а сега НЕ.
Благодаря предварително за помощта.
 
PHP:
  <?php 


//This displays your login form 
function index(){ 

echo "
<form action='?act=login' id='form1' name='form1' method='post' > 
            <p> 
              <label><strong>Администраторско име</strong> 
<input type='text' name='adminname' class='fields' id='textfield' /> 
              </label> 
              </p> 
            <p> 
              <label><strong>Парола</strong> 
  <input type='password' name='password' class='fields' id='textfield2' /> 
                </label> 
            </p> 
                        <input   type='submit' class='button' value='Влез'>
                 
             <label> 
             </label>            
          </form>
"; 

} 

//This function will find and checks if your data is correct 
function login(){ 

//Collect your info from login form 
$adminname = $_REQUEST['adminname']; 
$password = $_REQUEST['password']; 


//Connecting to database 
$connect = mysql_connect("localhost", "*****", "*****"); 
if(!$connect){ 
die(mysql_error()); 
} 

//Selecting database 
$select_db = mysql_select_db("*******"); 
if(!$select_db){ 
die(mysql_error()); 
} 

//Find if entered data is correct 

$result = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND password='$password'"); 
$row = mysql_fetch_array($result); 
$id = $row['id']; 

$select_user = mysql_query("SELECT * FROM administrators WHERE id='$id'"); 
$row2 = mysql_fetch_array($select_user); 
$user = $row2['adminname']; 

if($adminname != $user){ 
die("Грешно потребителско име!"); 
} 


$pass_check = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id'"); 
$row3 = mysql_fetch_array($pass_check); 
$email = $row3['email']; 
$select_pass = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id' AND email='$email'"); 
$row4 = mysql_fetch_array($select_pass); 
$real_password = $row4['password']; 

if($password != $real_password){ 
die("Грешна парола!"); 
} 



//Now if everything is correct let's finish his/her/its login 

$_SESSION['adminane'] = $adminname;
$_SESSION['password'] = $password;

echo "Здравей, ".$adminname." цъкни  <a href=test.php>тук</a> за да отидеш в админ панела."; 




} 

switch($act){ 

default; 
index(); 
break; 

case "login"; 
login(); 
break; 

} 
?>
 
PHP:
  <?php 


//This displays your login form 
function index(){ 

echo "
<form action='?act=login' id='form1' name='form1' method='post' > 
            <p> 
              <label><strong>Администраторско име</strong> 
<input type='text' name='adminname' class='fields' id='textfield' /> 
              </label> 
              </p> 
            <p> 
              <label><strong>Парола</strong> 
  <input type='password' name='password' class='fields' id='textfield2' /> 
                </label> 
            </p> 
                        <input   type='submit' class='button' value='Влез'>
                 
             <label> 
             </label>            
          </form>
"; 

} 

//This function will find and checks if your data is correct 
function login(){ 

//Collect your info from login form 
$adminname = $_REQUEST['adminname']; 
$password = $_REQUEST['password']; 


//Connecting to database 
$connect = mysql_connect("localhost", "*****", "*****"); 
if(!$connect){ 
die(mysql_error()); 
} 

//Selecting database 
$select_db = mysql_select_db("*******"); 
if(!$select_db){ 
die(mysql_error()); 
} 

//Find if entered data is correct 

$result = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND password='$password'"); 
$row = mysql_fetch_array($result); 
$id = $row['id']; 

$select_user = mysql_query("SELECT * FROM administrators WHERE id='$id'"); 
$row2 = mysql_fetch_array($select_user); 
$user = $row2['adminname']; 

if($adminname != $user){ 
die("Грешно потребителско име!"); 
} 


$pass_check = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id'"); 
$row3 = mysql_fetch_array($pass_check); 
$email = $row3['email']; 
$select_pass = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id' AND email='$email'"); 
$row4 = mysql_fetch_array($select_pass); 
$real_password = $row4['password']; 

if($password != $real_password){ 
die("Грешна парола!"); 
} 



//Now if everything is correct let's finish his/her/its login 

session_register("adminname", $adminname); 
session_register("password", $password); 

echo "Здравей, ".$adminname." цъкни  <a href=test.php>тук</a> за да отидеш в админ панела."; 




} 

switch($act){ 

default; 
index(); 
break; 

case "login";
echo $_SESSION['adminname'] . ' - ' . $_SESSION['password']; 
login(); 
break; 

} 
?>
Така какво ти изкарва когато напишеш името и паролата и пак се върнеш в страницата за вход?
 
PHP:
<?php 
session_start();

//This displays your login form 
function index(){ 

echo "
<form action='?act=login' id='form1' name='form1' method='post' > 
            <p> 
              <label><strong>Администраторско име</strong> 
<input type='text' name='adminname' class='fields' id='textfield' /> 
              </label> 
              </p> 
            <p> 
              <label><strong>Парола</strong> 
  <input type='password' name='password' class='fields' id='textfield2' /> 
                </label> 
            </p> 
                        <input   type='submit' class='button' value='Влез'>
                 
             <label> 
             </label>            
          </form>
"; 

} 

//This function will find and checks if your data is correct 
function login(){ 

//Collect your info from login form 
$adminname = $_REQUEST['adminname']; 
$password = $_REQUEST['password']; 


//Connecting to database 
$connect = mysql_connect("localhost", "*****", "*****"); 
if(!$connect){ 
die(mysql_error()); 
} 

//Selecting database 
$select_db = mysql_select_db("*******"); 
if(!$select_db){ 
die(mysql_error()); 
} 

//Find if entered data is correct 

$result = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND password='$password'"); 
$row = mysql_fetch_array($result); 
$id = $row['id']; 

$select_user = mysql_query("SELECT * FROM administrators WHERE id='$id'"); 
$row2 = mysql_fetch_array($select_user); 
$user = $row2['adminname']; 

if($adminname != $user){ 
die("Грешно потребителско име!"); 
} 


$pass_check = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id'"); 
$row3 = mysql_fetch_array($pass_check); 
$email = $row3['email']; 
$select_pass = mysql_query("SELECT * FROM administrators WHERE adminname='$adminname' AND id='$id' AND email='$email'"); 
$row4 = mysql_fetch_array($select_pass); 
$real_password = $row4['password']; 

if($password != $real_password){ 
die("Грешна парола!"); 
} 



//Now if everything is correct let's finish his/her/its login 

$_SESSION['adminname'] = $adminname; 
$_SESSION['password'] = $password; 

echo "Здравей, ".$adminname." цъкни  <a href=test.php>тук</a> за да отидеш в админ панела."; 




} 

switch($act){ 

default; 
index(); 
break; 
case "login";
login(); 
break; 

} 
?>
session_register вече от PHP 5+ не се използва.

П.П. Иво ме е изпреварил с едното. :/
 
ivo_pi4a каза:
Стартирал ли си сесията където извикваш логина ?
Аз бях е стартирал, като в началото бях добавил
PHP:
<?php
session_start();
?>
, но не работеше.
Сега преместиш session_start(); във вход за логин и системката проработи.
Точно това, което е направил и Ev0luti0N.
Лесно решение, но кой да се сети по-рано.
Благодаря Ви все пак :).
 

Back
Горе