我有一个网站,每个登录的用户都有一个会话。但是,如果登录的用户需要在某人的页面上发帖,我需要获取该用户的用户名,我使用此代码if (isset($_GET['u']))
完成了该用户名。我可以通过处理同一页面上的所有内容轻松地将我的表单提交到数据库,但我想避免提交页面刷新,所以我决定转到ajax
路径。
主PHP页面:
<?php include ( "./inc/incfiles/header.inc.php"); ?>
<?php
if (isset($_GET[ 'u']))
{
$username = mysqli_real_escape_string($con, $_GET[ 'u']);
$_SESSION["username_send"] = $username;
}
?>
<form method="POST" id="myform" name="myform" class="ajaxform" action="<?php echo $username;?>">
<textarea type="text" id="name" name="name" class="form-control" rows="3" placeholder="share your ideas"></textarea>
<div class="form-group">
<button type="button" class="btn btn-primary btn-idea" id="submit" name="submit" value="Submit">Post</button>
</div>
</form>
<?php include("inc/incfiles/footer.inc.php"); ?>
现在问题就是这个问题,进行ajax调用我遇到了$username
到php
处理页面的问题。出于某种原因,我在$user_posted_to = "$username"
的数据库中收到一个空白条目。这使我认为创建的会话:$_SESSION["username_send"]
,不存储$_GET['u']
参数。除了使用$username
之外,还有更好的方法可以在处理页面中发送变量$_SESSION
吗?
PHP流程页面send_post.php
:
<?php include("./inc/incfiles/connect.inc.php");
session_start();
if (!isset($_SESSION["user_log"]))
{
$user = "";
}
else
{
$user = $_SESSION["user_log"];
$username = $_SESSION["username_send"];
}
?>
<?php
$post = strip_tags(@$_POST['name']);
if ($post !="")
{
$date_added = date("Y-m-d");
$added_by = "$user";
$user_posted_to = "$username";
$sql_user_post ="INSERT INTO posts VALUES('','$post','$date_added','$added_by','$user_posted_to')";
$query = mysqli_query($con, $sql_user_post) or die (mysqli_error());
}
?>
JavaScript的:
$(function(){
$("#submit").click(function(e) {
e.preventDefault();
var name = $("#name").val();
$.ajax({
type: "POST",
url: "send_post.php",
data: {name:name},
success: function(){
alert("It works");
},
error:function(e){
alert("it failed");
}
});
});
});