如何在php页面之间传输数据?

时间:2013-11-26 17:32:36

标签: php

有一个页面:login.php

我尝试通过表单接收用户名和密码。

的login.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org   /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Giris Yap</title>
    </head>

    <body>
        <form id="form1" name="form" method="post" action="welcome.php">
            <table width="275" border="1">
                <tr>
                    <td width="103">user; name: </td>
                    <td width="156"><label>
                            <input type="text" name= "name" />
                        </label></td>
                </tr>
                <tr>
                    <td>password:</td>
                    <td><label>
                            <input type="password" name="textfield2" />
                        </label></td>
                </tr>
            </table>
            <p><label>
                    <input type="submit" name="Submit" value="submit" />
                </label>
                <label>
                    <input type="reset" name="Submit2" value="reset" />
                </label>
            </p>
        </form>
        <p>&nbsp;</p>
        <p>&nbsp;</p>

    </body>
</html>

之后我想把我的页面引到welcome.php并说欢迎......名字......但它不起作用。谁能帮我。

的welcome.php:

<?php 
$name = $_REQUEST['name'];
echo "Welcome"$name; 
?>

5 个答案:

答案 0 :(得分:0)

试试这样。

在此上下文中始终使用isset()构造。由于我们知道您的<form>方法有操作POST,因此您可以使用$_POST代替$_REQUEST

<?php
if(isset($_POST['name']))
{
    $name = $_POST['name'];
    echo "Welcome $name"; 
}
?>

此外,您在 <form> 上缺少提交按钮代码,请执行此操作

<form id="form1" name="form" method="post" action="welcome.php">
    <table width="275" border="1">
        <tr>
            <td width="103">User; Name: </td>
            <td width="156"><label>
                    <input type="text" name= "name" />
                    <input type="submit" name="submit" />
                </label></td>
        </tr>
</form>

答案 1 :(得分:0)

这完全取决于您在表单中指定的方法。如果您的表单为method="post",那么您需要检索$_POST['name']

如果您的表单method="GET",那么您需要检索$_GET['name']

$name = $_POST['name']; // you have used method='post'
echo "Welcome" .$name; 

此外,$_REQUEST - 一个关联数组,默认情况下包含$ _GET,$ _POST和$ _COOKIE的内容。

不要忘记,因为$ _REQUEST是一个与$ _GET和$ _POST不同的变量,它在PHP中也是如此 - 在运行时修改$ _GET或$ _POST元素不会影响$ _REQUEST中的元素,也不会反之亦然。

e.g:

<?php

 $_GET['foo'] = 'a';
 $_POST['bar'] = 'b';
 var_dump($_GET); // Element 'foo' is string(1) "a"
 var_dump($_POST); // Element 'bar' is string(1) "b"
 var_dump($_REQUEST); // Does not contain elements 'foo' or 'bar'

?>

参考:http://php.net/manual/en/reserved.variables.request.php

答案 2 :(得分:0)

你可以尝试一下。

 <?php
   if(isset($_POST['name']))
   {
      $name = $_POST['name'];
      echo "Welcome ". $name; 
   }
 ?>

答案 3 :(得分:0)

尝试

?php
if(isset($_POST['name']))
{
   $name = $_POST['name']; 
   echo "Welcome $name"; 
}
else
{
    echo "Name not set";
}
?>

答案 4 :(得分:0)

试试这个:

<?php
// let us make sure we have a post value. we will use isset to make sure it's set.
if (isset($_POST['name'])) {
// you should scrub the $name value before displaying.  Never display or work with
// raw post values.
$name = $_POST['name'];
echo "Welcome "; 

// what if they didn't really put in a name?
// maybe only show it if it's longer than 2?
if (strlen($str) > '2')
echo $name; 
}
}
else {
// we don't have a post value?  You should redirect with error message or something.
}

?>