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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Галочка-запоминалочка 
V
    Опции темы
fakeman
Дата 28.7.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



День добрый думаю вы как мастера в ПхП помогли бы мне подсказать как можно реализовать такую Галочку-запоминалочку(Обычно бывает при входе юзером на какой сайт и стоит CHECKED(поставит/убрать галочку), мол запомнить юзер и пароль). Это как то через куки делать или как ? подскажите..
Спасибо.
PM MAIL   Вверх
Ипатьев
Дата 28.7.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



через куки
PM MAIL   Вверх
fesor
Дата 28.7.2009, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



подозреваю что ему хотелось бы знать поточнее)
http://docs.php.net/manual/ru/features.cookies.php
PM MAIL WWW   Вверх
fakeman
Дата 29.7.2009, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как я понимаю мне надо сделать форму где на подобии такой.
Код

echo"
        <table style='font-size:12px; font-family:tahoma;'>
        <form method='post' >
                <tr>
                    <td>
                        Имя пользователя &#160
                    </td>
                    <td>
                        <input class='form' type='text' style='width: 180px;' maxlength='16' size='10' name='username'></input>
                    </td>
                </tr>
                <tr>
                    <td>
                        Пароль &#160
                    </td>
                    <td>
                        <input class='form' type='password' style='width: 180px;' maxlength='32' size='8' name='password'></input>
                    </td>
                </tr>
                <tr>
                    <td>
                        <a href='/phpsite/register/'><b>Регестрация</b></a>
                    </td>
                    <td align='right'>
                        Запомнить
                        <input type='checkbox' name='check' value='rem'>
                        <input type='submit' class='search_b' name='submit' value='Вход'>
                        
                    </td>
                </tr>
            </form>
            </table>";
        


передаёться всё через ПОСТ

Код

$name = $_POST[username]
$pass = $_POST[password]
$check = $_POST[check]


И вот куда в куку че подставлять в setcookie(имя куки,значение,врем и тд....);

допустим если сделать так -
Код

$name = brrrrrrr;
setcookie('cookie', $name, time()+3600);
echo echo $HTTP_COOKIE_VARS['cookie'];


То он выведит brrrr а если в переменной $name поставить $_POST[username] то не выводит, почему? И так ли вообше надо куку сохранять ?

PM MAIL   Вверх
MoLeX
Дата 29.7.2009, 05:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



воспользуйся  header()


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 29.7.2009, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



fakeman, помимо огромного количества мелких ошибок, здесь есть одна принципиальная.
функция setcookie не устанавливает значение массива  $HTTP_COOKIE_VARS
И при первом запуске этот код не выведет никакого бррр. Только при повторном. 

Если $_POST[username] не записывается, надо проверить, есть ли что-то в этой переменной.


PM MAIL   Вверх
fakeman
Дата 29.7.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

if($_POST[submit])
{
$check = $_POST['check'];
$name = $_POST['username'];
$pass = $_POST['password'];
 if($check)
 {
  if (!isset($_COOKIE['check']))
  {
   setcookie('check','$name',time()+3*60*60);
   header('Location: '.$_SERVER['REQUEST_URI']);
   die();
  }
  echo $_COOKIE['check'];
 }
}


Почему выводит тока $_POST[username] ? Должен же выводить то что ввёл в форме где username ? ... 

Это сообщение отредактировал(а) fakeman - 29.7.2009, 11:45
PM MAIL   Вверх
Ипатьев
Дата 29.7.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



Ничего непонятно.
Поему у тебя выводит $_POST['username']?
С какой стати должно выводить что-то еще?
Лично я бы на месте этого кода не выводил бы вообще ничего

PM MAIL   Вверх
Nigel
Дата 29.7.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


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

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



Посмотри тут, как можно сделать
PM MAIL   Вверх
fakeman
Дата 29.7.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Невыходит....
Код

$username = $_POST['username'];
$password = $_POST['password'];

if(!isset($_COOKIE['username']) && !isset($_COOKIE['password'])){

setCookie('username', '$username', time()+360, '/');
setCookie('password', '$password', time()+360, '/');

}
if (!isset($_SESSION['id'])) {
    if (isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
        $query = "SELECT `id`
                FROM `users`
                WHERE `username`='".mysql_real_escape_string($_COOKIE['username'])."' AND `password`='".mysql_real_escape_string($_COOKIE['password'])."'
                LIMIT 1";
        $sql = mysql_query($query) or die(mysql_error());
         if (mysql_num_rows($sql) == 1) {
            $row = mysql_fetch_assoc($sql);
            $_SESSION['id'] = $row['id'];
        }
    }
}
print_r($_COOKIE)


При print_r($_COOKIE) выводит тока Array ( [check] => $ex [vc] => 2 [username] => $username [password] => $password ) 1 просто переменные... в чем дело : (


PM MAIL   Вверх
Ипатьев
Дата 29.7.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



В том, что ты не понимаешь синтаксиса языка. 
Не пишешь кавычки там, где они нужны, и пишешь там, где не нужны.
В кавычках в пхп ишутся строки. А обращение к переменным происходит без кавычек.
PM MAIL   Вверх
fakeman
Дата 29.7.2009, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ипатьев, 

Да вот заработало, но тока я не врубаюсь оно работает или нет.. :/ Как бы пишет [username] => имя юзера [password] => его пасс ... Но если выйти из IE и сразу же зайти автоматом не заходит, а в FF заходит.. Хотя в IE попробовал айти на другой какой сайт и при логине поставил галочку зашол, вышел из браузера зашол опять на тот же сайт и всё работает.. Может я чето доделал ? :S
PM MAIL   Вверх
Ипатьев
Дата 29.7.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



Время жизни ты поставил маловато.
А вообще, если на другом сайте работает, а на твоем нет - надо смотреть, какую куку ставит тот сайт и какую - твой. Сравнивать и исправлять.
PM MAIL   Вверх
fakeman
Дата 29.7.2009, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну я делал так там где форма с логином, туда подставил так 
Код

<input class='form' type='text' style='width: 180px;' maxlength='16' size='10' name='username' value=".$_COOKIE['username'].">
<input class='form' type='password' style='width: 180px;' maxlength='32' size='8' name='password' value=".$_COOKIE['password'].">


Получаеться что если закрыл браузер и заходиш обратно то в форме уже заполнено то что в куках есть. А вот как сделать что бы он ещё и зашол сам автоматом под этим логином..

Получаеться кука работает, время поменял до 3600 - 1 мин(вроде как). 
PM MAIL   Вверх
Ипатьев
Дата 29.7.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



Меня в школе учили, что в минуте 60 секунд, а не 3600.

Чтобы сам зашёл, надо не форму выводить, а передавать логин и пароль в сразу скрипт авторизации. Вроде, в коде выше это и делается?

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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