我正在使用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是提交数据库的唯一内容
答案 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);");