有没有办法在isset($ _ POST [])条件中访问isset($ _ GET [])条件中创建的变量?

时间:2015-05-22 13:50:46

标签: php mysql variables

过去几天我一直坚持以下这个问题,我似乎无法解决。

我在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 []))声明。

任何帮助将不胜感激,提前谢谢。

2 个答案:

答案 0 :(得分:0)

此代码产生以下查询,例如$ _GET [' post'] = 5,这对我来说很好。你能详细说明出了什么问题吗?这段代码是否存在于不同的函数中,因此可能是变量无法访问的情况?

插入hcg_members(post_id,member_id)值(' 5','')

答案 1 :(得分:0)

好的,只是为了澄清那些发现我的问题不清楚的人。我试图对我的剧本进行两次不同的调用。

  • 第一个是GET请求。
  • 第二个是POST请求。

我试图在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的支持! :)