gpt4 book ai didi

php - JQuery AJAX 403 禁止访问

转载 作者:搜寻专家 更新时间:2023-10-31 20:41:14 25 4
gpt4 key购买 nike

我创建了一个使用 PHP 和 JQuery 的登录页面。问题是,每次 JQuery $.ajax 尝试访问 user_login.php 文件时,我都会遇到 403 Forbidden 错误。

以下是我当前的代码:

user_index.php

<!DOCTYPE html>
<html>
<head>
<title>Foot Steps Philippines -- User Log-in</title>
<link rel="icon" type="image/png" href="images/favicon.png">
<link rel="stylesheet" type="text/css" href="styles/user_login_style.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="user_login.js"></script>
</head>

<body>
<div class="login_wrapper">
<h3>Log-In</h3>
<form id="fsp_login_form" name="fsp_login_form" action="user_login.php" method="POST">
<input type="email" name="fsp_email" id="fsp_email" placeholder="E-mail Address" />
<input type="password" name="fsp_password" id="fsp_password" placeholder="Password" />
<input type="submit" name="fsp_login" id="fsp_login" value="Log-In" />
<h4 id="login_message"></h4>
</form>
<div class="links">
<a href="">Forgot Password?</a>
</div>
<div class="note">*To register, please e-mail us at contact@footsteps.ph</div>
<div class="footer"></div>
<div class="logo"></div>
</div>
</body>
</html>

user_login.js

$(document).ready(function(){
$("#fsp_login_form").submit(function(){
$('#login_message').html("Please wait...");
var action = $('#fsp_login_form').attr('action');
var form_data = {
fsp_email: $('#fsp_email').val(),
fsp_password: $('#fsp_password').val(),
is_ajax: 1
};

$.ajax({
type: "POST",
url: action,
data: form_data,
dataType: "text",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function(response) {
if ( response == 'success' ) {
$('#login_message').html("Login successful!");
setTimeout(function(){ window.location.href = 'user_cpanel.php'; }, 2000);
}
else {
$('#login_message').html("Login failed!");
}
},
error: function(err) {
//$('#login_message').html(err.responseText);
alert(err.responseText);
}
});
return false;
});
});

user_login.php

<?php
ob_start();
session_start();
include 'conn.php';

$is_ajax = $_REQUEST['is_ajax'];
$res = "";

if ( isset($is_ajax) && $is_ajax ) {
$email_address = $_REQUEST['fsp_email'];
$password = $_REQUEST['fsp_password'];

// Protect to MySQL injection.
$email_address = stripslashes($email_address);
$email_address = mysqli_real_escape_string($conn, $email_address);
$password = stripslashes($password);
$password = mysqli_real_escape_string($conn, $password);

$sql = "SELECT * FROM user_info WHERE email_address = '".$email_address."' AND password = '".$password."'";

if ( $result = mysqli_query($conn, $sql) ) {
if ( mysqli_num_rows($result) > 0 ) {
$client_id = 0;
$premium = 0;
while ( $row = mysqli_fetch_array($result) ) {
$client_id = $row['id'];
$premium = $row['premium_member'];
}
$_SESSION['client'] = $client_id;
$_SESSION['premium'] = $premium;
$res = "success";
}
else {
$res = "failed";
}
mysqli_free_result($result);
}
else {
$res = "failed";
}
}
else {
$res = "failed";
}
mysqli_close($conn);
echo $res;
?>

conn.php*注意:我有意使用我的本地主机数据库配置。我在将它上传到我的网络托管服务器时已经对其进行了调整。

<?php
$conn = mysqli_connect("localhost", "root", "", "footstep_db");

// Check connection.
if ( mysqli_connect_errno() ) {
echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
else {
// nothing to do.
}
?>

所有文件都在同一个目录下,都有0644权限。你们对如何修复错误有任何想法吗?顺便说一句,我的登录页面在本地主机上运行时运行完美。但是当用我的网络托管服务器上传时它不起作用。我尽可能无法访问我的虚拟主机的 PHP 配置文件和 Apache 配置文件,请尽量不要给出需要重新配置 PHP 和 Apache 的解决方案。

谢谢:-)

最佳答案

问题解决了!我只是要求我的虚拟主机为我的域创建一个异常(exception)。我认为他们服务器的 mod_security 设置会导致 403 禁止错误。

关于php - JQuery AJAX 403 禁止访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21130474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com