关于PHP中注册表单的单一行为

时间:2014-01-21 13:53:28

标签: javascript php html twitter-bootstrap

我在以下表格的(项目)网站上有一个注册表格:(我使用了bootstrap框架):

<div id="main-box" class="container">
        <div class="row-fluid"> 
            <div id="signup">
                <div id="float"></div>
                <div id="center_signup">
                    <h3>Registrazione Studente</h3> 
                    <?php if (isset($registerError)): ?>
                        <p><?php htmlout($registerError); ?></p>
                    <?php endif; ?> 
                    <form action="" method="post" class="form-horizontal">
                        <div class="form-group">
                            <label for="nome" class="col-sm-2 control-label">Nome: </label> 
                            <div class="col-sm-6">
                                <input type="text" name="nome" id="nome" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="email" class="col-sm-2 control-label">Email: </label> 
                            <div class="col-sm-6">
                                <input type="text" name="email" id="email" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="password" class="col-sm-2 control-label">Password: </label> 
                            <div class="col-sm-6">
                                <input type="password" name="password" id="password" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-6">
                                <button type="submit" class="btn btn-success">Submit</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>

    </div>

现在,表单的数据是从index.php控制器文件管理的,这样做(register.html.php文件是模板文件,其中有上面的代码):

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

    if (!isset($_POST['email']) or $_POST['email'] == '' or 
    !isset($_POST['password']) or $_POST['password'] == '')
    {
        $GLOBALS['registerError'] = 'fill in both fields';
        exit();
    }

    $password = md5($_POST['password'] . 'figarodb');

    if (databaseContainsUser($_POST['email'], $password))
    {
        $GLOBALS['registerError'] = 'Student already registered.';
        exit();
    }

    include $_SERVER['DOCUMENT_ROOT'] . '/figaro/includes/db.inc.php';

    // Puts the student in the relevant table
    try
    {
        $sql = 'INSERT INTO studente SET 
                    nome = :nome,
                    email = :email, 
                    password = :password';
        $s = $pdo->prepare($sql);
        $s->bindValue(':nome', $_POST['nome']);
        $s->bindValue(':email', $_POST['email']);
        $s->bindValue(':password', $password);
        $s->execute();
    }
    catch (PDOException $e)
    {
        $error = 'Errore in student registration.';
        include $_SERVER['DOCUMENT_ROOT'] . '/figaro/includes/error.html.php';
        exit();
    }

    header('Location: .');
    exit();
}

此标题可能会在主页重定向,但它不会这样做! 如果不是带有bootstrap和javascript代码的页面,我会以这种方式修改注册页面:

<body>
    <h1>Registration</h1>       
    <form action="" method="post">
        <?php if (isset($registerError)): ?>
            <p><?php echo $registerError; ?></p>
        <?php endif; ?>
        <div>
            <label for="name">Nome completo: <input type="text" name="nome"
                id="nome"></label>
        </div>
        <div>
            <label for="email">Email: <input type="text" name="email"
                id="email"></label>
        </div>
        <div>
            <label for="password">Password: <input type="password"
                name="password" id="password"></label>
        </div>
        <div>
            <input type="submit" value="Invio">
        </div>
    </form>
</body>

现在控制器正确地重定向到主页! 我无法解释这种行为,任何帮助都将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

在你的php文件中写有:

header('Location: .');

默认情况下,您的Web应用程序可能会在index.html上重定向,因为它是默认的根目录。