Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 03:57   #1
serres
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 77
По умолчанию по два клика

PHP код:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<?
ini_set
('display_errors',true);
error_reporting(E_ALL);
include 
"modules/db_conn.php";
session_start();

if (isset(
$_SESSION['user_id']))
{
    
exitForm();
    
}
else
{
    
authForm();
}

    function 
authForm ()
    {
?>
        <form action="" method=POST>
            <table>
                <tr>
                    <td>Логин</td>
                    <td><input type=text name=login></td>
        </tr>
        <tr>
                    <td>Пароль</td>
                    <td><input type=password name=password></td>
        </tr>
        <tr>
                    <td><input type=submit name="auth" value=Потвердить></td>
        </tr>
            </table>
    </form>
        <?
        
if(isset ($_POST['login']) && isset ($_POST['password']) && $_POST['login'] && $_POST['password'])
        {
            
$query "SELECT * FROM `user_t` WHERE `user_login` = '".$_POST['login']."' LIMIT 1";
            
$q_login mysql_query($query);
            
$count mysql_num_rows($q_login);
            if (
$count<0)
            {
                print (
"Логин или пароль введен не верно!!!");
            }
            else
            {
                
$r mysql_fetch_assoc($q_login);
                if (
$r['user_password'] != MD5($_POST['password']))
                {
                    print (
"Логин или пароль введен не верно!!!");
                }
                else
                {
                    
$_SESSION['user_id'] = $r['user_id'];
                    
$_SESSION['user_name'] = $r['user_name'];
                    
$_SESSION['user_surname'] = $r['user_surname'];
                    
$_SESSION['user_type'] = $r['user_type'];
                }
            }
        }
    }

    function 
exitForm()
    {
        
?><form action="" method=POST>
            <input type="submit" name="exit" value="Выйти">
        </form><?
        
        
if (isset($_POST['exit']) && $_POST['exit'])
        {
            
session_unset();
        }
    }
почему мне призодиться по два раза кликать чтоьы за логиниться и потод два раза кликать чтобы выйти?
serres вне форума Ответить с цитированием
Старый 02.06.2010, 10:20   #2
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

сделай кнопку так:
<input OnClick="return false;" OnDblClick="form.submit()">
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 02.06.2010, 12:04   #3
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Потому что проверка входа и выхода должна производиться до решения, что выводить пользователю.
То есть строки

PHP код:
                if ($r['user_password'] != MD5($_POST['password'])) 
                { 
                    print (
"Логин или пароль введен не верно!!!"); 
                } 
                else 
                { 
                    
$_SESSION['user_id'] = $r['user_id']; 
                    
$_SESSION['user_name'] = $r['user_name']; 
                    
$_SESSION['user_surname'] = $r['user_surname']; 
                    
$_SESSION['user_type'] = $r['user_type']; 
                } 
должны быть ДО строки if (isset($_SESSION['user_id'])), но ПОСЛЕ строки session_start();

То же самое и про
PHP код:
        if (isset($_POST['exit']) && $_POST['exit']) 
        { 
            
session_unset(); 
        } 
По логике, желательно, чтобы последний фрагмент также стоял ПОСЛЕ первого фрагмента, который я выше написал.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокировка двойного клика в JS tutor JavaScript, Ajax 2 19.01.2010 22:47
Определение длины пути от клика до клика - как??? Enya Помощь студентам 0 11.05.2009 12:54
Имитация клика мыши tipzozborova JavaScript, Ajax 1 04.03.2009 07:27
Координаты клика snake-as JavaScript, Ajax 0 24.02.2008 15:44
два TMediaPlayer и два AVI-файла zeleniy Компоненты Delphi 0 01.06.2007 14:14