将变量传递到另一个PHP页面

将变量传递到另一个PHP页面,php,parameter-passing,Php,Parameter Passing,我试图将2个变量传递到另一个页面,需要1个变量。我不知道为什么我的代码不能正常工作。请看一看 Prova1.php: <html> <body> <?php echo htmlspecialchars($_SERVER["PHP_SELF"]); $nameErr=""; $name=""; $url="Prova1.php"; if ($_SERVER["REQUEST_ME

我试图将2个变量传递到另一个页面,需要1个变量。我不知道为什么我的代码不能正常工作。请看一看

Prova1.php:

 <html>
 <body>
 <?php
         echo htmlspecialchars($_SERVER["PHP_SELF"]);
         $nameErr="";
         $name="";

     $url="Prova1.php";

        if ($_SERVER["REQUEST_METHOD"] == "POST"){

    if (empty($_POST["name"])){
        $nameErr = "Name is Required";
    }else{
    $url="active.php";
         }
   }  
     ?> 
      <form method="post" action="<?php echo $url ?>" >
      Name: <input type="text" name="name"/>* <?php echo $nameErr;?>
     </br>
       Email: <input type="text" name="email"/></br>
       <input type="submit"/>
      </form>

     </body>
     </html>
       <html>
       <body>

           Welcome <?php echo $_POST["name"]; ?> </br>
           Your email is <?php echo $_POST["email"]; ?>
       </body>
       </html>


按照您的逻辑,我认为您的代码应该是这样的:

prova1.php

.错误{color:#FF0000;}

当用户填写所需信息时,您应该使用重定向,而不是其他表单,以转到
active.php
。您可以使用会话传递变量

<?php
session_start();

if (isset($_POST['name']) && !empty($_POST['name']) {
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['email'] = $_POST['email'];
    header("Location: active.php");
} else {
    $nameErr = '';
    if (isset($_INPUT['submit'])) {
        $nameErr = 'Name is required'];
    }
    ?>
    <html>
    <body>
    <form method="post" action="" >
        Name: <input type="text" name="name" required/>* <?php echo $nameErr;?>
        </br>
        Email: <input type="text" name="email"/></br>
        <input type="submit" name="submit"/>
    </form>
    </body>
    </html>
    <?php
}

proval.php

if(!isset($_POST['name']) || empty($_POST['name'])){
  include 'form.php';
}else{
  include 'active.php';
}
<html>
<body><?php
     echo htmlspecialchars($_SERVER["PHP_SELF"]);
     $nameErr="";
     $name="";
     if (isset($_POST["name"])){
       $nameErr = "Name is Required";
     }
 ?> 
  <form method="post">
  Name: <input type="text" name="name"/>* <?php echo $nameErr;?>
 </br>
   Email: <input type="text" name="email"/></br>
   <input type="submit"/>
  </form>

 </body>
 </html>
   <html>
   <body>
       Welcome <?php echo $_POST["name"]; ?> </br>
       Your email is <?php echo $_POST["email"]; ?>
   </body>
   </html>
form.php

if(!isset($_POST['name']) || empty($_POST['name'])){
  include 'form.php';
}else{
  include 'active.php';
}
<html>
<body><?php
     echo htmlspecialchars($_SERVER["PHP_SELF"]);
     $nameErr="";
     $name="";
     if (isset($_POST["name"])){
       $nameErr = "Name is Required";
     }
 ?> 
  <form method="post">
  Name: <input type="text" name="name"/>* <?php echo $nameErr;?>
 </br>
   Email: <input type="text" name="email"/></br>
   <input type="submit"/>
  </form>

 </body>
 </html>
   <html>
   <body>
       Welcome <?php echo $_POST["name"]; ?> </br>
       Your email is <?php echo $_POST["email"]; ?>
   </body>
   </html>

姓名:*

电邮:
active.php

if(!isset($_POST['name']) || empty($_POST['name'])){
  include 'form.php';
}else{
  include 'active.php';
}
<html>
<body><?php
     echo htmlspecialchars($_SERVER["PHP_SELF"]);
     $nameErr="";
     $name="";
     if (isset($_POST["name"])){
       $nameErr = "Name is Required";
     }
 ?> 
  <form method="post">
  Name: <input type="text" name="name"/>* <?php echo $nameErr;?>
 </br>
   Email: <input type="text" name="email"/></br>
   <input type="submit"/>
  </form>

 </body>
 </html>
   <html>
   <body>
       Welcome <?php echo $_POST["name"]; ?> </br>
       Your email is <?php echo $_POST["email"]; ?>
   </body>
   </html>

欢迎光临
你的电子邮件是
我认为用户必须提交两次才能使代码正常工作。active.php的输出是什么?如果您先提交名称,然后再提交名称,则会转到active.php。变量是name和email@Joni Salmi是的,我注意到了,但为什么会这样?当您使用name提交时,它会将
$url
设置为
active.php
,并重新绘制表单。然后,当用户再次提交表单时,它会转到
active.php
,即使这次没有填写名称。当我按submit时,它会在变量上显示错误,我处于活动状态。phpy您需要更改active.php以使用会话变量,而不是post变量。当我提交任何事件时,您正在访问proval.php。如果您提交do you get Name是必需的错误?您是对的,我访问的是form.php而不是proval.php。现在开始工作了对不起我的错误。我第一次没有复制你的完整代码。非常感谢。