php重定向使用标头位置和传输变量

时间:2013-03-11 06:11:48

标签: php html

我在SO和google上阅读了所有相关问题,但仍无法得到相同的答案..

这是我的html表单代码

<form id="Form1" name="Form1" method="post" action="page1.php" enctype="multipart/form-data">
Your Name:<input type="text" class="input" name="txtUserName">
Your Email:<input type="text" class="input" name="txtUserEmail">
<input type="submit" name="submit" value="Submit">
</form>

这是我的这个页面的php代码(page1.php)     //我将这些变量转移到其他页面page2.php

<?php
$values['txtUserName'] = 'username';
$values['txtUserEmail'] = 'useremail';
header( 'Location: page2.php' );
?>

这是page2.php

的监听代码
<?php
$username = $_GET['username'];
$useremail = $_GET['useremail'];
?>

以及html页面下面的某个地方

<div class="text1">
<?php echo $username; ?>
<?php echo $useremail; ?>
</div>
  1. 我注意到未定义的索引用户名和useremail
  2. echo不显示任何内容.. 我哪里错了?

  3. 如果我不想传输表单值,而是将$ username更改为第二页..怎么可以这样做?

7 个答案:

答案 0 :(得分:2)

如果您要将数据发送到page2.php

,则操作应为page2.php
action="page2.php"

并在page2.php中使用$_POST,因为在表单中您设置了method='post'

<?php
$username = $_POST['txtUserName'];  // txtUserName is as name in form
$usereail = $_POST['txtUserEmail']; // txtUserEmail is as name in form
?>

page1.php

中使用此功能
$username = $_POST['txtUserName'];
$usermail = $_POST['txtUserEmail'];
header( 'Location: page2.php?username='.$username.'&useremail='.$usermail );

并在page2.php中使用GET

答案 1 :(得分:0)

您的变量应来自名称,而您使用的是post not get

$username = $_POST['txtUserName'];
$useremail = $_POST['txtUserEmail'];

您还应该使用action =“page2.php”

答案 2 :(得分:0)

您的表单正在使用method="post"发送数据,但您使用$_GET['username']检索值。您应该将$_GET更改为$_POST['username']

另外,请注意使用$usereail = $_GET['useremail'];$useremail;

拼写错误

答案 3 :(得分:0)

在您的网页page2.php中使用此代码

 $username = $_POST['username'];
 $useremail = $_POST['useremail'];

答案 4 :(得分:0)

试试这个:

<form id="Form1" name="Form1" method="post" action="page2.php" enctype="multipart/form-data">
    Your Name:<input type="text" class="input" name="txtUserName">
    Your Email:<input type="text" class="input" name="txtUserEmail">
    <input type="submit" name="submit" value="Submit">
</form>

Php代码: $ _GET ['txtUserName']名称应与html标记名称相同。

<?php
    $username = $_POST['txtUserName'];
    $useremail = $_POST['txtUserEmail'];
?>



<div class="text1">
    <?php echo $username; ?>
    <?php echo $useremail; ?>
</div>

答案 5 :(得分:0)

在php中,您可以通过调用受尊重的输入名称来获取文本框值或任何输入值。 所以你需要根据你的代码来调用以下内容

$用户名= $ _ POST [ 'txtUserName']; $ useremail = $ _POST ['txtUserEmail'];

答案 6 :(得分:0)

本声明:

header('Location: page2.php');

除了您重定向到不是绝对URL的内容之外,它还会重定向到page2.php而不传递任何GET参数。要做到这一点,你只需追加它们:

header('Location: page2.php?' . http_build_query($values));