|
|
|
| Вообще беда просто - маюсь вторую неделю.
Есть две машины: одна дома вторая на работе.
На работе W2K английский, дома XP русский
в остальном конфигурация одинакова апач 2 и пхп 4.3.8
Так вот , вопрос в следующем :
на работе следующий код работает:
из этого сценария берем:
<?
....
$_GET = $pic_big;
?>
в этот сценарий передаем:
<?
$pic_big_her = $_GET['pic_big'];
echo "$pic_big_her"
?>
подскажите что делать, я уж все перепробывал - почему массивы дома не работают?
Уже и хттп_гет_вар пробывал и включал и выключал регистр_глобалс...
Ничего не помогает...
Наверное я повешусь.... | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 15:09)
| | Не очень понятны используемые скрипты. Обычно суперглобальный массив $_GET используют для извлечения значений параметров строки запроса:
<?php
//первый скрипт - index.php
echo "<a href=test.php?pic_big=$pic_big>Перейти</a>";
?>
|
Тогда в файле test.php можно добраться до переменной $pic_big
<?php
echo $_GET['pic_big'];
?>
|
PS Нужно больше информации по скриптам. | |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 15:31)
| | может я и не прав c использованием конкретного массива.
но данные действия я проводил и с $GLOBALS - результат тот же...
а в строку не хочу выводить - т.к. у меня предположительно будет много переменных, которые необходимо передать. могу прицепить оба скрипта целиком, если необходимо | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 15:53)
| | из foto вызывается pics | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 15:56)
| | извиняюсь.
не разобрался с форумами.
сейчас выложу в теле сообщений скрипты | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 15:58)
| | кусок foto.phtml :
<?
$dirtoscan = $PATH_FORFOTO;
$files=Array();
cat_files($dirtoscan,$files);
foreach ($files as $file)
{
$full_path=$file['path'].'/'.$file['name'];
echo '<a href="javascript:openwin_pic(\''.$pic_big=$PATH_FORFOTO.'/'.$file['name'].'\')">'.'
'.' <img src="'.$full_path.'" alt="'.$file['name'].'"'.'
'.' border="0" width="150" height="110"></a>'.'
';
$_GET = $pic_big;
}
...
здесь перебираются файлы из папки и записываются в массив files
?> | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 15:53)
| | Посмотрите не выключена ли в php.ini директива register_argc_argv, если выключена, её следует включить:
так же проверьте значение директивы variables_order, она должна иметь вид:
variables_order = "EGPCS"
|
(После изменения php.ini следует перегрузить сервер Apache)
PS Хм... может лучше через сессии/cookie все передать?
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=298&page=1 | |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 16:01)
| | да. я читал ссылку которую вы мне дали. попробую и эту способы для передачи переменных. спасибо.
один вопрос - а нельзя ли попросить у вас ссылку - где можно было бы на русском языке прочитать про те параметры пхп. ини которые вы указываете ? | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 16:08)
| | В мануале последнем частично по-русски есть
Суперглобальные переменные PHP
$GLOBALS
Содержит ссылку на каждую переменную, доступную в данный момент в глобальной области видимости скрипта. Ключами этого массива являются имена глобальны переменных. $GLOBALS существует, начиная с PHP 3.
$_SERVER
Переменные, установленные web-сервером либо напрямую связанные с окружением выполнения текущего скрипта. Аналог старого массива $HTTP_SERVER_VARS (который по-прежнему доступен, но не рекомендуется).
$_GET
Переменные, передаваемые скрипту через HTTP GET. Аналог старого массива $HTTP_GET_VARS (который по-прежнему доступен, но не рекомендуется).
$_POST
Переменные, передаваемые скрипту через HTTP POST. Аналог старого массива $HTTP_POST_VARS (который по-прежнему доступен, но не рекомендуется).
$_COOKIE
Переменные, передаваемые скрипту через HTTP cookies. Аналог старого массива $HTTP_COOKIE_VARS (который по-прежнему доступен, но не рекомендуется).
$_FILES
Переменные, передаваемые скрипту через HTTP post-загрузку файлов. Аналог старого массива $HTTP_POST_FILES (который по-прежнему доступен, но не рекомендуется). Для дополнительной информации смотрите Загрузка методом POST.
$_ENV
Переменные, передаваемые скрипту через окружение. Аналог старого массива $HTTP_ENV_VARS (который по-прежнему доступен, но не рекомендуется).
$_REQUEST
Переменные, передаваемые скрипту через механизмы ввода GET, POST и COOKIE, и которым, следовательно, нельзя доверять. Наличие и порядок включения переменных в этот массив определяется в соответствии с директивой конфигурации PHP variables_order. Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0. Смотрите также import_request_variables().
$_SESSION
Переменные, зарегистрированные на данный момент в сессии скрипта. Аналог старого массива $HTTP_SESSION_VARS (который по-прежнему доступен, но не рекомендуется). Дополнительную информацию смотрите в разделе Функции обработки сессии. | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 15:09)
| | из pics.phtml:
<?
$pic_big_her = $_GET['pic_big'];
echo "$pic_big_her"
?>
....
дальше идет вывод страницы с задействованием этой переменной.
прошу не писать как эти алгоритмы можно реализовать по другому (то есть через строку) - я об этом знаю и дома так сделал
но массивы мне все равно нужны - а почему то в одном месте работают, в другом нет...
с чем это может связано ? | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 16:05)
| | в любом случае - огромное спасибо за то что откликнулись. | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 16:05)
| | Я бы посоветовал передать массив через сессии
<?
//кусок foto.phtml :
session_start();
$dirtoscan = $PATH_FORFOTO;
$files=Array();
cat_files($dirtoscan,$files);
foreach ($files as $file)
{
$full_path=$file['path'].'/'.$file['name'];
echo '<a href="javascript:openwin_pic(\''.$pic_big=$PATH_FORFOTO.'/'.$file['name'].'\')">'.'
'.' <img src="'.$full_path.'" alt="'.$file['name'].'"'.'
'.' border="0" width="150" height="110"></a>'.'
';
$_SESSION['pic_big'] = $pic_big;
}
...
здесь перебираются файлы из папки и записываются в массив files
?>
|
<?php
//из pics.phtml:
session_start();
print_r($_SESSION['pic_big']);
//....
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.10.2004 в 16:19)
| | огромнейшее спасибо.
вечером доеду домой - все попробую.
спасибо | |
|
|
|
|
|
|
|
для: shizik
(12.10.2004 в 17:11)
| | Проверил переменные, которые вы указали (по поводу аргс и аргв) - все так и стояло...
Через сессии как то не хочется работать - т.к. у меня для всех пользователей алгоритм одинаков - то использовать сессии не представляется необходимым, а делать так лишь бы работало - не хочется....
С уважением.....
В общем все как не работало - так и не работает.
Вот уже склоняюсь к переустановке апача с пхпой.... Или вообще к сносу нафиг ХР и установки win2k | |
|
|
|
|
|
|
|
для: shizik
(13.10.2004 в 20:01)
| | Опа...... я осознал что и на работе ничего не работает..... Я просто на работе передавал дополнительно через ?var=count - думаю понятно о чем я (т.е. передавал через строку и об этом благополучно забыл). Поэтому многоуважаемые, могу вас порадовать вопросом - объясните мне передачу данных через глобальный массив из сценария в сценарий хотя бы на одном примере - а то я наверное совсем даун и не понимаю как это делается.... | |
|
|
|
|
|
|
|
для: shizik
(13.10.2004 в 20:56)
| | Еще раз все по порядку:
в одном сценарии такая конструкция:
<?
$badjaga='xernja';
$GLOBALS['badjaga']=$badjaga;
$dptr=$GLOBALS['badjaga'];
echo "<br>$dptr";
?>
этот сценарий выводит на страницу значение хеrnja
после этого сценария запускается следующий :
<?
$badjaga= $GLOBALS['badjaga'];
echo "$badjaga";
?>
при запуске этого хозяйства выдается следующее:
Notice: Undefined index: badjaga in C:\Localca\www\pics.phtml on line 2
что делать ? | |
|
|
|
|
|
|
|
для: shizik
(13.10.2004 в 21:17)
| | еще один прикол:
<?
$_GET["badjaga"]='100';
$dptr=$_GET['badjaga'];
echo '<br>'."$dptr";
?>
на этой странице выдает только "1" ......... Прям вообще не доганяю | |
|
|
|
|
|
|
|
для: shizik
(13.10.2004 в 21:47)
| | Сделал тоже самое. Выдал 100. Странно. | |
|
|
|
|
|
|
|
для: shizik
(13.10.2004 в 21:17)
| | >Notice: Undefined index: badjaga in C:\Localca\www\pics.phtml on line 2
что делать ?
Это не ошибка - это предупреждение об неинициализированной переменной.
Запретите в php.ini вывод подобных предупреждений.
error_reporting = E_ALL & ~E_NOTICE
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(13.10.2004 в 22:37)
| | Многоуважаемый, дизайнер. Я понимаю что это предупреждение...
Я не понимаю почему переменная не передается.
С уважением. | |
|
|
|
|
|
|
|
для: shizik
(13.10.2004 в 21:17)
| | Действия $GLOBALS распространяются только в пределах одного файла, его применяют для передачи данных между функций одного файла и т.п.
Посмотрите работают ли у вас сессии из архива в атаче к этому посту. Т.е. сначала запускается index.php, потом hello.php - который выводит определённый в index.php элемент суперглобального массива $_SESSION? | |
|
|
|
|
|
|
|
для: cheops
(13.10.2004 в 22:43)
| | Warning: session_start(): open(D:\Localca\user\local\php4\sessiondata\sess_87bf5fa7da85388fa12182f5109115ba, O_RDWR) failed: No such file or directory (2) in D:\Localca\www\1\www\index.phtml on line 2
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at D:\Localca\www\1\www\index.phtml:2) in D:\Localca\www\1\www\index.phtml on line 2
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:\Localca\www\1\www\index.phtml:2) in D:\Localca\www\1\www\index.phtml on line 2
xernja
Warning: Unknown(): open(D:\Localca\user\local\php4\sessiondata\sess_87bf5fa7da85388fa12182f5109115ba, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (D:\Localca\user\local\php4\sessiondata) in Unknown on line 0 | |
|
|
|
|
|
|
|
для: shizik
(14.10.2004 в 00:10)
| | index.phtml это ваш index.php | |
|
|
|
|
|
|
|
для: shizik
(14.10.2004 в 00:10)
| | Хм... а путь
D:\Localca\user\local\php4\sessiondata\
| существует? | |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 00:15)
| | прописал папку сессиондата - на экране индекса выдается херня.
очень извиняюсь что сам не посмотрел смысл ошибок - просто уже совсем запарился. | |
|
|
|
|
|
|
|
для: shizik
(14.10.2004 в 00:18)
| | хелло тоже выдает xernja | |
|
|
|
|
|
|
|
для: shizik
(14.10.2004 в 00:19)
| | огромное спасибо.
НАИОГРОМНЕЙШЕЕ !
все работает
один вопрос напоследок: а передавать данные в массивах можно только через массив сессии ? | |
|
|
|
|
|
|
|
для: shizik
(14.10.2004 в 00:27)
| | Если пользователей немного, то можно через файлы или cookie, только массив для удобства лучше упаковать при помощи функции serialize()
<?php
$test = array("hello","world", "!");
$fp = fopen("test.txt","w");
fwrite($fp, serialize($test));
fclose($fp);
?>
|
тогда из другого скрипта данный массив можно прочитать из файла (cookies) при помощи скрипта
<?php
$fp = fopen("test.txt","r");
$bufer = fread($fp, filesize("test.txt"));
fclose($fp);
$array_from_index = unserialize($bufer);
print_r($array_from_index);
?>
|
Здесь при помощи функции unserialize() осуществляется распаковка массива. | |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 00:41)
| | спасибо большое | |
|
|
|