阻止PHP运行直到POST

时间:2011-03-23 04:46:12

标签: php mysql html forms post

所以我真的非常擅长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 个答案:

答案 0 :(得分:4)

if(isset($_POST['submit'])){
  // do things when post has been made
  // e.g. insert the data into SQL
}

阅读this页面。上面的代码将检查以确保已按下提交按钮。

答案 1 :(得分:4)

更好的条件

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

这样可以防止发布空数据

答案 2 :(得分:0)

如果您在另一个页面上托管HTML表单,可以将它放在PHP页面上的代码顶部。在执行任何代码之前,它会将用户重定向到HTML表单文件。

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

但是,如果您希望将表单保留在同一页面(您看起来像是这样),则可以使用上述建议。