如何在网站的各个网页之间传递信息


How to pass information across web pages of a web site

我有这个网站,在那里我经常发现自己试图从一个网页传递信息到下一个,什么是最好的方式?会话是最好的选择吗,因为如果我需要传递很多信息怎么办?然后呢?

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

  • 使用cookie存储所有数据;嗯,通常不是个好主意:
    • 它们的大小有限
    • 它们在网络上来回加载(以及当请求资源时,如CSS/JS/images)
    • 它们存储在客户端
  • 将一些标识符从一个页面传递到下一个页面(通常使用URL中的参数或表单中的隐藏输入),并使用该标识符在某处获取/存储数据
    • 就像在数据库中一样
    • 或memcached集群
  • 或者直接使用PHP会话,它会为你做这些,基本上:
    • 标识符通常会在cookie中传递,
    • 默认情况下,数据将存储在文件中,但您可以将其存储在数据库或memcached集群中,这很容易。


不过请注意:在PHP中,会话标识符通常使用cookie传递——该cookie由浏览器中的所有选项卡共享。

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

您可以通过以下方式在页面之间传递值:

    请求参数
  • <
  • 会话/gh><
  • 饼干/gh>

我想你的意思是"在页面之间传递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会话的优秀教程:
http://www.tizag.com/phpT/phpsessions.php

祝你好运!: -)

如果您正在使用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
?>

但也要读别人说的话:)

按照用户可访问性的大小排序:

  • 会话变量- $_SESSION['var']
  • <
  • 饼干/gh>
  • $_POST['var']
  • $_GET['var']

如果您有大量的数据需要来回移动,那么将这些信息保存到数据库中可能是最有效的。它将为你省去将所有信息加载到cookie/会话等的麻烦。然后当你想要回你的信息时,就必须在另一边去复用。

通过将其存储在数据库中,您可以确保它将持久存在,并且您可以随时返回并检索它。