gpt4 book ai didi

javascript - 意外 session 破坏

转载 作者:行者123 更新时间:2023-11-28 08:00:32 25 4
gpt4 key购买 nike

我正在尝试通过我的主页上的 ajax 更新我的用户详细信息。但是ajax完成任务后,它破坏了我的 session 。这确实出乎意料,我找不到任何会破坏我的 session 的代码。请帮我找出导致 session 破坏的原因。

我的 PHP 脚本

updateprofiledetails.php

<?php
session_start();

if (isset($_SESSION['UserID']) && isset($_SESSION['Role']) && $_SESSION['Role']="clients" || $_SESSION['Role']="Administrator") {

require_once("../configuration.php");

$con=new mysqli($hostname,$dbusername,$dbpass,$dbname);

if (mysqli_connect_errno($con)) {
die('The connection to the database could not be established.');
}

$uid=$_SESSION['UserID'];

if (!empty($_POST['password'])) {

$password=$_POST['password'];
$password=$con->real_escape_string($password);
$confirmpassword=$_POST['confirmpassword'];
$confirmpassword=$con->real_escape_string($confirmpassword);

if($password!==$confirmpassword){

echo "Password And Confirm Password Didn't Match";
exit();

} else {

$password=md5($password);
$querypassword="UPDATE users SET Password='$password' WHERE id='$uid'";
$con->query($querypassword);
echo "Password";

}

}

if (!empty($_POST['first_name'])) {

$first_name=$_POST['first_name'];
$first_name=$con->real_escape_string($first_name);
$queryfirstname="UPDATE users SET First_Name='$first_name' WHERE id='$uid'";
$con->query($queryfirstname);
echo "Updated First Name, ";

}

if (!empty($_POST['last_name'])) {

$last_name=$_POST['last_name'];
$last_name=$con->real_escape_string($last_name);
$querylastname="UPDATE users SET Last_Name='$last_name' WHERE id='$uid'";
$con->query($querylastname);
echo "Last Name,";

}

if (!empty($_POST['company'])) {

$company=$_POST['company'];
$company=$con->real_escape_string($company);
$querycompany="UPDATE users SET company='$company' WHERE id='$uid'";
$con->query($querycompany);
echo "Company";
}

if (!empty($_POST['email'])) {

$email=$_POST['email'];
$email=$con->real_escape_string($email);
$queryemail="UPDATE users SET Email_Address='$email' WHERE id='$uid'";
$con->query($queryemail);
echo "Email Address,";
}

$con->close();
}
?>

我的js文件:

    $("#profiledetails form").submit(function(event){

event.preventDefault();
var postData = $(this).serializeArray();

$.ajax({

url: "/function/updateprofiledetails.php",
type: "POST",
data: postData,
success:function(data, textStatus, jqXHR) {
$("#alert").show().html("<strong>Alert!!! </strong>"+data).delay(10000).fadeOut();

},
error: function(jqXHR, textStatus, errorThrown){
//if fails
}
})
})

最佳答案

当您应该使用某些比较运算符时,您却在使用赋值。

否:

$_SESSION['Role']="clients"

接下来是一个更好的解决方案,并且在大多数情况下足够好:

$_SESSION['Role']=="clients"

接下来,(可以说)最好的解决方案。使用 === 就没有类型强制。这在这里并不重要,但是如果您需要比较一个可能被强制转换为数字的值,而您不希望这种情况发生,那么您最终可能会遇到一个微妙的错误。

$_SESSION['Role']==="clients"

另请参阅: http://php.net/manual/en/language.operators.comparison.php

关于javascript - 意外 session 破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25466305/

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