- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 PHP 相当陌生,也是一名新学生,因此,如果我犯了对有经验的人来说显而易见的错误,我会提前请求原谅我。
我正在开发一个页面提交表单,该表单连接到 mysql 数据库以检查现有值,如果不存在则记录日期时间选择器的字符串值,并附加一个 ID 号以生成唯一值每当有人按下提交键并在接受表单验证后,都会将其发送到表中。如果记录不存在则提交可以正常工作。
但是,每当记录已经存在时,整个页面就会变成空白,而不是在错误消息中显示时间不可用。
最初,我有一个按钮可以检查记录是否存在于 mysql 表中,但后来我决定在完成表单验证时尝试包含 mysql 表的日期验证检查会更有效,这是我遇到麻烦的地方当然是分页并且没有显示任何内容。
如果有人可以指导我,我将不胜感激。
看来我无法添加更多代码,但我会添加错误的内容。
我确实需要初始化脚本顶部的$error='';
以及$DateTime
和$id
,我它位于下面,但忘记将其放在上面,这导致了我的问题。
<?php
$userid = "1";
$strid = strval($id);
$DateTimeCheck = $DateTime . $strid;
$con = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$con->exec("SET CHARACTER SET utf8");
$sql = "SELECT booked FROM user_booking WHERE `booked` = :booked";
$sqlprep = $con->prepare($sql);
$ar_val = array(':booked' => $DateTimeCheck);
if (isset($_POST['datetime'])){
if (!$_POST['name']) {
$error = "<br/>- Please enter your name";
}
if (!$_POST['email']) {
$error .= "<br/>- Please enter your email";
}
if (!$_POST['message']) {
$error .= "<br/>- Please enter a message";
}
if (!$_POST['check']) {
$error .= "<br/>- Please confirm you are human";
}
if ($sqlprep->execute($ar_val)) {
while ($row = $sqlprep->fetch(PDO::FETCH_OBJ)) {
$DateTimeExists = $row->booked;
}
}
if (isset($DateTimeExists) && $DateTimeExists != ''){
$error .= "<br/>- The time you have requested is unavailable";
}
if ($error) {
$result = '<div class="alert alert-danger" role="alert"><strong>Whoops, there is an error</strong>. Please correct the following: ' . $error . '</div>';
} else {
mail("@gmail.com", "Contact message", "Name: " . $_POST['name'] . "
Email: " . $_POST['email'] . "
When: " . $_POST['datetime'] . "
Message: " . $_POST['message']);
{
$result = '<div class="alert alert-success" role="alert">Thank you, someone will be in touch soon to confirm your appointment. </div>';
$id = "$userid";
$strid = strval($id);
$DateTime = $_POST['datetime'];
$DateTimeCheck = $DateTime . $strid;
$strid = strval($id);
$con = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO user_booking ( user_id, booked ) VALUES ( :id, :booked )";
$q = $con->prepare($sql);
$q->execute(array(':booked' => $DateTime . $strid,
':id' => $id));
$con = null;
}
}
}
?>
这是表单的标记。
<form method="post" role="form">
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="Your name"
value="<?php echo $_POST['name']; ?>">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Your email"
value="<?php echo $_POST['email']; ?>">
</div>
<div class="form-group" align="left">
<label class="control-label">Date/Time</label>
<div class='input-group date' id='datetimepicker1'>
<input type='text' name="datetime" class="form-control" placeholder="desired time"
value="<?php echo $_POST['datetime']; ?>">
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<textarea name="message" rows="5" class="form-control"
placeholder="message..."><?php echo $_POST['message']; ?></textarea>
</div>
<div class="checkbox" align="left">
<label class="readable" align="left">
<input type="checkbox" name="check"> I am human
</label>
</div>
<div align="left">
<input type="submit" name="submit" class="btn btn-success" value="Book Appointment!"/>
</div>
</form>
最佳答案
如果您使用 .=
,则需要先初始化该变量,然后 .=
对变量起作用。
您尝试在此 IF block 中执行此操作
if (!$_POST['name']) {
$error = "<br/>- Please enter your name";
}
但如果该错误不存在,您将永远不会真正初始化 $error
变量。
所以简单的解决方案是在进入这部分代码之前初始化$error
$error = '';
if (isset($_POST['datetime'])){
// So now you can change this test to use .=
if (!$_POST['name']) {
$error .= "<br/>- Please enter your name";
}
现在该变量可以在代码中进行测试
If this is in fact the problem here, you should have been getting errors reported. If you didnt see any then try adding these lines of code to any problem script while you test it
ini_set('display_errors', 1);
ini_set('log_errors',1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
关于PHP MySQL 如果日期和时间不可用添加到警报消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59646771/
如何检测当前网络中计算机是否已连接/可用。 当然,它有多种用途,但我主要关心的是我的应用程序使用位于特定计算机中的资源,如果这些资源不可用,它甚至不会尝试连接,而是使用本地资源。 最佳答案 您可以尝试
雅虎建议load scripts at the bottom of an HTML pages出于性能原因。我使用遵守规则的 HTML5 Boilerplate。 这种方法的问题是 jQuery 也是
我有一个场景,我需要只向管理员而不是普通用户展示一个组件。 说, // This component should be rendered for public users.
我有一个数组,比方说 ["a","b","c"],我想把它变成一个对象,它以数组值作为键和一个默认值我可以设置。因此,如果默认值为 true,我希望我的输出为 {a:true, b:true, c:t
我假设在函数中创建一个新的 PS-Drive 会使该驱动器只能在该函数中访问。 如何通过从该函数可访问的 MAIN 调用函数来创建 PS 驱动器? $temproraryPSDriveName =
您会推荐哪些 .net 控制库作为企业必备的? 可以免费/非免费 至少应该包含一个真正强大的Datagrid Ajax 功能 有没有可用的比较? 最佳答案 我用过 Telerik ASP.NET控制之
假设我有一些像这样的 html: Hello World Javascript代码: var fooBar = document.getElementById('fooBar'); fooBar.
开始实现 camera plugin 时出现以下错误在我的 flutter 应用程序上: [VERBOSE-2:dart_error.cc(16)] Unhandled exception:
我想知道应该在哪里正确放置 countA,因为我希望将计数添加到所做的每个按钮中。开头的“count”变量用于制作新按钮,“countA”是我试图声明的计数,但它无法编译。这是我的代码片段:我的问题再
在python帮助文档中我经常看到带有函数名和命名参数的签名行,然后你会看到**kwarg(关键字参数)。 list? 打印到帮助文档字符串: Init signature: list(self, /
我是 UWP 的新手,想知道“Flyout”、“ContextFlyout”和“Popup”之间的区别。另外,我想知道“AppBar”和“CommandBar”之间的区别。我相信这些是容纳菜单或菜单项
我想显示可用的 Wifi 设备列表。这是我的代码,我不明白这里有什么错误: wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); i
这是我的代码: Random = function(name) { this.name = name; this.addSomething = function(a, b) {
我希望我的按钮持续动画直到用户触摸它,这是代码 func animate() { UIView.animateWithDuration(1, animations: { () -> Void
我正在为我正在参加的类(class)制作一个 HTTP 服务器作为项目,一周来我一直在尝试寻找解决方案。我有一个 DataInputStream,我需要等待客户端向我发送 http 请求,由于连接保持
我想创建一个 bash 脚本来检查我的 Linux 服务器中的哪些端口已关闭且未在特定范围(端口范围 (3000-3010))中使用。 打印输出只需1个端口,如果将输出保存为变量或保存在同一个文件中,
我写了一个我认为是最小的自定义设备来测试我对 QOM 和 QEMU 的总体理解。以下是省略注释的相关代码。不幸的是,当我启动 guest 并将我的设备名称作为命令行参数传递时,它无法找到我的设备并退出
调用Opencv函数时,通常会提供一个常量给函数调用,如: im_hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV) 虽然我找不到对所有可用常量的引用。 Opencv
C++ 于 1998 年正式标准化,但我们能在多久以前找到一个名为 string 的类,它看起来像 C++2003 中的 std::string预标准 C++ 实现? 我问是因为 CString 作为
是否有一个官方的(或可能没有)git 命令列表,--porcelain 选项可用?或者我应该在 the porcelain commands list 中手动查看它们中的每一个吗? ? 我已经设法用谷
我是一名优秀的程序员,十分优秀!