2011-04-23 84 views
3

我有这个网站,我经常发现自己试图从一个网页传递信息到下一个,最好的方法是什么?会话几乎是最好的选择,因为如果我需要传递大量的信息呢?那么什么?如何通过网站的网页传递信息

+0

我不知道为什么有大量的信息会使会议使用不太理想的方法......如果有什么让它更可取... – prodigitalson 2011-04-23 17:39:13

+0

不需要是粗鲁的... – user722769 2011-04-23 18:23:30

+0

@ user719321:我wasnt粗鲁..我是jsut说我会认为有很多数据会使会议最可行的解决方案... – prodigitalson 2011-04-23 18:52:44

回答

5

你有几个可能的解决方案,我想:

  • 使用Cookie来存储所有数据;好,一般不太好主意:
    • 它们的大小是有限的
    • 他们来回走在每个页面加载网络(也请求资源,如CSS/JS /图像时)
    • 它们存储客户端
  • 传递从一个页面一些标识符到下一个(使用URL的参数,或者在形成一个隐藏的输入,典型地),并使用该标识符来获取/将数据存储在某处
    • 就像在一个数据库
    • 或分布式缓存集群
  • 或者只是使用PHP的会议,它将为你做的,相当多:
    • 标识符通常会在cookie中传递,
    • 默认情况下,数据将存储在文件中 - 但您可以非常轻松地将其存储在数据库或memcached群集中。


不过要注意: - 这是通过在浏览器中的所有选项卡共享会话标识符,在PHP中,一般都使用Cookie传递。

确保您的网站将与多个选项卡一起工作 - 即在一个选项卡会话中的修改将不会在中打破在其他选项卡中导航!

+0

我到底该如何处理multitab情况? – user722769 2011-04-23 18:21:55

2

你可以通过页面之间的值在以下几个方面:

  • 请求参数
  • 会议
  • 饼干

this链接的例子。

+0

你忘记了发布数据 – 2014-12-28 08:57:41

+0

和http referer – 2014-12-28 08:58:19

2

我假设你的意思是“在页面之间传递PHP变量的最佳方式是什么”。在那种情况下,会话是正确的答案。该会话可以处理任何数量的短于php.ini中的内存限制的数据。

您必须在您想要使用共享变量的所有PHP页面的顶部运行session_start();

您可以管理像数组会话变量:

<?php 
    // Start/resume the session 
    session_start(); 

    // Create a variable 
    $myvariable = "Hello, world!"; 

    // Set the value of that variable to session 
    $_SESSION["myvariable"] = $myvariable; 

    // You can also set data directly to the session 
    $_SESSION["anothervariable"] = "Bye, world!"; 
?> 

现在你可以从任何页面访问数据是这样的:

<?php 
    // Start/resume the session 
    session_start(); 

    // Now you can fetch data from the same session variable 
    echo $_SESSION["myvariable"]; // Hello, world! 
    echo $_SESSION["anothervariable"]; // Bye, world! 
?> 

Tizag对与PHP工作一个科瑞教程session:
http://www.tizag.com/phpT/phpsessions.php

祝你好运! :-)

1

为了用户可访问性(最小到最大)的:

  • Session变量 - $_SESSION['var']
  • 饼干
  • $_POST['var']
  • $_GET['var']
2

如果您正在使用PHP,并将数据从一个页面传递到另一个页面,您可以这样做 page1.php中

<a href="page2.php?somevalue=whatever&morevalue=somethingelse">Go to page 2</a> 

使page2.php

<? 
    echo $_GET["somevalue"]; //it will print out whatever 
    echo "<br />".$_GET["morevalue"]; // it will print out somethingelse 
?> 

而且还读什么人说:)

1

,如果你有大量的数据量,你需要来回移动,节省该信息到数据库可能是最有效的。这将节省您不得不将所有信息加载到cookie/session/etc中的麻烦。然后当你想要回传信息时,必须在另一端解复用。

通过将它存储在数据库中,您可以确保它会一直存在,并且您可以随时回来并检索它。