过去几天我一直坚持以下这个问题,我似乎无法解决。
我在PHP文件中有以下两个 if语句:
此语句从上一页获取帖子ID。
if(isset($_GET['post'])){
$post_id = $_GET['post'];
}
此语句在单击按钮后将用户输入插入到DB_Table中。在插入DB_Table的数据中,我希望(isset($ _ GET [' post'])条件中的$ post_id成为其中之一。
if(isset($_POST['submit'])){
$insert_member = "insert into hcg_members (post_id, member_id) values ('$post_id','$match_member_id')";
$run_event = mysqli_query($con,$insert_member);
}
唯一的问题是,我似乎无法找到保留$ post_id数据的方法。我试图将$ post_id设置为$ Globals变量,但这不起作用。
作为一种查找问题的方法,我已成功从if(isset($ _ GET []))语句之外回显$ post_id但是一旦我尝试从if(isset($)运行它,echo语句就会停止工作_POST []))声明。
任何帮助将不胜感激,提前谢谢。
答案 0 :(得分:0)
此代码产生以下查询,例如$ _GET [' post'] = 5,这对我来说很好。你能详细说明出了什么问题吗?这段代码是否存在于不同的函数中,因此可能是变量无法访问的情况?
插入hcg_members(post_id,member_id)值(' 5','')
答案 1 :(得分:0)
好的,只是为了澄清那些发现我的问题不清楚的人。我试图对我的剧本进行两次不同的调用。
我试图在POST请求中使用它时保留$ post_id的值,同时保留位于GET请求中的值。
根据 dan08 & Crayon Violent ,变量'尝试将它们从一个HTTP请求方法传递到另一个HTTP请求方法时,无法保留这些值。正如 Crayon Violent 所指出的,http是一种无状态协议,它使PHP无法记住上次请求中的任何内容。
因此我使用了 Crayon Violent 的解决方案之一来使用会话以便将变量从Get Request方法转移到POST Request方法,并且它有效! :)
有解决方案:
GET请求方法:
<?php
@session_start();
if(isset($_GET['post'])){
$post_id = $_GET['post'];
$_SESSION['respite_id'] = $post_id;
}
...
...
?>
POST请求方法:
<?php
include("includes/database.php");
if(isset($_POST['submit'])){
$respite_id = $_SESSION['respite_id'];
$insert_member = "insert into hcg_members (post_id, member_id) values ('$post_id','$match_member_id')";
$run_event = mysqli_query($con,$insert_member);
...
...
}
?>
再次感谢dan08和Crayon Violent的支持! :)强>