- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,抱歉,如果这个问题问得太多了,但我在网站上看到的所有问题都没有帮助我,正如标题所指出的,我有一个插入查询,可以为我正在创建的网站创建一个帐户但是当我按下提交按钮时,它什么都不做……只是刷新页面。
注意:包括数据库。网站的这一部分包含在 signup.php 中,连接文件包含在 signup.php 中。经过测试,我可以从 connect.php 中获取,所以我认为这不是问题所在。尽管这并不能证明为什么代码不会总是运行。
在排除故障和测试后,我发现通过删除这部分代码:
if (
$username_error_message_status = false
and $password_error_message_status = false
and $email_error_message_status = false
and $bot_check_error_message_status = false
) {
代码有效,但插入查询语句无效。因此,我们将不胜感激并感谢您的阅读。
完整代码:
<?php
$sign_up_button = isset($_POST["sign_up_button"]);
$username_error_message = $password_error_message = $email_error_message = $bot_check_error_message = "";
$username_error_message_status = $password_error_message_status = $email_error_message_status = $bot_check_error_message_status = "";
$username_field = $email_field = "";
if ($sign_up_button) {
$username_field = $_POST["sign_up_username"];
$password_field = $_POST["sign_up_password"];
$email_field = $_POST["sign_up_email"];
$bot_check_field = isset($_POST["sign_up_bot_check"]);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($username_field)) {
$username_error_message_status = true;
$username_error_message = "This field is required.";
}
else {
$username_error_message_status = false;
}
if (empty($password_field)) {
$password_error_message_status = true;
$password_error_message = "This field is required.";
}
else {
$password_error_message_status = false;
}
if (empty($email_field)) {
$email_error_message_status = true;
$email_error_message = "This field is required.";
}
else {
$email_error_message_status = false;
}
if ($bot_check_field < 100) {
$bot_check_error_message_status = true;
$bot_check_error_message = "Please slide the slider to the end.";
}
else {
$bot_check_error_message_status = false;
}
}
if (
$username_error_message_status = false
and $password_error_message_status = false
and $email_error_message_status = false
and $bot_check_error_message_status = false
) {
/* --- --- --- --- --- --- --- --- Check username availability --- --- --- --- --- --- --- --- */
$check_username_query = "SELECT `Username` FROM `users` WHERE `Username` = '$username_field' ";
$check_username_query_result = mysqli_query($GLOBALS["___mysqli_ston"], $check_username_query);
$numrows_check_username_query_result = mysqli_num_rows($check_username_query_result);
if ($numrows_check_username_query_result == 1) {
$username_availability_status = false;
?>
<p><span class = "sign-up-error-tag">That username already exists in our database. Please choose another.</span></p>
<?php
}
else {
$username_availability_status = true;
}
/* --- --- --- --- --- --- --- --- Check email availability --- --- --- --- --- --- --- --- */
$check_email_query = "SELECT `Email` FROM `users` WHERE `Email` = '$email_field' ";
$check_email_query_result = mysqli_query($GLOBALS["___mysqli_ston"], $check_email_query);
$numrows_check_email_query_result = mysqli_num_rows($check_email_query_result);
if ($numrows_check_email_query_result == 1) {
$email_availability_status = false;
?>
<p><span class = "sign-up-error-tag">That email already exists in our database. Please choose another.</span></p>
<?php
}
else {
$email_availability_status = true;
}
/* --- --- --- --- --- --- --- --- Check email validity --- --- --- --- --- --- --- --- */
if (filter_var($email_field, FILTER_VALIDATE_EMAIL)) {
$email_validity_status = true;
}
else {
$email_validity_status = false;
?>
<span class = "sign-up-error-tag">That email is invalid. Please choose another.</span>
<?php
}
/* --- --- --- --- --- --- --- --- Hashing password --- --- --- --- --- --- --- --- */
function better_crypt($input, $rounds = 7) {
$salt = "";
$salt_chars = array_merge(range('A','Z'), range('a','z'), range(0,9));
for($i=0; $i < 22; $i++) {
$salt .= $salt_chars[array_rand($salt_chars)];
}
return crypt($input, sprintf('$2a$%02d$', $rounds) . $salt);
}
$password_field_hash = better_crypt($password_field);
$password_field_hash = better_crypt($password_field, 10);
$password_field_hash = better_crypt($password_field, 15);
/* --- --- --- --- --- --- --- --- Create account in database --- --- --- --- --- --- --- --- */
$sign_up_date = date("Y-m-d h:i:sa");
$sign_up_code = rand();
$sign_up_active_status = "0";
$create_account_query = mysqli_query($GLOBALS["___mysqli_ston"], "INSERT INTO `users`(`Username`, `Email`, `Password`, `RegisterCode`, `Date`, `ActiveStatus`) VALUES ('$username_field', '$email_field', '$password_field_hash', '$sign_up_code', '$sign_up_date', '$sign_up_active_status')");
/* --- --- --- --- --- --- --- --- Send activation email --- --- --- --- --- --- --- --- */
$email_to = $email_field;
$WebsiteName = "ForTheHodor";
$email_message = "
<table width='100%' border='0' cellspacing='0' cellpadding='3'>
<tr>
<td colspan=2><b>".$WebsiteName."</b></td>
</tr>
<tr>
<td colspan=2>Thank you for creating an account.</td>
</tr>
</table>
<hr><h3>Account info</h3><hr>
<table width='100%' border='0' cellspacing='0' cellpadding='3'>
<tr>
<td width='28%' >Username : </td>
<td width='72%'>".$username_field."</td>
</tr>
<tr>
<td>Email : </td>
<td>".$email_field."</td>
</tr>
</table>
<p>".$WebsiteName." advise you not to delete this email for it contains informations that could be in use later.</p>
<hr><h3>Account activation</h3><hr>
<p>If you wish to activate your account please use the following link : </p>
<p><a href = 'localhost/SignalShare/activate.php' style = 'text-decoration: none; color: blue;' >Activate account</a></p>
<p>Activiation code :</p>
<p>".$sign_up_code."</p>
<hr>
<p>If this email does not concern you please ignore it.</p>
<p>All regards.</p>
<p>".$WebsiteName."</p>
";
$email_subject = "Accout activation";
$email_headers = "From:".$WebsiteName."\r\n";
$email_headers .= "Content-type: text/html\r\n";
mail($email_to, $email_subject, $email_message, $email_headers);
echo $email_message;
}
}
?>
<div id = "SignupForm">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Sign up</h3>
</div>
<div class="panel-body">
<span>
<form method = "POST" action= "signup.php">
<table class = "table table-borderless">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class = "Sign-up-tag">Username</span>
</td>
<td>
<input type = "text" name = "sign_up_username" class = "sign-up-field" value = "<?php echo $username_field; ?>"></input>
</td>
</tr>
<tr>
<td>
</td>
<td>
<span class = "sign-up-error-tag"><b><?php echo $username_error_message; ?></b></span>
</td>
</tr>
<tr>
<td>
<span class = "Sign-up-tag">Password</span>
</td>
<td>
<input type = "password" name = "sign_up_password" class = "sign-up-field"></input>
</td>
</tr>
<tr>
<td>
</td>
<td>
<span class = "sign-up-error-tag"><b><?php echo $password_error_message; ?></b></span>
</td>
</tr>
<tr>
<td>
<span class= "Sign-up-tag">Email</span>
</td>
<td>
<input type = "text" name = "sign_up_email" class = "sign-up-field" value = "<?php echo $email_field; ?>"></input>
</td>
</tr>
<tr>
<td>
</td>
<td>
<span class = "sign-up-error-tag"><b><?php echo $email_error_message; ?></b></span>
</td>
</tr>
<tr>
<td>
<span class= "Sign-up-tag">Bot check</span>
</td>
<td>
<input id= "defaultSlider" type="range" min="0" max="100" value = "0" name = "sign_up_bot_check"/>
</td>
</tr>
<tr>
<td>
</td>
<td>
<span class = "sign-up-error-tag"><b><?php echo $bot_check_error_message; ?></b></span>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type = "submit" name = "sign_up_button" class="btn btn-success" value = "Sign up"></input>
</td>
</tr>
</tbody>
</table>
</form>
</span>
</div>
</div>
</div>
表模式:
-- phpMyAdmin SQL Dump
-- version 4.5.5.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 12, 2016 at 07:59 AM
-- Server version: 5.7.11
-- PHP Version: 5.6.19
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `forthehodor`
--
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE `users` (
`ID` int(11) NOT NULL,
`Username` varchar(32) NOT NULL,
`Email` varchar(45) NOT NULL,
`Password` varchar(32) NOT NULL,
`RegisterCode` varchar(50) NOT NULL,
`Date` varchar(50) NOT NULL,
`ActiveStatus` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Indexes for table `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`ID`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
最佳答案
您的 remove if 查询应如下所示:
if (
$username_error_message_status == false
and $password_error_message_status == false
and $email_error_message_status == false
and $bot_check_error_message_status == false
) {
如果要比较值,您需要在 if 语句中使用双等号 (==
) 而不是单个等号 (=
)。
关于PHP 插入查询不起作用并且没有给出任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39993367/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!