gpt4 book ai didi

php ajax post数据没有刷新但保存到 session 只适用于刷新

转载 作者:行者123 更新时间:2023-11-30 18:32:23 24 4
gpt4 key购买 nike

我已经被这个问题困了两天了。我找到了无需刷新即可发布数据的代码,但似乎如果它不刷新,则这些值实际上并未保存到 $_SESSION 超全局。

我的 jquery 代码:

       $('.login_error').hide();
$('#sublogin').click(function(){
$('.login_error').hide();

var jusername = $('#loginusername').val();
var jpassword = $('#loginpassword').val();


if(jusername == ""){
$('label#username_error').show();
//return false;
}
if(jpassword == ""){
$('label#password_error').show();
return false;
}
var dataString = 'loginusername='+jusername+'&loginpassword='+jpassword;
$.post('login.php', dataString, function(data) {
$('#header').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>")
.append("<p>We will be in touch soon.</p>")
.hide()
.fadeIn(1500)
});
// return false
});

我的 login.php 代码:

<?php

//set the variables
$username = isset($_POST['loginusername'])? $_POST['loginusername']:'';
$password = isset($_POST['loginpassword'])? $_POST['loginpassword']:'';
$step = isset($_POST['step']) ? $_POST['step'] : '1';
if($step=='2'){
//validation is done in javascript
//if there are no errors
if(empty($loginErrors)){
//sanitizes data for use in query.
$username = trim(mysql_real_escape_string($username));
$password = md5(trim(mysql_real_escape_string($password)));
$query = "SELECT user_level, username, password FROM user WHERE username='$username' AND password='$password'";
$result = mysql_query($query) or die('query did not go through');
if($result!=false){
$query_row = mysql_fetch_assoc($result);
$_SESSION['user_level']=$query_row['user_level'];
$_SESSION['username']=$query_row['username'];
$_SESSION['password']=$query_row['password'];
}
}
}
if($step=='1'){

?>

<form class="login_fields" id="login_fields" name="login" method="POST">
<input type="hidden" name="step" value="2"/>
<div class="dtable">
<div class="dtr">
<span class="dtd">
<label name="name_label" for="username_box"> Username </label>
</span>
<span class="dtd">
<input type="text" id="loginusername" name="loginusername" maxlength="25" value=""/>
</span>
<span class="tdt">
<label for="username" id="username_error" class="login_error">Username field can not be blank</label>
</span>
</div>
<div class="dtr">
<span class="dtd">
<label name="pass_label" for="username_box"> Password </label>
</span>
<span class="dtd">
<input type="password" id="loginpassword" name="loginpassword" maxlength="20" value=""/>
</span>
<span class="tdt">
<label for="password" id="password_error" class="login_error">Password field can not be blank</label>
</span>
</div>
<div class="dtr">
<span class="dtd">
<input type="submit" name="sublogin" id="sublogin" value="login"/>
</span>
</div>
</div>
<div class="output" id="output" name="output">
</div>
</form>
<?php
}
?>

编辑:啊是的我忘了说。login.php 包含在我的头文件中,我的头文件包含在我的 index.php 文件中,因此 session_start 应该级联。

编辑 2:因此,如果我在 jquery 代码的最后一行附近将 return 设置为 false,则页面不会重新加载,这正是我想要的,但 session 根本不会保存。任何人都能够弄清楚我正在做的事情有什么问题吗?

最佳答案

您应该在 PHP 脚本的顶部声明 session_start();,否则 SESSION 数据将不会被记住!!

关于php ajax post数据没有刷新但保存到 session 只适用于刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244127/

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