The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Не распознается входящая переменая, !*! Дмитрий, 24-Окт-07, 12:11  [смотреть все]
Какойто бред происходит. Кто что скажет?
из html  передается:
...
<form action="test.php" method="GET">
<input type="text" name="www">
...
В test.php :
<?php
print ("$www bla-bla-bla\n");
...
...
?>

В браузере: http://xx.xx.xx.xx/test.php?www=test&submit=Submit%21

bla-bla-bla

Куда пропала $www ???

И еще, пхп не понимает почемуто if(isset($xxx)):, else:, endif;
Просто тупо не видет %(

  • Не распознается входящая переменая, !*! XAnder, 14:44 , 24-Окт-07 (1)
    >Куда пропала $www ???

    Как насчёт register_globals? http://www.php.net/manual/ru/security.globals.php

    >И еще, пхп не понимает почемуто if(isset($xxx)):, else:, endif;
    >Просто тупо не видет %(

    Что значит не видит? Пример, пожалуйста. Да, и версию ПХП неплохо бы знать.

    • Не распознается входящая переменая, !*! Дмитрий, 15:18 , 24-Окт-07 (2)
      >Как насчёт register_globals? http://www.php.net/manual/ru/security.globals.php

      Спасибо за ссылку, не знал. Стояла, ясное дело, в Off  

      >Что значит не видит? Пример, пожалуйста. Да, и версию ПХП неплохо бы
      >знать.

      php 4.4.4 Вот примерчик:

      <html>
      ...
      <?
      if(isset($submit)):
         print ("Ok");
      else:
      ?>
      ...
      <form actin=this.php...>
      <input type=submit...>
      ...
      <?
      endif;
      ?>
      ...
      </html>

      • Не распознается входящая переменая, !*! XAnder, 16:17 , 24-Окт-07 (3)
        >Спасибо за ссылку, не знал. Стояла, ясное дело, в Off

        Десять раз подумай, прежде чем включать эту опцию. Соображения безопасности почти всегда важнее кажущегося удобства написания программ.

        >php 4.4.4 Вот примерчик:
        >...

        Ну и? Как этот пример "тупо не видит" конструкции языка? Неужели выполняются операторы и после if, и после else? Не верю.

        Наверое, дело в тех же register_globals. Ведь переменная $submit - это, вероятно, тот самый замечательный submit=Submit%21, или я ошибаюсь?

        • Не распознается входящая переменая, !*! Дмитрий, 16:22 , 24-Окт-07 (4)
          >Ну и? Как этот пример "тупо не видит" конструкции языка? Неужели выполняются
          >операторы и после if, и после else? Не верю.

          нет, не выполнялся код после if

          >Наверое, дело в тех же register_globals. Ведь переменная $submit - это, вероятно,
          >тот самый замечательный submit=Submit%21, или я ошибаюсь?

          Да, Вы совершенно правы, дело было в register_globals, сейчас все работает. Сервер локальный, поэтому включение опции ничем не грозит.
          Спасибо.

          • Не распознается входящая переменая, !*! tux2002, 17:06 , 24-Окт-07 (5)
            >[оверквотинг удален]
            >>операторы и после if, и после else? Не верю.
            >
            >нет, не выполнялся код после if
            >
            >>Наверое, дело в тех же register_globals. Ведь переменная $submit - это, вероятно,
            >>тот самый замечательный submit=Submit%21, или я ошибаюсь?
            >
            > Да, Вы совершенно правы, дело было в register_globals, сейчас все работает.
            >Сервер локальный, поэтому включение опции ничем не грозит.
            >Спасибо.

            Давно я PHP не занимался, но по памяти register_globals в OFF это уж точно. А к гету обращаются $HTTP_GET_VARS['www'];

            • Не распознается входящая переменая, !*! XAnder, 08:57 , 25-Окт-07 (6)
              >Давно я PHP не занимался, но по памяти register_globals в OFF это
              >уж точно. А к гету обращаются $HTTP_GET_VARS['www'];

              Да, видно, что давно ;) Теперь обычно обращаются $_GET['www'] или $_REQUEST['www'].

              • Не распознается входящая переменая, !*! tux2002, 12:05 , 25-Окт-07 (8)
                >>Давно я PHP не занимался, но по памяти register_globals в OFF это
                >>уж точно. А к гету обращаются $HTTP_GET_VARS['www'];
                >
                >Да, видно, что давно ;) Теперь обычно обращаются $_GET['www'] или $_REQUEST['www'].

                Ну и ладно. На нашем предприятии всё равно Oracle и странички мы клепаем в HTMLDB. Изысков конечно нет, но то что я делаю за 15 минут, в PHP я просто упрусь делать.

  • Не распознается входящая переменая, !*! angra, 09:22 , 25-Окт-07 (7)
    Что можно сказать, поздравляю с присоединением к толпе пыхобыдлокодеров. Если захотите когда либо вырасти из этого в вебдевелоперы, то читайте доку к языку, изучите основы web-безопасности и не используйте порочных практик.


    • Не распознается входящая переменая, !*! Mighty, 15:57 , 27-Дек-07 (9)
      Может я , конечно. что-то путаю
      но если не ошибаюсь, то для ввода переменных лучше делать метод POST
      насколько мне известно, строка GET-метода ограничена длиной 256 символов, в то время как у POST размер неограничен...ну почти не ограничен..
      ещё может быть проблема...вообщем если несколько одноимённых форм...
      • Не распознается входящая переменая, !*! dev, 23:31 , 27-Дек-07 (10)
        >Может я , конечно. что-то путаю
        >но если не ошибаюсь, то для ввода переменных лучше делать метод POST

        нет

        >насколько мне известно, строка GET-метода ограничена длиной 256 символов,

        нет

        >ещё может быть проблема...вообщем если несколько одноимённых форм...

        нет

        • Не распознается входящая переменая, !*! Fisher, 13:50 , 29-Дек-07 (11)
          >[оверквотинг удален]
          >
          >нет
          >
          >>насколько мне известно, строка GET-метода ограничена длиной 256 символов,
          >
          >нет
          >
          >>ещё может быть проблема...вообщем если несколько одноимённых форм...
          >
          >нет

          1)А если передовать имя пользователя и пароль, так тоже будите использовать GET?
          2) И еще может лучше так писать:

          if(isset($submit) && strlen($submit)>0)
          { //
          }

          • Не распознается входящая переменая, !*! dev, 00:50 , 30-Дек-07 (12)
            >1)А если передовать имя пользователя и пароль, так тоже будите использовать GET?

            Утверждение "для ввода переменных лучше делать метод POST" - неверно. Какое слово непонятно?

            >2) И еще может лучше так писать:
            >
            >if(isset($submit) && strlen($submit)>0)
            >{ //
            >}

            Зачем?

            • Не распознается входящая переменая, !*! Fisher, 14:14 , 30-Дек-07 (13)

              >>if(isset($submit) && strlen($submit)>0)
              >>{ //
              >>}
              >
              >Зачем?
            • Не распознается входящая переменая, !*! Fisher, 14:29 , 30-Дек-07 (14)
              >>if(isset($submit) && strlen($submit)>0)
              >>{ //
              >>}
              >
              >Зачем?

              У меня была, такая проблема, при передачи значения из формы,т.е.

              $ftel =strip_tags($HTTP_POST_VARS['tel']); //это передаю телефон
              if (isset($ftel) // это проверяю есть ли он
              {
              сюда попадаю если даже телефон не установлен
              }

              а так

              $ftel =strip_tags($HTTP_POST_VARS['tel']); //это передаю телефон
              if (isset($ftel && strlen($submit) // это проверяю есть ли он
              {
              сюда попадаю если телефон установлен
              }

              Извините за неточность.

              P.S. можно через _GET
                   register_globals=off

              Отрывок из книги:Профессиональное PHP программирование Второе издание
              Л.Аргерих, В.Чой..

              Глава: Небезопасность register_globals
              Одной из самых удобных и опасных характеристик РНР является возмож-
              ность пользоваться переменными, которые не были явно определены. Это
              904 Глава 23. Система безопасности
              очень популярная функция РНР, но в сочетании с установкой register_globals
              может создать проблему безопасности вашего приложения.


            • Не распознается входящая переменая, !*! Fisher, 15:15 , 30-Дек-07 (15)
              register_globals
              Это, вероятно, самая опасная из всех настроек РНР. Если она имеет значе-
              ние on (установка по умолчанию вплоть до РНР 4.1), а не off (значение по
              умолчанию начиная с РНР 4.2), то переменные EGPCS регистрируются как
              глобальные. С этим связано несколько угроз.
              Прежде всего, это означает, что пользователю не надо проверять, откуда по-
              ступила переменная (от POST, GET или cookie), поэтому значения перемен-
              ных могут быть поддельными. Одно это обстоятельство вызывает большин-
              ство проблем со сценариями РНР. Если вы установили значение этой пере-
              менной равным off (рекомендуется), то включите tгасk_vars в on....



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру