感谢您抽出时间来阅读。这个问题之前可能已经回答过,也可能没有回答过,我可能一直在寻找错误的地方,但我在这里遇到了死胡同,我希望我能寻求一些帮助以找到解决方案。
在将查询发送到我的数据库之前,我正在使用对特定字段和复选框进行验证的基本表单。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// validate the text inputs
$err = array();
if (empty($_POST['A'])) {
array_push($err, "A is required.");
}
if (empty($_POST['B'])) {
array_push($err, "B is required.");
}
if (empty($_POST['C'])) {
array_push($err, "C is required.");
} else {
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
if (!eregi($pattern, $_POST['email'])) {
array_push($err, "Incorrect email.");
}
}
if (empty($_POST['D'])) {
array_push($err, "D is required.");
if (sizeof($err) != 0) {
echo "<p style='color: red'>The following files haven't been filled yet.</p>";
echo "<ul style='list-style:circle !important;color: red !important;'>";
foreach ($err as &$value) {
echo "<li style='background: 0;list-style: disc inside none;color: red;'>" . $value . "</li>";
}
echo "</ul>";
echo "<br/>";
}
// validate the agree checkbox
if (sizeof($err) == 0 && !isset($_POST['agree'])) {
array_push($err, "Please agree with the ToS.");
foreach ($err as &$value) {
echo "<p style='color: red'>" . $value . "</p>";
}
}
}
?>
然后在表格里面我们得到了这个:
<?php echo isset($_POST['a']) ? $_POST['a'] : ''; ?>"
其他行是相同的,所以我会让你不必阅读一个巨大的块。从那里我将代码发送到:
<?php
// redirect if form is valid
if (sizeof($err) == 0 && isset($_POST['agree'])) {
// set post data in session
session_start();
$_POST = $_SESSION['POSTDATA'];
$con = mysqli_connect("localhost", "x", "y", "z");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "INSERT INTO esselte_nl (a, b, email, c, d) VALUES
('$_POST[a]',
'$_POST[b]',
'$_POST[email]',
'$_POST[c]',
'$_POST[d]')";
if (!mysqli_query($con, $sql)) {
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
// redirect to result.php
exit('<meta http-equiv="refresh" content="0; url=resullt"/>');
return;
session_destroy();
}
?>
最糟糕的是,我相当肯定这是某个地方的一些非常小的错误,而我忽略了它,非常令人沮丧。因此,如果有人可能指出我在这里做错了什么,我将不胜感激。
友好的问候,user2747008(我真的应该选择一个名字)
PS:对不起,我搞砸了复制粘贴信息。