gpt4 book ai didi

php - POST - 500(内部服务器错误)

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:28 25 4
gpt4 key购买 nike

在我的例子中,我使用 JQuery 和 PHP 通过 $.post 发送 POST 请求。

但是我在发布数据时遇到了这个错误。

发布 https://xxxxxxxxxxxxx/xxxxxxxxxxx/php/control/LoginControl.php 500(内部服务器错误)

这是我的 jquery 代码:

var url = 'php/control/LoginControl.php';
$.post(url,
{
task : "login_verify",
username:_username ,
password:_user_password,
})
.error(function(er){
console.log(er);
})
.success(
function(data){
if(data == true){
window.location = 'index.php';
}else{
$("#user_password" ).css({border:'1px solid red'});
}
}
);

PHP - 登录控制.php

<?php 
try{
if(isset($_POST) && $_POST['task'] == 'login_verify'){
$user_name = $_POST['username'];
$password = md5($_POST['password']);

require '../class/login.php';
if(class_exists('Login')){
$user = Login::verifyCredentials($user_name,$password);
if($user != NULL){
if(isset($_SESSION)){
session_destroy();
}
session_start();
$_SESSION['uid'] = $user[0]->ADMIN_ID;
echo true;
}else{
echo false;
}
}
}
} catch (Exception $ex){
echo $ex;
}
?>

注意:我在实时测试服务器上成功部署了这段代码。它完全可以正常工作。但是在新服务器上我收到了这个错误。我在这台新服务器上使用 SSL 这可能是个问题。

如果信息不够,请评论。请帮忙。

最佳答案

这是对您的脚本的编辑。也许与此类似的事情会有所帮助。

JS:

 $(function()
{
var url = 'php/control/LoginControl.php';
$.post(url, {
task: "login_verify",
username: _username,
password: _password
}, function(data, status, xhr)
{
// success
if(data.error===false)
window.location = 'index.php';
else
$("#user_password").css({border: '1px solid #ff0000'});
}).error(function(xhr, status, error)
{
console.log("Error loading page. Status: "+status+" | Error: "+error);
});
});

PHP:

 <?php
// Session must be started before session checking and destroying can happen
session_start();

// Set error true by default
// Error is always returned.
// If no error, it'll be set to false in if statement
// So a value will always be returned.
$return['error'] = true;

if(isset($_POST) && $_POST['task'] == 'login_verify')
{
require_once __DIR__.'/../class.login.php';
if(class_exists('Login'))
{
$uname = $_POST['username'];
$passwd = $_POST['password'];
$user = Login::verifyCredentials($uname, $passwd);
if(!empty($user))
{
if(isset($_SESSION))
session_destroy();

$_SESSION['uid'] = $user[0]->ADMIN_ID;
}
else
$return['error'] = false;
}
}

echo @json_encode($return);

我确实在您的 PHP 脚本中注意到并在我的编辑中更正的一件事是当没有 session 打开时您正在使用 $_SESSION 和 session_destroy()。在任何 session 方法或魔术变量对您可用之前,您必须首先定义 session_start()。这就是为什么我将它放在 PHP 脚本的最顶部。

此外,如果您想使用其他数据类型而不是 json,最简单的方法就是使用 $.ajax() 函数

 var loginData = {
username: _username,
password: _password,
task: 'login_verify'
};

$.ajax({
url: url,
type: 'post',
data: loginData,
dataType: 'html',
success: function(data, status, xhr)
{
// If page loading was a success. i.e. 200 OK status message
},
error: function(xhr, status, error)
{
// error. Status other than 200
}
});

============================================= =======================编辑:新代码看看这个,看看这是否有帮助。

PHP:

 <?php
$return['error'] = true;

if(isset($_POST) && $_POST['task'] == 'login_verify')
{
if(!empty($_POST['formData']['username']))
{
if(!empty($_POST['formData']['password']))
{
$return['error'] = false;
$message = "The AJAX call was successfull! The data passed is listed below.\n\n"
. "task: " . $_POST['task'] . "\n"
. "username: " . $_POST['formData']['username'] . "\n"
. "password: " . $_POST['formData']['password'];

$return['message'] = $message;
}
else
$return['message'] = 'Password is empty!';
}
else
$return['message'] = 'Username is empty!';
}
else
{
$return['message'] = 'Invalid request! ' . $json->task;
}

echo @json_encode($return);

JavaScript:

 $(function()
{
$("#login").click(function()
{
var jdata = {
task: 'login_verify',
formData: {
username: $("#username").val(),
password: $("#password").val()
}
}

$.ajax({
url: 'login.php',
type: 'post',
dataType: 'json',
data: jdata,
cache: false,
success: function(data, status, xhr)
{
var dataStatus = (data.error===true) ? "Error" : "Success";
var message = "Status: " + dataStatus + "\n"
+ data.message;

alert(message);
},
error: function(xhr, status, error)
{
alert('Error: ' + error);
}
});

return false;
});
});

此代码有效。我有它的现场版。确切的代码和所有。 AJAX/PHP Example

希望对你有帮助

关于php - POST - 500(内部服务器错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710958/

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