|
|
|
| Подскажите новичку: как передать массив из одного php в другой?
Пробовал так
<input type=hidden name=Array[]>
|
но тогда он передает пустой массив, а мне нужно со значениями.
Моэно еще, конечно, складывать элементы массив в строку и передавать как переменную, но это не кажется правильным. | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 11:19)
| | Функция implode — Объединяет элементы массива в строку, а explode — разбивает. | |
|
|
|
|
|
|
|
для: P@Sol
(07.02.2006 в 11:53)
| | Не хочется так делать т.к. тогда при просмотре HTML будут видны значения передаваемого массива, а этого хотелось бы избежать. | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 12:53)
| | а в $_SESSION[] этот массив нельзя оставить? | |
|
|
|
|
|
|
|
для: Trianon
(07.02.2006 в 13:25)
| | Разъясни, плz, я не совсем понял по манам, как session работает. | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 13:48)
| | Очень просто, в начале каждого скрипта где работаете с сессией помещаете фукнцию
<?php
session_start();
?>
|
после этого вы можете поместить в сессию переменные или массивы в суперглобальный массив $_SESSION
<?php
$arr = array(1,2,3,4,5);
$val = "строка";
$_SESSION['val'] = $val;
$_SESSION['arr'] = $arr;
?>
|
После этого, в любом другом файле, после объявления session_start() вы можете обратится к любой переменной, ранее помещённой в суперглобальный массив
<?php
echo $_SESSION['val']."<br>";
echo $_SESSION['arr'][0]."<br>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(07.02.2006 в 14:12)
| | А это будет работать, если register_globals стоит в off ? | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 11:19)
| | нет нужны значения, т.е. примерно так
<input type=hidden name= аrr[1] value='значени_1'>
<input type=hidden name= аrr[2] value='значени_2'>
<input type=hidden name= аrr[3] value='значени_3'>
|
Тогда в обработчике можно будет обращаться к двумерному массиву, т.е. вывести значения можно будет примерно так
<?php
echo $_POST['arr'][1]."<br>";
echo $_POST['arr'][2]."<br>";
echo $_POST['arr'][3]."<br>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(07.02.2006 в 14:05)
| | А у меня эхо сообщает пустоту, а должно вывести 'значени_1'.
Че у меня не так ? | |
|
|
|
|
|
|
|
для: cheops
(07.02.2006 в 14:05)
| | Значения в массиве уже есть, их не нужно брать с формы. Мне как раз нужно передавать скрипту два массива, один с данными с формы, как ты написал, а другой с данными полученными с ходе выполнения срипта и потом их сравнить и найти разницу. | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 14:39)
| | Тогда волей не волей придётся использовать сессии, как это описывается четырьмя постами выше. | |
|
|
|
|
|
|
|
для: cheops
(07.02.2006 в 14:47)
| | А в какой момент, если использовать сессии, нужно делать unset и destroy_session()?
Если я вызываю их сразу после получения переданных массивов, а потом нажимаю "обновить" в браузере, что вполне возможно для модемщиков, сессия уже уничтожена и получить данные не получается. | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 16:25)
| | Уничтожать сессию нужно обычно тогда, когда пользователь нажимает на ссылку "Завершить сеанс" (или Выход, как в этом форуме, и т.п.)
По-моему, лучше будет уничтожать не всю сессию, а только свою отдельную переменную сессионном массиве ( $_SESSION['my_var'] ) . Мало ли какие скрипты потом захочется положить рядом с имеющимся... это не повод гробить и свои сессионные данные и чужие. | |
|
|
|
|
|
|
|
для: Force_Majeure
(07.02.2006 в 16:25)
| | Вы можете об этом не заботится сессия автоматически будет уничтожена, после закрытия окна браузера. | |
|
|
|
|
|
|
|
для: cheops
(08.02.2006 в 02:31)
| | Как это автоматически? Разве браузер при закрытии окна хоть что-то отправляет серверу?
Мне всегда казалось, что будет уничтожен лишь клиентский сессионный кукис.
Да и то не всегда.
Вот 5 минут назад я сел за комп, загрузил windows и открыл в браузере softtime.ru/forum.
Никаких логинов и паролей я не вводил. А форум со мной поздоровался по нику. И даже дал эту реплику отправить.
И как это согласуется с уничтожением сессий? | |
|
|
|
|
|
|
|
для: Trianon
(08.02.2006 в 10:25)
| | так логин и пароль храняться в обычных куках, а не сессионных.
Но вообще вы правы - на сервере сессия еще проживет некоторое время. | |
|
|
|