- How to print all session variables currently set?
- 7 Answers 7
- Как вывеси список всех определенных ранее переменных файла php?
- Как вывести список всех определенных переменных
- Как вывести список названий доступных переменных
- Вывод глобального массива $GLOBALS
- Список переменных php
- Как вывести список определенных переменных
- Читайте также похожие статьи:
- Get all variables sent with POST?
- 7 Answers 7
How to print all session variables currently set?
Without having to call each session variable by name, is there a way to display the content of all the session variables currently set?
7 Answers 7
echo '
'; var_dump($_SESSION); echo '';
Or you can use print_r if you don’t care about types. If you use print_r , you can make the second argument TRUE so it will return instead of echo, useful for.
echo '
' . print_r($_SESSION, TRUE) . '';
The title says «How to print all sessions currently set in PHP?»; if all the OP wanted was to print the current session, then the question is wrongly written.
@kiamlaluno I think what he wanted can be derived from the question. The title seems to say he wants all sessions set for each session, however, the question body says he wants them without having to call each session by name, which I assumed would be the key in $_SESSION . Though he could have been referring to the hash that is assigned in the cookie, I thought the former seemed more likely.
@kiamlaluno I’ve edit the question so it’s more precise in what appear to be what he really wanted to know.
PHP List All Session Variables"; foreach ($_SESSION as $key=>$val) echo $key." ".$val."
"; ?>Let’s say that by «active» you mean «hasn’t passed the maximum lifetime» and hasn’t been explicitly destroyed and that you’re using the default session handler.
- First, the maximum lifetime is defined as a php.ini config and is defined in terms of the last activity on the session. So the «expiry» mechanism would have to read the content of the sessions to determine the application-defined expiry.
- Second, you’d have to manually read the sessions directory and read the files, whose format I don’t even know they’re in.
If you really need this, you must implement some sort of custom session handler. See session_set_save_handler .
Take also in consideration that you’ll have no feedback if the user just closes the browser or moves away from your site without explciitly logging out. Depending on much inactivity you consider the threshold to deem a session «inactive», the number of false positives you’ll get may be very high.
Как вывеси список всех определенных ранее переменных файла php?
Когда приходится разбираться в чужом коде, да и в своем тоже, очень полезным бывает узнать список всех переменных, уже определенных до момента отработки текущего скрипта, включая подключенный файлы.
Когда есть необхожимость проверить/посмотреть одну/две пользуются стандартным методом отладки, вставляя в тело скрипта записи примерно такого вида:
php Код: Выделить всё Развернуть echo «1» ;
print «1» ;
print_r ( $array );
print_r ( $_POST );
И тому подобные варианты отслеживания процесса выполнения php скрипта.
Все это хорошо, но представьте ситуацию, когда чужой код запутанно обрабатывает переменные, да еще и таким образом, что нельзя с уверенностью сказать в каком месте появилась/удалилась переменная и какое имя ей присвоено.
Вот тогда-то и полезно узнать весь список переменных PHP, определенных ранее, и вывести его для ознакомления.
Как вывести список всех определенных переменных
Сделать это можно с помощью функции get_defined_vars(), например таким образом:
Функция get_defined_vars(), вернет многомерный массив, содержащий список всех определенных пользовательских переменных, в той области видимости, в которой была вызвана.
Как вывести список названий доступных переменных
Для того чтобы получить лишь список названий доступных переменных, можно использовать такую конструкцию:
php Код: Выделить всё Развернуть echo «
" ;
print_r ( array_keys ( get_defined_vars ()));
echo "
» ;
?>
Очень удобно, знать имена и значения только тех переменных, которые доступны именно в месте вывода.
Вывод глобального массива $GLOBALS
Кроме get_defined_vars(), может пригодиться вывод глобального массива $GLOBALS для получения данных о данных содержащихся в массивах $_POST, $_GET, $_COOKIE, $_FILES, $_SESSION, $_SERVER, $_ENV .
Делается это вот так:
php Код: Выделить всё Развернуть echo «
" ;
print_r ( $GLOBALS );
echo "
» ;
?>
Используя данные конструкции можно существенно ускорить работу, не тратя кучу времени на отслеживание переменных.
..
..Смерть стоит того чтобы жить, а любовь стоит того чтобы ждать..
Admin
Сообщения: 6372 [в теме] Откуда: Москва Группа: Администраторы Благодарил (а): 26 раз(а). Поблагодарили: 185 раз(а). [ Профиль ]
Список переменных php
Здравствуйте, уважаемые читатели блога LifeExample, если среди вас есть те кому часто приходится разбираться в чужом коде, то материал из данной статьи о списке переменных php может , хорошо сэкономить ваше время. Когда вам поступает задание на доработку php скрипта чей-нибудь самодельной СMS, очень полезным бывает узнать список всех переменных, уже определенных до момента отработки текущего скрипта.
Наверняка многие из вас при знакомстве с чужим кодом и алгоритмами его работы, пользуются стандартным методом отладки, вставляя в тело скрипта записи примерно такого вида:
И тому подобные модели отслеживания процесса преобразований над php переменными.
Все это, несомненно, помогает вникнуть в чужую систему, и разобраться с кодом. Но представьте ситуацию, когда чужая система очень хитро обрабатывает все переменные, таким образом, что нельзя с уверенностью сказать в каком месте появилась переменная и какое имя ей присвоено.
В этот момент хорошо бы как-нибудь узнать весь список переменных PHP, определенных ранее, и вывести его для ознакомления.
Как вывести список определенных переменных
Сделать это можно с помощью функции get_defined_vars(), например таким образом:
Эта функция get_defined_vars(), вернет многомерный массив, содержащий список всех определенных пользовательских и серверных переменных, в той области видимости, в которой была вызвана.
Для того чтобы получить лишь список названий доступных переменных, можно использовать такую конструкцию:
echo «
" ;
print_r ( array_keys ( get_defined_vars ( ) ) ) ;
echo "
» ;
?>?>
Согласитесь это очень удобно, знать имена и значения только тех переменных, которые доступны именно в месте вывода.
Кроме get_defined_vars(), может пригодиться вывод глобального массива $GLOBALS для получения данных о данных содержащихся в массивах $_POST, $_GET, $_COOKIE, $_FILES, $_SESSION, $_SERVER, $_ENV .
echo «
" ;
print_r ( $GLOBALS ) ;
echo "
» ;
?>?>
Теперь вы уважаемые читатели знаете, как просто можно осуществить вывод всех переменных, и спокойно изучать cписок переменных php, не тратя кучу времени, на ручную работу, по отслеживанию объявлений
Читайте также похожие статьи:
Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.
Get all variables sent with POST?
I need to insert all variables sent with post, they were checkboxes each representing a user. If I use GET I get something like this:
I need to insert the variables in the database. How do I get all variables sent with POST? As an array or values separated with comas or something?
7 Answers 7
The variable $_POST is automatically populated.
To see the entire contents of this array, just type
You can access individual values like this:
This, of course, assumes your form is using the typical form encoding (i.e. enctype=”multipart/form-data”
If your post data is in another format (e.g. JSON or XML, you can do something like this:
$post = file_get_contents('php://input');
and $post will contain the raw data.
Assuming you’re using the standard $_POST variable, you can test if a checkbox is checked like this:
if(isset($_POST['myCheckbox']) && $_POST['myCheckbox'] == 'Yes')
If you have an array of checkboxes (e.g.
Using [] in the checkbox name indicates that the selected values will be accessed by PHP script as an array. In this case $_POST[‘myCheckbox’] won’t return a single string but will return an array consisting of all the values of the checkboxes that were checked.
For instance, if I checked all the boxes, $_POST[‘myCheckbox’] would be an array consisting of: . Here’s an example of how to retrieve the array of values and display them:
$myboxes = $_POST['myCheckbox']; if(empty($myboxes)) < echo("You didn't select any boxes."); >else < $i = count($myboxes); echo("You selected $i box(es):
"); for($j = 0; $j < $i; $j++) < echo $myboxes[$j] . "
"; > >
Thanks, I had actually tried just to print_r($_POST) and it was not working due to being using GET all the while. My bad
you should be able to access them from $_POST variable:
foreach ($_POST as $param_name => $param_val) < echo "Param: ".htmlspecialchars($param_name)."; "; echo "Value: ".htmlspecialchars($param_val)."
\n"; >
It is deprecated and not wished to access superglobals directly (since php 5.5 i think?)
Every modern IDE will tell you:
Do not Access Superglobals directly. Use some filter functions (e.g. filter_input )
For our solution, to get all request parameter, we have to use the method filter_input_array
To get all params from a input method use this:
$myGetArgs = filter_input_array(INPUT_GET); $myPostArgs = filter_input_array(INPUT_POST); $myServerArgs = filter_input_array(INPUT_SERVER); $myCookieArgs = filter_input_array(INPUT_COOKIE); .
Now you can use it in var_dump or your foreach -Loops
What not works is to access the $_REQUEST Superglobal with this method. It Allways returns NULL and that is correct.
If you need to get all Input params, comming over different methods, just merge them like in the following method:
function askForPostAndGetParams()
Edit: extended Version of this method (works also when one of the request methods are not set):
function askForRequestedArguments()