【发布时间】:2014-04-25 23:24:28
【问题描述】:
我无法将表单发送到我的数据库。我已经尝试了一个小时来解决这个问题;我用“echo mysqli_error();”弄乱了我的代码但没有收到错误,只是我的数据库中缺少新数据(似乎提交表单也没有重新加载页面以发送信息)。该数据库使用 config.php、connectDB.php 和 header.php 为我的其余页面工作,因此问题不在于数据库设置。我相信错误在“isset($_POST['submit'])”内,因为它不会重新加载带有 header() 的页面,但我提供了我的其余代码以防万一。 (我知道这段代码没有受到 SQL 注入的保护,表单验证是我解决这个问题后的下一步):
<?php
require_once ("Includes/config.php");
require_once ("Includes/connectDB.php");
include("Includes/header.php");
if (isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$content = $_POST['content'];
$query = "INSERT INTO requests (name, email, content) VALUES (?, ?, ?)";
$statement = $databaseConnection->prepare($query);
$statement->bind_param('sss', $name, $email, $content);
header('Location: /index.php');
$statement->execute()
$statement->store_result();
setcookie("nameErr"," ", time()+3600);
setcookie("emailErr"," ", time()+3600);
setcookie("contentErr"," ", time()+3600);
setcookie("contentSucc","Announcement Request Successful", time()+3600);
header('Location: /request.php');
}
?>
<div id="main">
<ol>
<li>
<label for="name">Name:</label>
<input type="text" name="name" value="" id="name" />
<span class="error">* <?php if (isset($_COOKIE["nameErr"])){echo $_COOKIE["nameErr"];}?></span>
</li>
<li>
<label for="email">Email:</label>
<input type="text" name="email" value="" id="email" style = "position: relative; left: 3px;"/>
<span class="error" style = "position: relative; left: 3px;">* <?php if (isset($_COOKIE["emailErr"])){echo $_COOKIE["emailErr"];}?></span>
</li>
<li>
<label for="content">Requested Announcement:</label><br>
<textarea rows="18" cols="140" name="content" id="content"></textarea>
<br>
<span class="error"> <?php if (isset($_COOKIE["contentErr"])){echo $_COOKIE["contentErr"];}?></span>
<span class="error"> <?php if (isset($_COOKIE["contentSucc"])){echo $_COOKIE["contentSucc"];}?></span>
</li>
</ol>
<input type="submit" name="submit" value="Submit " style = "position: relative; left: 40px;" />
<!-- onclick="window.location='request.php';" -->
<p>
<a class="cancel" href="index.php" style = "position: relative; left: 40px;">Cancel</a>
</p>
</div>
【问题讨论】:
-
您似乎在任何地方都没有
<form>声明... -
当您尝试在 3 小时的睡眠中进行编码时会发生这种情况。对不起,我会做那个编辑。谢谢!
-
我会怀疑
execute()之前的那个header()调用。你的服务器错误日志有什么说明吗? -
那是我在使用 header() 测试我的代码后忘记删除它。我想贾斯汀明白了!