Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Элементы управления в PHP 
:(
    Опции темы
Andrew_D
Дата 11.3.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.7.2007

Репутация: нет
Всего: нет



Я тоже за то, чтобы люди сами доходили, но в этом вопросе мне вообще ничего не понятно. Если не сложно, наведи на мысль, пожалуйста, простецким примером. А то вообще ничего не понятно.
PM MAIL   Вверх
enof
Дата 11.3.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



js
Код

function check_login(login)
{
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('GET', '/check_login.php?login='+login, true);
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState == 4)
        {
            if(xmlhttp.status == 200)
            {
                if(xmlhttp.responseText == 1)
                {
                    alert("Логин свободен");
                }else{
                    alert("Логин занят!");
                }
            }
        }
    };
    xmlhttp.send(null);
}

check_login.php
Код

<?php
if(free_login($_GET['login']))  // free_login() - проверяет логин
{
    echo "1";  //Логин свободен.
}else{
    echo "0";  //Логин занят.
}
?>

PM MAIL ICQ Skype   Вверх
p0zt3r
Дата 11.3.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 4.2.2007
Где: Самара

Репутация: 3
Всего: 6



Вот накидал тут код...

файл visible.css
Код

/* стиль для всех видимых... */
.visible {
    visibility: visible;
}

/* ...и невидимых объектов */
.invisible {
    visibility: hidden;
}

файл index.php
Код

<?php
// URI пустой или не содержит идентификатора команды проверки логина

define('ACTION_TEST_LOGIN', '1');
define('ACTION_LOGIN_USER', '2');

$afterloginredirectto = "./user.php";

$p = $_REQUEST['p'];

function renderErrorPage (  )
{
    header ('Content-Type: text/html');
    echo ('Заглушка страницы с ошибкой');
}

function isLoginAcquired ( $login  )
{
//заглушка проверки логина - пока просто возвращаем логин, что значит, что он правильный.
return $login;
}

  
if ( $p == ACTION_TEST_LOGIN )
{   
    $login = $_GET['user'];
    header ('Content-Type: text/html');
    echo (isLoginAcquired($login));
    die;
}

