查找PHP中缺少GET变量的原因

查找PHP中缺少GET变量的原因,php,url,get,Php,Url,Get,如何将URL中的变量添加到PHP中的下一页? 用户位于URL http://localhost/codes/index.php?ask_question&email=masi@gmail.com&passhash_md5=202cb962ac59075b964b07152d234b70 他发送了一个问题,然后转到下面的url,其中变量由于未知原因丢失了它们的值 http://localhost/codes/index.php?question_sent&email=&

如何将URL中的变量添加到PHP中的下一页?

用户位于URL

 http://localhost/codes/index.php?ask_question&email=masi@gmail.com&passhash_md5=202cb962ac59075b964b07152d234b70
他发送了一个问题,然后转到下面的url,其中变量由于未知原因丢失了它们的值

http://localhost/codes/index.php?question_sent&email=&passhash_md5=
下面的代码是handle_a_new_question.php的代码


您看到代码中有错误吗?

在创建标题之前,请打印您的$\u GET并检查变量是否为空:

print_r($_GET);
或者试试看

$_REQUEST['email']
而不是

$_GET['email'] 
哦!!别忘了加上

exit();
之后:

header($header);
如果您在没有有效的$result时执行某些操作,例如:

 if(isset($result)) {
     $header = ("Location: /codes/index.php?"                                                                                                                                                           
         . "question_sent"
         . "&"
         . "email="
         . $_GET['email']             // this seems to be correct to me
         . "&"
         . "passhash_md5="
         . $_GET['passhash_md5']      // this seems to be correct to me too
         );
     header($header);
  }

  sendEmailToMe('FAILED!!');

即使$result有效,也可能会执行“sendmailtome('FAILED!!')。

在创建标头之前,打印$\u GET并检查变量是否为空:

print_r($_GET);
或者试试看

$_REQUEST['email']
而不是

$_GET['email'] 
哦!!别忘了加上

exit();
之后:

header($header);
如果您在没有有效的$result时执行某些操作,例如:

 if(isset($result)) {
     $header = ("Location: /codes/index.php?"                                                                                                                                                           
         . "question_sent"
         . "&"
         . "email="
         . $_GET['email']             // this seems to be correct to me
         . "&"
         . "passhash_md5="
         . $_GET['passhash_md5']      // this seems to be correct to me too
         );
     header($header);
  }

  sendEmailToMe('FAILED!!');

即使$result有效,也可能执行“sendEmailToMe('FAILED!!')。

请确保数据是通过邮寄发送的。因此可以像这样检索:

$\u POST['email']

顺便说一句:

  • 在执行重定向之前不要忘记清理数据(在您的示例中没有这样做)
  • 别忘了给你的杂烩加盐,否则它可能不安全

  • 确保数据是邮寄的。因此可以像这样检索:

    $\u POST['email']

    顺便说一句:

  • 在执行重定向之前不要忘记清理数据(在您的示例中没有这样做)
  • 别忘了给你的杂烩加盐,否则它可能不安全

  • 表单代码是什么样子的?问题出在引导您进入问题发送页面的页面上,而不是问题发送页面本身

    您是在隐藏字段中传递这些变量,还是在表单的操作中传递这些变量,例如

    <form method="post" action="index.php?question_sent&email=<?php echo $_GET['email']?>&passhash_md5=<?php echo $_GET['passhash_md5']?>">
    

    表单代码是什么样子的?问题出在引导您进入问题发送页面的页面上,而不是问题发送页面本身

    您是在隐藏字段中传递这些变量,还是在表单的操作中传递这些变量,例如

    <form method="post" action="index.php?question_sent&email=<?php echo $_GET['email']?>&passhash_md5=<?php echo $_GET['passhash_md5']?>">
    


    尝试使用会话处理程序代替GET变量。在我看来,它确实为代码添加了一些击键,但却为您节省了很多headeache。

    尝试使用会话处理程序代替GET变量。在我看来,它确实为代码添加了一些击键,但却为您节省了很多人头费。

    我不理解第(1)点,因为代码使用了pg_prepare即prepared语句。这将清理数据。-我是新手,请随意评论。-(2) :当我的代码开始工作时,我会的。您需要在头()callI中使用$\u get变量之前对它们进行HTTP/URL清理。我不理解第(1)点,因为代码使用pg\u prepare is prepared语句。这将清理数据。-我是新手,请随意评论。-(2) :当我的代码开始工作时,我会的。在头()callI中使用$\u get变量之前,您需要对它们进行HTTP/URL清理。我从未使用过命令
    exit()之前。我把它放在我的处理程序的末尾,它使我的页面无法工作。它只在handle_a_new_question.php文件中不会引起任何冲突。如何让php向您发送电子邮件?我运行邮件
    失败(mais@gmail.com,富,富)打印$请求数组:打印($请求);试着在PHP的第一行打印它,如果你用get params没有得到任何你没有要求的东西。用PHP发送电子邮件:我从来没有使用过命令
    exit()之前。我把它放在我的处理程序的末尾,它使我的页面无法工作。它只在handle_a_new_question.php文件中不会引起任何冲突。如何让php向您发送电子邮件?我运行邮件
    失败(mais@gmail.com,富,富)打印$请求数组:打印($请求);试着在PHP的第一行打印它,如果你用get params没有得到任何你没有要求的东西。用PHP发送电子邮件:这是格式代码:我不使用隐藏变量。你可能应该使用隐藏变量。必须使用这三种方法之一将email和passhash_md5变量传递给下一个脚本,以确保正确性:1。使用cookies 2。使用表3中的隐藏变量。在表单本身的action属性中,为了测试像这样的东西,您应该将if(isset($result))块中的$\u GET替换为$\u请求。这将在$\u POST、$\u GET和$\u COOKIE中查找变量。但是就像我说的,如果你不在这些数组中传递表单中的变量,你将无法访问data@Neil:如何访问表单中的隐藏变量?这是表单代码:我不使用隐藏变量。您可能应该使用隐藏变量。必须使用这三种方法之一将email和passhash_md5变量传递给下一个脚本,以确保正确性:1。使用cookies 2。使用表3中的隐藏变量。在表单本身的action属性中,为了测试像这样的东西,您应该将if(isset($result))块中的$\u GET替换为$\u请求。这将在$\u POST、$\u GET和$\u COOKIE中查找变量。但是就像我说的,如果你不在这些数组中传递表单中的变量,你将无法访问data@Neil:如何访问表单中的隐藏变量?如果使用会话处理程序,则无需清理$\u GET中的数据。嗯-我需要研究一下。如果我使用会话处理程序,我不需要在$\u GET中清理我的数据。嗯,我需要研究一下。