Запретить запуск PHP до POST - PullRequest
0 голосов
/ 23 марта 2011

Так что я действительно очень новичок в PHP и MySQL (только сегодня!).

У меня есть страница, которая обновляет базу данных MySQL на основе результатов из сообщения.

Как я понял, PHP-код находится на странице, и он работает, но проблема в том, что он проходит и при загрузке страницы, то есть до того, как произойдет POST.

Любой способ предотвратить это?

Вот мой код:

        <?php
            //do stuff

            // see if any rows were returned
            if (mysql_num_rows($result) > 0) {

                $row = mysql_fetch_row($result);

                while($row = mysql_fetch_row($result)) {
//do something
                  }
            }
            else {
//do something else
            }

            // free result set memory
            mysql_free_result($result);
            $first = 0;
        ?>
        <br />
        <br />

          <div id="addName">  
            <h3 class="caps">Want to add yourself?</h3>  

            <div class="box">  

            <br /> <br />
            <form id="form1" name="form1" method="post" action="#">

            Email:
            <label>
            <input type="text" name="email" id="email" />
            </label>

              <label>
              <input type="submit" name="submit" id="submit" value="Submit" />
              </label>

            </form>
            </div>  

          </div>  

        </div>  

Видите, проблема в том, что он будет выполняться // делать что-то еще, прежде чем заполнить форму,Есть предложения?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 23 марта 2011

Лучшее состояние

if(isset($_POST['submit']) && !empty($_POST) ){
  // now do with your post data
}

это предотвратит публикацию пустых данных

4 голосов
/ 23 марта 2011
if(isset($_POST['submit'])){
  // do things when post has been made
  // e.g. insert the data into SQL
}

Прочитайте эту страницу.Приведенный выше код проверит, чтобы убедиться, что кнопка отправки была нажата.

0 голосов
/ 23 марта 2011

Если вы размещаете HTML-форму на другой странице, вы можете разместить ее в верхней части своего кода на странице PHP. Он перенаправит пользователя в файл формы HTML перед выполнением любого кода.

if (!$_POST['submit']) {
   header("Location: ./form.html");
   die();
}

Однако, если вы предпочитаете оставить форму на той же странице (как она выглядит), вы можете воспользоваться приведенными выше советами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...