Авторизация пользователя только со второго раза

Select

Новичок
Вот код
PHP:
<?php 
include ("blocks/bd.php");


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[url]http://www.w3.org/TR/html4/loose.dtd[/url]">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Главная страница блока администратора</title>
<link href="style.css" rel="stylesheet" type="text/css">

<link rel="stylesheet" type="text/css" href="css/jquery.noty.css"/>

<script type="text/javascript" src="[url]https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js[/url]"></script>
<script type="text/javascript" src="js/jquery.noty.js"></script>

</head>
<body>
<?php 

   if(isset($_POST["login"]) && isset($_POST["pass"]) && $_COOKIE['pass']==true && $_COOKIE['login']==true) 
 { $login = $_POST["login"];
    $pass = $_POST["pass"];
	
 $result = mysql_query("SELECT * FROM `teachers` WHERE `login`='$login' && `pass`='$pass'  ",$db);
   $myrow = mysql_fetch_array($result);
   
  
   if(isset($myrow[name])) {
	   
   setcookie("login", $_POST['login'], time()+36000);
   setcookie("pass", $_POST['pass'], time()+36000);
   $ses=true; ?> 

<?}
   else {
?>
   <script>

var noty_id = noty({
  text: 'Вы указали неверный пароль!',
  layout: 'center',
  type:'alert',
  textAlign:'center',
  speed:'100',
  timeout:'1000'

});</script> <?
 }
 } else { 
 session_start();
   setcookie("login", true, time()+36000);
   setcookie("pass", true, time()+36000);
 }
 
if(isset($_COOKIE['login']) && isset($_COOKIE['pass']) && $_COOKIE['pass']!=1 && $_COOKIE['login']!=1 &&  $ses=true )  {

 $result = mysql_query("SELECT * FROM teachers WHERE login='$_COOKIE[login]' and pass='$_COOKIE[pass]' ",$db);
 $myrow = mysql_fetch_array($result); 
 if(isset($myrow[name]))  {
   ?> 
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
	<?php if(file_exists("blocks/header.php")){
			require_once "blocks/header.php";
		}?>
  <tr>
    <td><table width="1000" border="0" cellspacing="0" cellpadding="0">
      <tr>
<!--Подключаем левый блок сайта-->
<?php if(file_exists("blocks/lefttd.php")){
			require_once "blocks/lefttd.php";
		}?> 
        <td valign="top">
       <p>Здравствуйте,<? echo $myrow["name"]; ?> </p> 
        </td>
      </tr>
    </table></td>
  </tr>
<!--Подключаем нижний графический элемент--> 
<?php if(file_exists("blocks/footer.php")){
			require_once "blocks/footer.php";
		}
?> 
</table>
<?
}
}


else {
 
   ?>
<table width='400' border='0' align='center' bgcolor='#FFFFFF' style='margin-top:20%; border-radius:10px;
    -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Firefox */
    -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Safari и Chrome */
    box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Параметры тени */' >

<form method="post" action="index.php"  >

<tr>
<td rowspan="3"><img src="img/zamok.png" align="left" /></td>
<td>   <label for="login"><strong>Логин:</strong></label> </td>
    <td>   <input type="text" size="20" name="login" id="contactname" value="" />  </td>
  </tr>
<tr>
<td>   <label for="pass"><strong>Пароль:</strong></label>
    <td>   <input type="password" size="20" name="pass" id="email" value="" />  </td>
 </tr>

 <tr><td>  <input type="submit" value="Вход" name="submit" /></td> </tr>
  </form>
   </td></tr>
   
<?

if(isset($_POST["login"]) && isset($_POST["pass"]) && $result==false) {
	}
  ?>
</table>

<? } ?> 	
	
</body>
</html>
 

Redjik

Джедай-мастер
Да поифг, проходит же.
Напиши в форме логина, что нужно два раза заходить, типа защита от ботов.
Ни один бот такого не ожидает.

ЗЫ. Если хочешь по делу совет, используй таки теги PHP для вставки кода
 

Select

Новичок
Сделал, только вот для учителей делаю, они убьются 2 раза вводить:(
 

Вурдалак

Продвинутый новичок
Странно, я вот ввожу «' OR 1-- x» в качестве логина и «123» в качестве пароля, а мне пишут: «Здравствуйте,Ал***ева С.В». — я разве похож на Ал***еву С.В.?

В данном случае достаточно пихать session_start() в самое начало каждой страницы. При авторизации что-то записывать в $_SESSION (id пользователя, к примеру). Наличие этого id в $_SESSION и будет достаточным условием того, что пользователь прошёл авторизацию.

P.S. Выводится со второго раза, потому что ты $_COOKIE проверяешь, которые ещё не установлены на момент первой отправки логина/пароля.
 

radioheaded

PHP нуб
Почитайте, как работают куки. После установки кук нужно перезагрузить страницу, чтобы их проверить. После setcookie делайте редирект на тот же скрипт, только код слегка по-другому надо будет организовать.
 
Сверху