0
我創建了一個SPA
登錄系統,其中包含php
/mysql
/jquery
。我處於所有代碼函數的地步 - 我只是想做一些驗證。就像,「如果文本框是空白的,回聲'的東西'」。 if/else語句可以在php
腳本中運行 - 但jquery
仍然在表單提交中執行,因此會彈出帶有空白會話信息的受密碼保護的頁面。在php腳本中停止jquery if/else子句
這裏是獲取在登錄時運行該腳本:
checklogin.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的內容。
非常感謝! – ewizard