Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Открытие сессий и автовход

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
GoloArt
Отправлено: 22 Ноября, 2012 - 02:00:51
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




В общем делал регистрацию по одному уроку, а чат по другому.
Для входа в чат нужен логин и email, вот подумал сделать так чтоб поля заполнялись автоматически и делался вход.
Но столкнулся с проблемами:
1. Вывод в строку логин получился с помощью кода
PHP:
скопировать код в буфер обмена
  1. <input id="name" name="name" class="rounded" maxlength="16" value="<?PHP if (empty($_SESSION['login']) or empty($_SESSION['id'])){echo "Гость";}else{echo "".$_SESSION['login']."";} ?>"/>


а вот email не получилось, так как не открыты сессии, решил открыть, в файле авторизации добавил строку
PHP:
скопировать код в буфер обмена
  1. $_SESSION['email']=$myrow['email'];
и в индексном вверху вместо
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.           // вся процедура работает на сессиях. Именно в ней хранятся    данные пользователя, пока он находится на сайте. Очень важно запустить их в    самом начале странички!!!
  3.           session_start();          
  4. include ("bd.php");// файл bd.php должен быть в той же папке, что и    все остальные, если это не так, то просто измените путь          
  5. if    (!empty($_SESSION['login']) and !empty($_SESSION['password']))
  6.             {
  7.             //если существует логин и пароль в сессиях, то проверяем их и    извлекаем аватар
  8.  
  9.             $login    = $_SESSION['login'];
  10.             $password    = $_SESSION['password'];
  11.             $result    = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password'",$db);
  12.             $myrow    = mysql_fetch_array($result);
  13. if(empty($myrow['avatar'])) {$avatar = 'avatars/net-avatara.jpg';}
  14. else {$avatar = $myrow['avatar'];}
  15.             //извлекаем нужные данные о пользователе
  16.             }
  17.             ?>
вставил
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.           // вся процедура работает на сессиях. Именно в ней хранятся    данные пользователя, пока он находится на сайте. Очень важно запустить их в    самом начале странички!!!
  3.           session_start();          
  4. include ("bd.php");// файл bd.php должен быть в той же папке, что и    все остальные, если это не так, то просто измените путь          
  5. if    (!empty($_SESSION['login']) and !empty($_SESSION['email']) and !empty($_SESSION['password']))
  6.             {
  7.             //если существует логин и пароль в сессиях, то проверяем их и    извлекаем аватар
  8.  
  9.             $login    = $_SESSION['login'];
  10.    $email    = $_SESSION['email'];
  11.             $password    = $_SESSION['password'];
  12.             $result    = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND  email='$email' AND password='$password'",$db);
  13.             $myrow    = mysql_fetch_array($result);
  14. if(empty($myrow['avatar'])) {$avatar = 'avatars/net-avatara.jpg';}
  15. else {$avatar = $myrow['avatar'];}
  16.             //извлекаем нужные данные о пользователе
  17.             }
  18.             ?>
но не работает, да и аватарка перестала работать, откатил индексную и дальше начал думать. 2 часа ночи - идей нет, обращаюсь к профи. С заранее спасибо)

Представляю примерно такое авто заполнение:
PHP:
скопировать код в буфер обмена
  1.    <form id="loginForm" method="post" action="">
  2.             <input id="name" name="name" class="rounded" maxlength="16" value="<?PHP if (empty($_SESSION['login']) or empty($_SESSION['id'])){echo "Гость";}else{echo "".$_SESSION['login']."";} ?>"/>
  3.             <input id="email" name="email" class="rounded" maxlength="100" value="<?PHP if (empty($_SESSION['email']) or empty($_SESSION['id'])){echo "Введите email";}else{echo "".$_SESSION['email']."";} ?>"/>
  4.             <input type="submit" class="blueButton" value="Войти" />
  5.         </form>


Сразу ещё вопрос, реально сразу после авто заполнения чтоб делался вход?

(Отредактировано автором: 22 Ноября, 2012 - 02:03:17)

 
 Top
Denkill
Отправлено: 15 Января, 2013 - 16:39:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Ты точно определил $_SESSION['email'];. А то может его просто не определили.


-----
Хо-Хо-Хо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB