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]   

> Без описания
Replicant
Отправлено: 17 Декабря, 2009 - 13:13:28
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


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




Доброе время суток!

Делаю что то вроде авторизации но скрипт почему то работает не совсем так как я рассчитывал.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ( $_SESSION['name'] == "" ) :
  3.                 echo "<form action=\"index.php\" method=\"post\">\n";
  4.                 echo "Ваше имя: <input type=\"text\" name=\"login\" weidth=\"100\" heigth=\"100\">\n";
  5.                 echo "<input type=\"submit\" name=\"submit\" value=\"ОК\">\n";
  6.                 echo "</form>\n";
  7.                 if (isset($HTTP_POST_VARS['submit'])):
  8.                         $_SESSION['name'] = $HTTP_POST_VARS['login'];
  9.                 endif;
  10.         else :
  11.                 $name = $_SESSION['name'];
  12.                 echo "Привет: $name";
  13.         endif;
  14. ?>


Вобщем вылазит окно которое просит ввести имя пользователя. Вводим "Вася", нажимаем ОК, страница перегружается но окно с запросом остается, снова вводим но уже "Петя" и жмем, скрипт как и положено выводит имя но не то "Привет: Вася".

И еще не пойму почему не работает перенос на новую строку и размеры input.

(Отредактировано автором: 17 Декабря, 2009 - 13:29:07)

 
 Top
Мелкий Супермодератор
Отправлено: 17 Декабря, 2009 - 13:32:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




0) не $HTTP_POST_VARS (если вы конечно не на 4 пыхе), а $_POST. $HTTP_POST_VARS оставлен только для совместимости
1) чтобы сработало if (isset($HTTP_POST_VARS['submit']))
нужно, чтобы сработало if ( $_SESSION['name'] == "" ) :
Потому и спрашивает второй раз логин
2) HTML переход на новую строку - <br>
\n - увидите в исходном коде страницы, там переход будет.
3) input не поддерживает параметры ни weidth (которого и просто-то так нет, он width пишется) ни height
http://www[dot]htmlbook[dot]ru/html/input[dot]html
4) Перенесите условие передачи постом имени перед проверкой сессии.
Да и логичнее проверять, передан ли логин, чем кнопка:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST['login'])):
  3.         $_SESSION['name'] = $_POST['login'];
  4. endif;
  5. if ( $_SESSION['name'] == "" ) :
  6.                 echo "<form action=\"index.php\" method=\"post\">\n";
  7.         echo "Ваше имя: <input type=\"text\" name=\"login\" weidth=\"100\" heigth=\"100\">\n";
  8.                 echo "<input type=\"submit\" name=\"submit\" value=\"ОК\">\n";
  9.                 echo "</form>\n";
  10.  
  11.         else :
  12.                 $name = $_SESSION['name'];
  13.                 echo "Привет: $name";
  14.         endif;
  15. ?>

(Отредактировано автором: 17 Декабря, 2009 - 13:33:20)



-----
PostgreSQL DBA
 
 Top
Replicant
Отправлено: 17 Декабря, 2009 - 13:32:38
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


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




Все понял надо было перетащить нажатие кнопки вверх перед проверкой имени, но еще не понял почему не работает перенос на новую строку и размеры input.
 
 Top
JustUserR
Отправлено: 17 Декабря, 2009 - 13:33:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Replicant Вопервых почему у вас Pythonовский синтаксис и устаревший массив $HTTP_POST_VARS - и сессия разве успевает обновиться
Вовторых чтобы установиь размер input нужно использовать style="width:Apx; height:Bpx" с подставленными числами A и B
Втретьих для того чтобы работала новая строка в HTML нужен тег <br> а чтобы в windows был символ новой строки не \n а \r\n а если в поле ввода то не <input type="text"> a <textarea></textarea>


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Replicant
Отправлено: 17 Декабря, 2009 - 13:41:29
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


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




О спасибо Радость , Я использовал "старый массив" так как понятия не имел старый он или нет, я новичек в php и знания свои в этой области черпаю из книг найденных в сети, само собой попадается большое количество мануалов по php 4.0, а более новые в основном платные. И поскольку я до теперешнего времени не следил за развитием php, то и соответственно имею скудные понятия о том какие версии и функции являются устаревшими.
 
 Top
JustUserR
Отправлено: 17 Декабря, 2009 - 13:47:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Replicant пишет:
Я новичек в php и знания свои в этой области черпаю из книг найденных в сети, само собой попадается большое количество мануалов по php 4.0, а более новые в основном платные
Вот здесь http://progbook[dot]ru/php/ куча бесплатных книг по PHP в том числе достаточно новые


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Replicant
Отправлено: 17 Декабря, 2009 - 13:50:15
Post Id



Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2009  


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




JustUserR пишет:
Вот здесь http://progbook[dot]ru/php/ куча бесплатных книг по PHP в том числе достаточно новые


Спасибо, отличный сборник полезной литературы, добавил в закладки Радость .
 
 Top
Hunter
Отправлено: 17 Декабря, 2009 - 15:52:46
Post Id



Частый гость


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


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




Replicant
размеры полей input задаются атрибутом size. например
<input type="text" name="login" size="10">
длинна этого поля составит примерно 10 символов. есть еще один полезный атрибут задающий максимальное количество вводимых символов maxlength. если его не указать то есть вероятность обращения к базе данных через ввод строки в поле (правда это зависит от того насколько грамотно написан обработчик запроса)
должно работать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB