Php 使用来自不同$\u POST的变量

Php 使用来自不同$\u POST的变量,php,session,mysqli,session-variables,Php,Session,Mysqli,Session Variables,假设我的代码如下所示: if (isset($_POST["reset"])){ //selects email and phoneNo from database based on values entered in form $_SESSION['email'] = $_POST['email']; }else if (isset($_POST["submit"])) { //line 68 -- $rePas = "UPDATE user SET 'password'

假设我的代码如下所示:

if (isset($_POST["reset"])){
   //selects email and phoneNo from database based on values entered in form
   $_SESSION['email'] = $_POST['email'];
}else if (isset($_POST["submit"])) {
    //line 68 -- $rePas = "UPDATE user SET 'password' = '" .password_hash($_POST['password'], PASSWORD_DEFAULT) . "' WHERE email = '$_SESSION[email]'";
}
我有
session_start()在页面开始处,在任何if等外部。
我进入页面查看一个表单,该表单要求我输入电子邮件和电话号码,然后我单击
Reset
按钮,如果sql代码返回某些内容,则该表单将更改为另一个表单,要求我输入密码。一旦我这样做了,我按下
Submit
按钮,我得到
$\u POST['Submit']
我得到
注意:未定义的索引:电子邮件中。。。在线68

我不明白为什么在按下submit按钮后会话变量被设置为null,如果有意义的话,是否还有通过两个表单传递变量的方法? 我已经仔细研究过类似的问题,但找不到有效的解决办法

看起来这段代码和解释还不够,因此这里是指向完整文件代码的链接:



检查您是否确实收到了$\u POST['email'],该字段可能未提交,或者其名称可能拼写不同。是否在if语句之前设置了$\u SESSION['email']
?因为如果不是。。那么为什么您希望它在else if语句中保存一个值呢?@thisgyhasstwomthumbs
$\u SESSION['email']
我在第一个if语句中设置了。然后我试着在第二个脚本中使用它。除了你的脚本非常开放,甚至可以在
MYSQLI\ucode>或
PDO
API中使用,将
$\u POST
$\u SESSION
数据转储到屏幕上,并显示你看到的内容。当你有疑问时,把它打印出来。解释你的代码总是一个好主意,而不仅仅是把它扔掉。这是一个相当糟糕的答案。这对我来说没有任何意义,因为在我的提交表单中,我只有密码输入。电子邮件是第一种形式。事实上,它只针对一个字段发布,所以工作正常。因此,您可以根据需要添加字段
<?php
if ( isset( $_POST['submit'] ) ) {
    $emailid = $_POST['email'];
    echo "email - ". $emailid;
}
?>
<form class="form-horizontal" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="email" name="email" class="form-control" placeholder="Email"> 
<button type="submit" name="submit" class="btn btn-primary">submit</button>
</form>