我用//创建了一个SPA
登录系统。我正处于我所有代码功能的地步——我只是想进行一些验证。例如,“如果文本字段为空白,则回显‘某事’”。if/else 语句在脚本中工作 - 但仍在表单提交时执行,因此它会显示一个带有空白会话信息的受密码保护的页面。php
mysql
jquery
php
jquery
这是登录时运行的脚本:
检查登录.php
<?php
session_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="xxx"; // Mysql password
$db_name="itit"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
$mysqli = new mysqli("$host", "$username", "$password", "$db_name")or die("cannot connect");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
if(!$_POST['myusername'] || !$_POST['mypassword']) {
echo "Username and password cannot be blank!";
session_destroy();
}
else {
$sql = $mysqli->prepare("SELECT * FROM $tbl_name WHERE username=? and password=?");
$sql->bind_param('ss',$myusername,$mypassword);
$sql->execute();
$sql->store_result();//apply to prepare statement
$numRows = $sql->num_rows;
if($numRows === 1){
$_SESSION['username'] = $myusername;
}
else {
echo "Wrong Username or Password";
session_destroy();
}
}
?>
如您所见,我有一个 if 语句来检查用户名或密码字段是否为空。如果它们不是,它会继续,但如果它们是,它应该停止并执行 if 块内的 echo 语句。我想我需要对我的 jquery 做一些事情,让它认识到不应该执行 ajax 调用(或类似的东西)。这是我的jQuery:
js/application.js
$(document).ready(function() {
$("#main").load("templates/indexforms.php", function () {
$("#login").submit(function(e) {
e.preventDefault();
$.post("checklogin.php", $(this).serialize(), function() {
$("#main").load("templates/login_success.php");
$("#login").remove();
$("#register").remove();
});
});
});
});
我基本上需要阻止提交功能的发生......这样页面内容就不会改变。再次......我正在尝试制作一个单页应用程序,所以我只是在我的index.php
文件中的 div 中进行切换。