if ( $p == ACTION_LOGIN_USER )
{
    if (isLoginSuccess($_POST['user'], $_POST['pass']))
    {
        header("Location: ".$afterloginredirectto);
    }
    else
    {
        renderErrorPage (  );
    }   
    die;
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Pragma" content="no-cache">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>My simple login page</title>
        <link rel="stylesheet" type="text/css" href="visible.css">
    </head>
    <body>
        <script type="text/javascript">
            var login;
            var ajax_req;
            
            function getXmlHttpRequest()
            {
                var xmlHttpObj;
                
                if (window.XMLHttpRequest)
                {
                    xmlHttpObj = new XMLHttpRequest ();
                }
                else
                {
                    try
                    {
                        xmlHttpObj = new ActiveXObject ("Msxml2.XMLHTTP");
                    }
                    catch (e)
                    {
                        try
                        {
                            xmlHttpObj = new ActiveXObject ("Microsoft.XMLHTTP");
                        }
                        catch (e)
                        {
                            xmlHttpObj = false;
                        }
                    }
                }
                
                return xmlHttpObj;
            }

            function acquireResponse (  )            
            {
                if (ajax_req.readyState == 4 && ajax_req.status == 200)
                {
                    var ac_mes = document.getElementById ('lf_02');
                    var err_mes = document.getElementById ('lf_01');
                    if (ajax_req.responseText != login)
                    {
                        err_mes.className = "visible";
                    }
                    else
                    {
                        ac_mes.className = "visible";
                    }
                }
            }
            
            function onTestLoginButtonClick (  )
            {
                login = document.getElementById ('lf_logininput');
                var ajax_qry = "<?php echo (__FILE__); _ ?>" + "?p=1&user=" + encodeURIComponent ( login.value );    
                ajax_req = getXmlHttpRequest ();
                if (!ajax_req) return;
                ajax_req.open ('GET', ajax_qry, true);
                ajax_req.onreadystatechange = acquireResponse;                    
            }
        </script>

        <div id="lf">
            <form method="post" target="">
                <input id="lf_logininput" type="text" name="user" /><br />
                <div id="lf_password" class="invisible">
                    <input id="lf_passinput" type="password" name="pass" />
                </div>
                <input type="button" value="Test login!" />
                <div id="lf_01" class="invisible">
                    try other username!
                </div>
                <div id="lf_02" class="invisible">
                    acquired
                </div>
                <input type="submit" value="Log in!" />
            </form>
        </div>
  
    </body>
</html>

<?php    

?>


Соответственно, когда index.php загружается без параметров - выводится форма для ввода, при нажатии кнопки "Test login!" происходит отправка логина на сервер и его проверка и HTTP-ответ, содержаший логин в случае его "подходящести".
--------------------
24*7*365*геморой*зарплата=0
PM MAIL ICQ   Вверх
Andrew_D
Дата 11.3.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 25.7.2007

Репутация: нет
Всего: нет



Спасибо Вам за ответы. Буду пробовать. О результатах обязательно напишу.
PM MAIL   Вверх
p0zt3r
Дата 11.3.2009, 20:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 4.2.2007
Где: Самара

Репутация: 3
Всего: 6



 не пробовать надо, а книжку покупать!
--------------------
24*7*365*геморой*зарплата=0
PM MAIL ICQ   Вверх
enof
Дата 11.3.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



p0zt3r,  бред полный. из-за одного объекта покупать книгу.
99% воды в подобных книгах.

Это сообщение отредактировал(а) enof - 11.3.2009, 20:08
PM MAIL ICQ Skype   Вверх
nerezus
Дата 11.3.2009, 20:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

не пробовать надо, а книжку покупать!
 А про то, как ложкой манную кашу кушать, ты тоже в книжке учился?
Такие вещи слишком мелкие, чтобы по ним книги писать. Я 3 года назад сдуру купил такую, разжевано до такой степени, что вместо материала идет совсем уж жиденькая слюнявая каша.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
p0zt3r
Дата 11.3.2009, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 4.2.2007
Где: Самара

Репутация: 3
Всего: 6



Ну зря вы так тянете на книги от O'REILY. Разжовано - да, порою, а точнее чаще всего, до жидятины, но зато не возникает никогда никаких вопросов - сразу понимаешь что тебе нужно и где искать. Пока по PHP книгу не купил, так некоторые вещи и не освоил, хотя инфы в инете перелопатил кучу, времени потратил тьму.

В указанной мною книге разобраны все применения ajax, описано как реализуются все самые часто используемые фичи. Книжка небольшая и легка для чтения, поэтому её можно и на сон грядущим... 

Хотя, когда есть jQuery, особого смысла ковырятся в этом навозе не нахожу. Конечно, понимать как это работает нужно, знать основные фичи и возможности полезно, особенно, когда проектируешь крупную работу, т.к. не нарвёшься на лишние "переделки".

Если бы моя мама была крутым веб-программистом, то я бы, само собой, книжки не покупал  smile 
--------------------
24*7*365*геморой*зарплата=0
PM MAIL ICQ   Вверх
nerezus
Дата 11.3.2009, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

но зато не возникает никогда никаких вопросов - сразу понимаешь что тебе нужно и где искать.
 Только вот в документации(техническая информация) и википедии("наводка") для этого надо потратить в десятки раз меньше времени.
А я ценю свое время.
И вместо того, чтобы тратить время на чтение 400стр, я прочитаю 2стр википедии и 4 стр документации.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
p0zt3r
Дата 12.3.2009, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 4.2.2007
Где: Самара

Репутация: 3
Всего: 6



Ну прочитал ты 4 страницы документации и чего? Получил обзор всей технологии? Получил описание всех возможностей? Знания?

Несомненно, есть вещи, которые не нужно помнить и которые нужно знать только со справочником. Я вот CSS вообще не знаю, поэтому постоянно обращаюсь к всевозможным ресурсам в инете.
Но вот когда недавно начал работать над достаточно большим проектом в Перле, который сейчас в подвешенном состоянии, то мне пришлось сначала детально изучить cpan'овские доки, т.к. понял, что навыков Перла мне не хватает и что 6-ю минутами заглядывания в википедию и чтением 4 стр. не обойтись.

Хотя у каждого есть выбор - либо знать немного всего, либо становиться специалистом в каких-то конкретных областях, применять свои знания на практике и зарабатывать на этом денежку.

Кстати, 400-страничный том по программированию я перечитываю с достаточной для работы усваимостью примерно за 2 часа. Мне лучше потратить 2 часа на знание, чем 5 минут на незнание.

Кроме того, по основной работе я инженер-проектировщик и знаю цену технической/нормативной документации и теоретическим основам, методологии и справочным данным.

Хотя баночное пиво и сигарета в постели гораздо приятней всего этого.

 smile 

PS Не хотел сказать, что я мегакрутой чел, а ты - наоборот. Просто разные люди с разным подходом, разным опытом и успехами. 

Это сообщение отредактировал(а) p0zt3r - 12.3.2009, 21:58
--------------------
24*7*365*геморой*зарплата=0
PM MAIL ICQ   Вверх
nerezus
Дата 12.3.2009, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Получил обзор всей технологии? Получил описание всех возможностей? Знания?
 Именно так.
Документация - это САМОЕ полное описание по технологии.

А документации по аяксу - пара страниц.

Я могу 1 строчкой дать через jQuery: $.get('страничка', 'параметры', function(data){тело ф-ии})


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1096 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.