我有两个文件page1.php  and  page2.php
想在page1.php中实现将用户输入的姓名传递到page2.php中但是怎么也无法将session变量的值传过去
page1.php:<?php
Session_start();
if(isset($_POST['Submit']))
{
$_SESSION['myname']=$_POST['name'];
}
?>
<!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=GB2312" />
<title>无标题文档</title>
</head><body>
<form id="form1" name="form1" method="post" action="Page2.php">
请输入你的姓名:
<label for="textarea"></label>
<p>
<input name="name" type="text" id="textarea" value="" />
</p>
<p>
<label for="Submit"></label>
<input type="submit" name="Submit" value="提交" id="Submit" />
</p>
</form></body>
</html>page2.php:
<?php
session_start();
//echo $_SESSION["myname"];
print_r($_SESSION);
?>session

解决方案 »

  1.   

    提交->读取提交,记录session->读取session
    是三步,你这里只有两步
      

  2.   

    <form id="form1" name="form1" method="post" action="Page2.php">你直接就提交到 Page2.php 了,当然就没有 session 了
      

  3.   

    你自己想象你期待echo出什么来,而这个数据从哪来?
    _POST是提交后才出现的,但你提交到page2(page1工作已经结束),page2却没有任何读取_POST的工作
      

  4.   

    我把$_POST['name']赋值给了session变量了啊,然后在page2.php中读取这个session变量,为什么读不出来我在page1.php中input里输入的文字呢?
      

  5.   

    可能你好多概念都没弄清楚:
    客户端和服务器端的关系
    输入数据(客户端)->提交->读取_POST(服务器端)/session赋值(服务器端)
    page1->提交->page2page1的session start时,客户端还没有输入数据,何来_POST呢?
    到提交后就跳到page2了,已经过了page1这个村了,哪有session赋值这个店呢?
      

  6.   


    <?php
    Session_start();
    if(isset($_POST['Submit']))
    {
    $_SESSION['myname']=$_POST['name'];
    }
    ?>这行是干什么的呢?不就是当点击提交后,将输入的内容保存在全局变量$_SESSION['myname']中么
      

  7.   

    要问干什么的话,你从哪抄来的就问哪人,你自己写的就是写错了$_POST只能在action指定的页面读取,其他页面都不能读取
      

  8.   

    说到底你还是没搞清客户端和服务器端的问题网络不是同步的,不是服务器运行php的同时,客户端就看到页面的,而是——
    php工作完才发到客户端的
    所以当客户端收到/看到(还没输入)表单的时候,page1已经结束工作了,已经没有page1里面php的事了
    提交后是page2里面php的事,跟page1的php没有关系
      

  9.   

    楼主没有明白$_post[]跟$_session[]的定义,$_post[]是你提交form后才获取的,而你提交form之后都去page2页面了,没有run page1页面肯定就没有进去判断$_session[]的,那来的赋值。你将page1页面上面的代码贴到page2上就可以了...................
      

  10.   

    受益匪浅啊。现在还有个问题,就是在page1.php中,用户点击submit后是要将相关表单里面的信息提交给服务器上的哪个页面进行处理呢?也就是说在点击submit后,服务器上的page1.php还需要工作的吧。因为只有page1.php中才指定了此时应该去page2.php.既然page1.php此时还在工作,为什么$_session[]没有收到_POST['name']呢?
      

  11.   

    No! No! No! No! No! No! No! No!
      

  12.   

    那我就不明白了,难道是客户端浏览器告诉用户提交submit应该去page2.php么?(因为此时page1已经不再工作了)
      

  13.   

    到客户端的时候,就不能再理解为php了,而是一个纯粹的html,客户端是根据html里面的action定位提交的目的地