php注册表单显示白页

时间:2015-10-30 08:02:31

标签: php html database forms pdo

我正在使用php中的pdo ext编写注册表单,但似乎我有某种编译错误,因为我无法再查看页面了。它只是白色。

最后,我希望将4个字段输入数据库,准备与已经完全正常运行的登录系统一起使用。

这是php& HTML

<form method="post">
<div class="form-box">
    <span class="fullname"><p>Full Name: </p></span>
    <input class="fullname-box" type='text' name='fullname'/>
</div>
<div class="form-box">
    <span class="email"><p>Email: </p></span>
    <input class="email-box" type='text' name='email'/>
</div>
<div class="form-box">
    <span class="password"><p>Password: </p></span>
    <input class="password-box" type='password' name='password'/>
</div>
<div class="form-box">
    <span class="company"><p>Company (optional): </p></span>
    <input class="company-box" type='text' name='company'/>
</div>
<div class='container'>
    <button class="button" type='submit' name='Submit' value='Submit' />Register </button>
    <?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {

        if ($statement->execute()) {

        function getPdo()
            {
                $dsn = sprintf(
                    'mysql:host=%s;dbname=%s;charset=utf8',
                    'bifmcpd.db.13611704.hostedresource.com',
                    'bifmcpd');

                    return new PDO($dsn, '********', '********');
            }
                     $fullname = $_POST['fullname'];
                     $email = $_POST['email'];
                    $password = $_POST['password'];
                    $company = $_POST['company']; 

                    $pdo = getpdo();
                    $statement = $pdo->prepare("INSERT INTO icelivestream VALUES (':fullname', ':email', ':password', ':company');")
                    $statement->bindParam(':fullname', $fullname);
                    $statement->bindParam(':email', $email);
                    $statement->bindParam(':password', $password);
                    $statement->bindParam(':company', $company);

                    echo '<script type="text/javascript">window.location = "http://cpdonline.tv/ice-events/livestream.php" </script>';

                    $pdo = null;
        }    
    }

    ?>
</div>
</form>

任何帮助都将受到高度赞赏!

编辑:现在页面已经存在且表格有效...等等。信息正在输入数据库,但它不是实际输入的信息..:fullname:email:password:company是提交数据库的唯一内容

1 个答案:

答案 0 :(得分:1)

$ statement变量未定义。

你需要把:

if ($statement->execute()) {

$statement->bindParam(':company', $company);之后,它将如下所示:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    function getPdo()
        {
            $dsn = sprintf(
                'mysql:host=%s;dbname=%s;charset=utf8',
                'bifmcpd.db.13611704.hostedresource.com',
                'bifmcpd');

                return new PDO($dsn, '***', '***');
        }
        $fullname = $_POST['fullname'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $company = $_POST['company']; 

        $pdo = getpdo();
        $statement = $pdo->prepare("INSERT INTO icelivestream VALUES (:fullname, :email, :password, :company);");
        $statement->bindParam(':fullname', $fullname);
        $statement->bindParam(':email', $email);
        $statement->bindParam(':password', $password);
        $statement->bindParam(':company', $company);

        if ($statement->execute()) {
            echo '<script type="text/javascript">window.location = "http://cpdonline.tv/ice-events/livestream.php" </script>';
        }
        $pdo = null;   
}

或者在error_reporting(E_ALL);之前添加:if ($_SERVER['REQUEST_METHOD'] == 'POST') {

编辑:

在准备工作中,您不需要使用params的单引号,只需使用:$pdo->prepare("INSERT INTO icelivestream VALUES (:fullname, :email, :password, :company);");

相关问题