将变量传递到另一个PHP页面
我试图将2个变量传递到另一个页面,需要1个变量。我不知道为什么我的代码不能正常工作。请看一看 Prova1.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
<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。现在开始工作了对不起我的错误。我第一次没有复制你的完整代码。非常感谢。