放到session里面。
a.php
--------------------
<?php
mysql_pconnect(...);
mysql_query(...);
$record = mysql_fetch_row(...);
$long_data_from_database = $record[...];
session_start();
$_SESSION['data_to_transfer'] = $long_data_from_database;
header("Location: b.php");
?>b.php
----------------------------
<?php
session_start();
print $_SESSION['data_to_transfer'];
?>

解决方案 »

  1.   

    如果只是 “a读数据库数据然后传给b而已”,
    把数据写在变量里不行吗。在 b.php 里把变量global一下。
      

  2.   

    用post
    怎么不可以?
    写在隐藏域里
    用javascript控制提交
    用sesstion太多 
    影响速度的
      

  3.   

    这种情况下,用session当然比用post要好,如果用post,首先这段“很长的数据”首先要放到网页代码中传递到客户端,然后再由客户端提交到数据库的b.php,这样折腾一个来回还不如放到session里面痛快。session里面的数据如果能够及时清理,并不会对性能有影响。
      

  4.   

    b.php用完了这个数据以后只要调用
    unset($_SESSION['data_to_transfer'])就可以把这个变量从session中删除。
      

  5.   

    $fp = fsockopen('服务器地址'80);
    if (!$fp)
    {
      fclose($fp);
        exit;
    }
    $content = "useridno=222406198104033229&userpwd=liyinhua&Submit=%CC%E1%BD%BB";$request  = "POST 提交地址 HTTP/1.1\r\n";
    $request .= "Host: 服务器\r\n";
    //$request .= "User-Agent: roastduck Http/1.1\r\n";
    //$request .= "Accept-Language: zh-cn\r\n";
    $request .= "Content-length: ".strlen($content)."\r\n";
    $request .= "Connection: close\r\n\r\n";
    $request .= $content;
    //echo $request."<br><br>";
    fputs($fp, $request);
    fclose($fp);
      

  6.   

    这么做,有个缺陷,就是要提交页里设置的session变量无效
    同样的原理,你也可以使用curl函数,
      

  7.   

    大量数据使用post方式传递(没办法就想办法),或者使用中间变量(数据存储然后提供地址,不过这有点南辕北辙了)。
      

  8.   

    建议直接 POST 过去,放入 SESSION 会对服务器造成很大的压力.