Как передавать информацию через веб-страницы веб-сайта - PullRequest
3 голосов
/ 23 апреля 2011

У меня есть этот веб-сайт, где я часто пытаюсь передать информацию с одной веб-страницы на другую, как лучше всего? Являются ли сессии в значительной степени лучшим вариантом, потому что, если мне нужно передать много информации? тогда что?

Ответы [ 6 ]

5 голосов
/ 23 апреля 2011

Я полагаю, у вас есть несколько возможных решений:

  • Используйте куки для хранения всех данных;ну, как правило, не очень хорошая идея:
    • Их размер ограничен
    • Они перемещаются по сети при каждой загрузке страницы (а также при запросе ресурсов, таких как CSS /JS / images)
    • Они хранятся на стороне клиента
  • Передача некоторого идентификатора с одной страницы на следующую (используя параметр вURL, или скрытый ввод в формы, обычно) , и используйте этот идентификатор для извлечения / хранения данных где-нибудь
    • , как в базе данных
    • или кластере memcached
  • или просто используйте сеансы PHP, что сделает это за вас, в значительной степени:
    • идентификатор обычно передается в cookie,
    • данные будут сохраненыв файлах по умолчанию - но вы можете довольно легко сохранить его в базе данных или кластере memcached.


Обратите внимание: идентификаторы сессий в PHPобычно передается с помощью файла cookie, который используется всеми вкладками в браузере.

Убедитесь, что ваш сайт будет работать с несколькими вкладками - чтобы изменения в сеансе из одной вкладки не нарушали навигацию в других вкладках!

2 голосов
/ 23 апреля 2011

Если вы используете 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
?>

Но такжечитать то, что говорили другие:)

2 голосов
/ 23 апреля 2011

Полагаю, вы имеете в виду «Как лучше всего передавать переменные PHP между страницами».В этом случае сеанс является правильным ответом.Сеанс может обрабатывать любой объем данных, кроме предела памяти в php.ini .

. Вы должны запустить session_start(); в верхней части всех ваших страниц PHP, на которых вы хотитеиспользуйте общие переменные.

Вы можете управлять переменными сеанса как массивом:

<?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

Удачи!: -)

2 голосов
/ 23 апреля 2011

Вы можете передавать значения между страницами следующими способами:

  • параметры запроса
  • сессия
  • печенье

Прочитать эту ссылку, например.

1 голос
/ 23 апреля 2011

если у вас БОЛЬШОЙ объем данных, который вам нужно перемещать назад и вперед, сохранение этой информации в базе данных, вероятно, будет наиболее эффективным.Это избавит вас от необходимости загружать всю эту информацию в файл cookie / сеанс / и т. Д.и затем необходимость демультиплексирования на другой стороне, когда вы хотите вернуть свою информацию.

Сохраняя ее в базе данных, вы гарантируете, что она сохранится, и вы можете вернуться и получить ее в любое время.

1 голос
/ 23 апреля 2011

В порядке доступности пользователя (от наименьшего к наибольшему):

  • Переменные сеанса - $_SESSION['var']
  • Печенье
  • $_POST['var']
  • $_GET['var']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...