[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Повторное считывание переменной
MailRes
Всем привет!

Допустим есть страница "mypage.php" со следующим кодом:

$a="какой-то текст";
echo a$;
<
a href='mypage2.php'>ссылка</a>


Нажав на "ссылку", смогу ли я повторно получить значение переменной $a, когда будет загружаться страница mypage2.php ?
Сколько пробовал - не получалось, т.к. понимаю, что начинает загружаться новая страница, которой "всё равно", что происходило до её загрузки (функции, переменные и т.п.)
Игорь_Vasinsky
используй GET или сессии

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MailRes
т.е. если GET'ом, тогда ссылка должна выглядеть так?
<a href='mypage2.php?perem=$a'>ссылка</a>


Про такой способ думал, но не хочу захламлять ссылку, т.к. переменных много будет + исключить фактор пользователя (когда начинают с URL'ом играться))))
Игорь_Vasinsky
чтоб не игрались с данными - у тя своя голова должна работать
не хочешь url захломлять - используй сессии

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MailRes
Думаю, сессии опять же не совсем подходит (в моём случае), т.к. пользователь прежде чем зайти на начальную страницу логинится, и сессия записывает его логин, пароль и т.п.... Как сессия запишет значение переменной, если работа с сессиями начинается с первой строки php файла, а переменные идут позже?

Думаю, если только если сохранять значения переменных в файл, а при загрузке страницы их считывать из файла.
MailRes
Цитата (Игорь_Vasinsky @ 6.03.2013 - 22:26)
чтоб не игрались с данными - у тя своя голова должна работать

знаю только один вариант, это проверять операторами if или switch получаемые значения + наличие необходимых переменных (например, если получили переменную $_GET['a'] - продолжаем выполнение, если не получили переменную $_GET['a'] - вывели ошибку). Но т.к. по специфики своего приложения, значения переменных практически всегда разные, то отследить их я не знаю как.

p.s. Не против ссылки на хорошую статейку, т.к. часто обращаюсь на тему безопасности вводимых данных и их обработки - базовые знания более-менее есть)))

p.p.s. А моя задумка с файлом - плохая идея?
Игорь_Vasinsky
<?php
session_start();

$a = 123;

$_SESSION['a'] = $a;

echo $_SESSION['a'];


?>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MailRes
Плохо знаю сессии(( учиться и учиться.

Счс попробовал Ваш пример (немного доработав по значениям переменных), понял вот что (прошу поправить, если ошибся)
1) session_start(); - необязательно писать эту строку, если она присутствует в самом начале кода.
2) своего рода это отправка POST запросов без формы
3) и раз в переменную "$_SESSION['a']" что-то записалось, то это значение можно считать на любой странице
Всё верно?

p.s. А с сессиями, на первый взгляд, всё заработало, спасибо!
Игорь_Vasinsky
Цитата
1) session_start(); - необязательно писать эту строку, если она
присутствует в самом начале кода.


пишеться только
раз - в самом начале кода (до любого вывода -echo, print, html и т.д.) - в каждом файле где будешь работать с данными из сессии

Цитата
2) своего рода это отправка POST запросов без формы

да, это то же суперглобальный массив

Цитата
и раз в переменную "$_SESSION['a']" что-то записалось, то это значение можно считать на любой странице


см п.1

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MailRes
Игорь_Vasinsky, спасибо!

Добавил только счс в свой код session_destroy();

А то было, когда нажимаешь на "выход", появляется форма авторизации, а данные из сессии выводятся. Обнаружил, благодаря Вашей подсказке. smile.gif
MailRes
Цитата (Игорь_Vasinsky @ 6.03.2013 - 23:10)
раз - в самом начале кода (до любого вывода -echo, print, html и т.д.) - в каждом файле где будешь работать с данными из сессии


Ага)) Про это помнится читал.
В моём случае, все "пляшет" от файла index.php, в котором в зависимости от GET параметров, с помощью include подключаются необходимые страницы)))
Игорь_Vasinsky
значит достаточно только в index.php

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MailRes
спс
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.