На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
Страницы: (5) [1] 2 3 ... Последняя » все  ( Перейти к последнему сообщению )  
    > Игра на PHP , (изучая пишу игру)
      Изучаю, значит PHP, решил написать простенькую
      игру (какую объяснять не буду). Я на PHP
      не чего не писал и вот решил буду писать игру
      и параллельно изучать. Все вопросы касающееся
      игры я буду задавать в этом топике.
      Просьба на вопросы отвечать с комментариями
      так как я только учусь.

      1 ВОПРОС Денно четырёхзначное число например 2345
      нужно чтобы $a=2, $b=3, $c=4, $d=5,
      четырёхзначное число будет вводиться в
      Техт Бох
      <input name="Name" type="text" value="">
      и так с любым числом первая цифра будет присвоена $a и т. д.
        ExpandedWrap disabled
           
          <?php
          $a = 5;
          $b = 4;
          $c = 6;
          $d = 1;
          echo '<input name="name" type="text" value=' .$a .$b.$c.$d.">\n";
          ?>
          Наоборот посте того как я ввёл числа
          начинается присваениея.
          [html]$a = 5;
          $b = 4;
          $c = 6;
          $d = 1;[/html]
            Тебе на лету что ли надо? В то время, как вводишь - сразу и присваивать? или есть кнопка типа submit?
            вроде если без кнопочки, то никак данные формы не получить, значит надо делать кнопку - пересылать данные формы на какую-нибудь страницу(можно и на эту же) и тут уже их обрабатывать...
            Доступ к ним будет по имени поля (в твоем случае Name) - а лучше через $HTTP_POST_VARS или $HTTP_GET_VARS - так надежнее(я уже так ожнажды напоролся, когда вместо переменной формы обрабатывал переменную из куки - долго голову ломал в чем дело)
            А далее(когда значеие поля храниться в $Name) можешь вытащить из него цифры любым способом(делением на 10 в цикле например) или еще как-нибудь.

            Я себе это так представляю - я сам пока php только учусь - может ошибусь где-нибудь - надеюсь поправят
              Цитата
              shipbrother, 17.08.04, 14:49
              Тебе на лету что ли надо? В то время, как вводишь - сразу и присваивать?

              есть кнопка, или после нажания Ввод.


              Цитата
              shipbrother, 17.08.04, 14:49
              Доступ к ним будет по имени поля (в твоем случае Name) - а лучше через $HTTP_POST_VARS или $HTTP_GET_VARS - так надежнее(я уже так ожнажды напоролся, когда вместо переменной формы обрабатывал переменную из куки - долго голову ломал в чем дело)

              Мне как легче нужно, я всего лишь учю на примере игры.
                Цитата
                Мне как легче нужно, я всего лишь учю на примере игры.
                и так и так легко.
                Пусть это код на странице, куда ты попал после нажатия submit. В переменной $name будет твое число. Форма отсылалась с помощью метода post.
                ExpandedWrap disabled
                  <?php
                    $name = $HTTP_POST_VARS["Name"]; //php ne vazhno chislo eto ili stroka - budem rabotat kak so strokoi
                    $a = substr($name,0,1); //ispolzuem videlenie podstroki
                    $b = substr($name,1,1); //mozhno sdelat eto zhe i v tsikle
                    $c = substr($name,2,1);
                    $d = substr($name,3,1);
                  ?>
                  Посылаю число в 1.php

                  ExpandedWrap disabled
                    <html><head>
                      <title></title>
                    </head><body>
                    <form action=1.php>
                    <input name="name" type="text" value="">
                    <input type="submit" value="pusk">
                    <?php



                  Это и есть 1.php
                  ExpandedWrap disabled
                    <html><body>
                    <?php
                      $name = $HTTP_POST_VARS["Name"];
                      $a = substr($name,0,1);
                      $b = substr($name,1,1);
                      $c = substr($name,2,1);
                      $d = substr($name,3,1);
                    echo "$a<br> $b<br> $c<br> $d<br>";
                     
                    ?>
                    </body></html>

                  Дело в том что в итоге мне невыводиться
                  ExpandedWrap disabled
                    echo "$a<br> $b<br> $c<br> $d<br>";

                  видно лишь в URL что число передаёться:
                  /Good/1.php?name=2347
                  В чём дело?
                    Дело в том, что по умолчанию форма передается методом GET, то есть все значения передаются через URL - как у тебя. Тогда надо использовать не $HTTP_POST_VARS[], a $HTTP_GET_VARS[].
                    ExpandedWrap disabled
                       
                      <?php
                        $name = $HTTP_GET_VARS["name"];
                        $a = substr($name,0,1);
                        $b = substr($name,1,1);
                        $c = substr($name,2,1);
                        $d = substr($name,3,1);
                      echo "$a<br> $b<br> $c<br> $d<br>";
                      ?>

                    А чтобы работал тот код(использующий $HTTP_POST_VARS) надо добавить в тэг формы один атрибут - METHOD
                    ExpandedWrap disabled
                       
                      <form action="1.php" method="post">
                      <input name="name" type="text" value="">
                      <input type="submit" value="pusk">

                    Достоинство метода POST в том, что пользователь не видит какие переменные передаются и какие у них значения. Это удобно если надо передать скрытые поля формы.
                      Всё Очень просто. Есть два метода передачи данных из формы.
                      Первый - GET. Передаёт переменные через строку запорса. Пример: http://localhost/index.php?a=b&c=d. В РНР это массив $_GET, $HTTP_GET_VARS
                      Воторой: POST. Передаёт переменные через спецальные поля HTTP запроса. B PHP: $_POST, $HTTP_POST_VARS
                      Для регулирования способа передачи данных используется аттрибут method тэге form
                      Пимер:
                      [html]
                      <form method="post">
                      </form>
                      <form method="get">
                      </form>
                      [/html]
                      Т.к. ты используешь $HTTP_POST_VARS для получения переменных, то тебе метод передачи надо установить в get
                        ВСё равно не выдаёт переданные числа на экран
                        ExpandedWrap disabled
                          echo "$a<br> $b<br> $c<br> $d<br>";
                          Вижу ещё один глюк;)) В РНР регистр переменных влияет на их распознавания. Поэтому не $HTTP_POST_VARS["Name"] a $HTTP_POST_VARS["name"]
                          Советую в начало файла вставить строку error_reporting(E_ALL) Эта ф-ция заставить выводить все ошибки вызываемые твоим кодом.
                            Цитата
                            Rom@nych, 18.08.04, 17:29
                            $HTTP_POST_VARS["Name"] a $HTTP_POST_VARS["name"]

                            Это пробовал, не внём дело.
                              ты посмотри сначала присваиваются ли хоть какие-нибудь значения твоим переменным. Если да, то дело в
                              echo "$a<br> $b<br> $c<br> $d<br>";
                              Я лично по старинке всегда пишу
                              echo $a . "<br>" . $b . "<br>";
                                Странно, а что выводится?
                                  Цитата
                                  Mastilior, 18.08.04, 22:44
                                  Странно, а что выводится?

                                  Вот именно нечго не выводиться. :huh:
                                  Попробуйте у себя <_<
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,6451 ]   [ 15 queries used ]   [ Generated: 27.04.24, 15:37 GMT ]