0

我是一名新手程序员,试图利用 Twitter Bootstrap 来构建一个概念。我正在使用 PHP 并将 HTML 标记中的操作分配给 POST 数据,并基本上引导用户完成导航。这在使用表单时非常简单:即这里是一个有效的片段。例如,对于这个 HTML 片段:

<form action="?viewnotes" method="post">
<input type="hidden" name="id" value="<?php htmlout($note['id']); ?>">
</form>

它在我的 index.php 中成功触发了以下 if 语句:

if (isset($_GET['viewnotes']))

但是,我试图在我的注册页面中做同样的事情,使用 Twitter Bootstrap 类作为按钮。这是HTML:

<a class="btn btn-primary btn-large" action="?register">Sign Up Free!&raquo;</a></p>

PHP代码是:

if (isset($_GET['register']))
{
include 'register.html.php';    
}

单击“注册”按钮不会调用 PHP 代码。如果我硬编码它可以工作的 URL,但是我在 register.html.php 页面上遇到了类似的问题。注册页面上的 HTML 有:

<form class="form-horizontal" action="?storeuser" method="post">
  <fieldset>
        <legend>It's quick and easy...</legend>
        <div class="control-group">
            <label class="control-label">First Name</label>
            <div class="controls">
                <input type="text" name="fname" class="input-xlarge" id="fname">
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" name="lname">Last Name</label>
            <div class="controls">
                <input type="text" name="lname" class="input-xlarge" id="lname">
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" name="email">Email Address</label>
            <div class="controls">
                <input type="text" name="email" class="input-xlarge" id="email">
            </div>
        </div>
        <div class="control-group">
            <label class="control-label" name="password">Password</label>
            <div class="controls">
                <input type="password" name="password" class="input-xlarge" id="password">
            </div>
        </div>
    </fieldset>
    <button type="submit" name="action" class="btn btn-primary btn-large">Complete Registration</button>
</form>

但是,当单击按钮时,索引文件不会触发以下操作,这会将字段存储到数据库中。

if (isset($_GET['storeuser']))

如果我将 URL 硬编码为 register.html.php,则生成的 URL 看起来像 localhost/register.html.php?storeuser 而不是 localhost/?storeuser。我不确定这是否会影响这里的行为。

感谢您的帮助!

4

2 回答 2

1

我认为您以错误的方式处理此问题,这不是 Twitter Bootstrap 的错。

通常,您会使用POST而不是GET来处理用户注册。您的表单将如下所示:

<form action="register.php" method="post">
  <!-- your form -->
  <fieldset>
    <input type="submit" name="register" value="Register" class="btn btn-primary" />
  </fieldset>
</form>

然后,您可以按如下方式构建register.php :

<?php
if (isset($_POST['register'])) {
    // handle user registration
}

// display form
?>

这将在用户访问register.php时显示表单,但如果表单已发布,将首先尝试处理用户注册。

于 2012-09-21T18:14:58.930 回答
0

尝试使用 GET 变量传递一个值

<form action="?viewnotes=1" method="post">
于 2012-09-21T18:04:23.780 回答