|
|
|
| Подскажите пожалуйста, если такое возможно, то как организовать следующее:
есть 1 файл, в нем идет подключение файла. так вот, как сделать так, чтобы при подключении второго файла от туда бралась только значение конкретной переменной ??
прошу вашей помощи | |
|
|
|
|
|
|
|
для: pal4ik
(22.05.2008 в 17:19)
| | Что-то не очень понятно. Попробуйте описать проблему более подробно? | |
|
|
|
|
|
|
|
для: cheops
(22.05.2008 в 19:36)
| | Я так понял нужно подключить не сам файл, а результат его работы. | |
|
|
|
|
|
|
|
для: pal4ik
(22.05.2008 в 17:19)
| | Не особо понятно, но может быть вам поможет глобализировать нужные переменные. | |
|
|
|
|
|
|
|
для: AcidTrash
(22.05.2008 в 23:08)
| | Не совсем понимаю зачем это надо. Считывать файл в любом случаи придется.
<?php
$find='$next'; // имя переменной которую ищем
$file=file('text.txt');
foreach ($file as $str)
{
if ($var=strstr($str, $find)) // копируем переменную и ее значение (только целой строкой)
{
$var=substr($var, 0, strpos($var, ';')); // если есть лишнее, то отбрасываем, оставляя только переменную и ее значение
$meaning=substr($var, strpos($var, '=')+1); //если надо, то берем только значение переменной
break; // как только находим первое совпадение выходим из цикла
}
}
echo $meaning;
$k=$meaning;
?>
|
| |
|
|
|
|
|
|
|
для: SiM(R)
(23.05.2008 в 02:44)
| | Вообщем, рассказываю, что я пытаюсь сделать. есть страница ( у которой свой id). Она подключает другой php для отображения на ней 10 новостей. у каждой новости свой id. Когда переходим на какую-то новость, подключается третий php, который собственно и отображает всю новость инициализируя ее по id новости. так вот, в шаблоне страницы я по некоторым причинам подключаю 4-ый php, который должен был бы выводить заголовок страницы в соответствии с отображаемой новостью. Но не могу вытащить для этого id отображаемой новости. вот. как это сделать? те скрипты писал не я. Мой уровень знаний - начальный. | |
|
|
|
|
|
|
|
для: pal4ik
(23.05.2008 в 13:07)
| | для начала поясните каким образом, как вы говорите вы подключаете файлы... | |
|
|
|
|
|
|
|
для: KPETuH
(23.05.2008 в 13:32)
| | include
этой командой
а страница, которая отображает всю новость (3 -ий php) так:
<a href="<!--url-->/detnews/' . $r->id .'/" >подробнее...</a>
т.е. линком, где
$r->id - id этой новости | |
|
|
|
|
|
|
|
для: pal4ik
(23.05.2008 в 13:39)
| | Попробуйте передать значение переменной $id через сессии. То есть в "третьем" php файле (скрипте) разместите код
<?php
session_start();
$_SESSION['id']=$_GET['id'];
|
А в "четвертом" рhp разместите такой код:
<?php
session_start();
$id=$_SESSION['id'];
|
Не забывайте, что сессии должны создаваться до вывода в браузер. | |
|
|
|
|
|
|
|
для: SiM(R)
(23.05.2008 в 16:04)
| | не работает. id пустое получается. сам скрипт без ошибок работает, но id не вытягивает | |
|
|
|
|
|
|
|
для: pal4ik
(23.05.2008 в 17:15)
| | У вас не работает сессия, или она теряется (нет старта сессии в последующих скриптах). | |
|
|
|
|
|
|
|
для: sim5
(23.05.2008 в 17:30)
| | и что делать в таком случае? | |
|
|
|
|
|
|
|
для: pal4ik
(23.05.2008 в 17:37)
| | Искать причину. | |
|
|
|
|
|
|
|
для: sim5
(23.05.2008 в 17:52)
| | session_start() точно располагается до вывода в браузер??? До этой команды не должно быть ничего! Ни каких echo, никакого html кода, даже пробелов не должно выводиться в браузер! При чем это в обоих файлах. | |
|
|
|
|
|
|
|
для: sim5
(23.05.2008 в 17:52)
| | дельный совет) | |
|
|
|
|
|
|
|
для: pal4ik
(26.05.2008 в 12:01)
| | А какой вам нужен? Выше указана одна из самых распространенных ошибок при работе со сессиями, другая может быть связана с тем, что они у вас в php.ini не включены, треться с registr_globals. Надо указывать в вопросах своих, какие у вас ошибки при работе со сессиями, если они есть и т.д.. А так что же вам советовать? | |
|
|
|
|
|
|
|
для: sim5
(26.05.2008 в 12:24)
| | а как узнать какие ошибки? | |
|
|
|
|
|
|
|
для: pal4ik
(26.05.2008 в 12:41)
| | Если у вас происходит старт сессии после некоего вывода в барузер, например:
//вот тут к примеру, до РНР тега, есть пустая строка,
//а это уже вывод в браузер
<?php //начинается вставка РНР кода
//или например здесь идет вывод в браузер, например
print "Session";
//и только потом стартуется сессия
session_start();
|
то вы обязательно получите с выводом в браузер и ошибку:
Session
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\domain\www\test.php:2) in Z:\home\domain\www\test.php on line 6
Если у вас ошибка связана с этим, но вы ее не видите, то у вас видимо включено подавление ошибок. | |
|
|
|
|
|
|
|
для: sim5
(26.05.2008 в 12:57)
| | у меня вот так:
<?php
session_start();
$_SESSION['id']=$_GET['id'];
пробела и перевода строки перед <?php нет | |
|
|
|
|
|
|
|
для: pal4ik
(26.05.2008 в 15:40)
| | Если у вас ошибок не выводит, и если (!!!) работа сессий включена в php.ini то должна быть запись переменной в сессии:
id|N; - в случае, если $_GET['id'] не определена
id|s:0:""; - в случае, если $_GET['id'] пуста
id|i:12; - в случае, если $_GET['id'] равна, например, 12
Вы не гадайте, а проверяйте. Если у вас работа сессий разрешена, то в папке tmp (по умолчанию) будет создан файл сессии с именем, например:
sess_06a29aab23e84035c8ad1ac21a09fb3d
Можете открыть его своим РНР-редактором или любым текстовым и просмотреть. Если файла сессии не создается, то у вас не работает (не включен) механизм сессий, просмотрите свой файл php.ini секцию [Session] | |
|
|
|
|
|
|
|
для: sim5
(26.05.2008 в 16:32)
| | я не гадаю, просто не понимаю о чем вы говорили. у меня нет файла php.ini. И вообще .ini нет. и папки tmp и сессий тоже нет
p.s. сайт писал не я. | |
|
|
|
|
|
|
|
для: pal4ik
(26.05.2008 в 17:27)
| | ... и вообще - что такое сайт?... ;-) | |
|
|
|
|
|
|
|
для: pal4ik
(26.05.2008 в 17:27)
| | Как вам можно давать советы, если у вас вообще ничего нет!? ) | |
|
|
|
|
|
|
|
для: sim5
(26.05.2008 в 17:45)
| | ну так я же и прошу помочь, что нужно сделать, что бы поставленная задача была решена? | |
|
|
|
|
|
|
|
для: pal4ik
(26.05.2008 в 20:18)
| | >у меня нет файла php.ini. И вообще .ini нет. и папки tmp и сессий тоже нет
И чем в таком случае помочь? Вы тестируете свой сайт на локальном сервере, или ваши проблемы - это на реальном удаленном сервере? Если первое - то все у вас должно быть, если второе - то можно посмотреть по FTP свой сайт, можно просмотреть информацию о РНР настроках на вашем сервере, можно в конце концов обратиться в службу тех поддержки. | |
|
|
|
|
|
|
|
для: sim5
(27.05.2008 в 01:32)
| | Если сайт распологается на локальном сервере {У меня винда и AppServ}:
1) файл php.ini распологается в директории C:\Windows
2) temp распологается в C:\AppServ\php\session\
3) чтобы просмотреть насройки вашего сервера используйте следующий код:
Он выведет настройки вашего php-сервера.
Если ваш сайт находиться на удаленном сервере, то остается только использовать 3 способ. Залейте файл со скриптом на сервер и запустите его... | |
|
|
|
|
|
|
|
для: SiM(R)
(27.05.2008 в 01:50)
| | вижу настройки с помощью предоставленного скрипта (спасибо). что там смотреть??
вот инфо про сессии:
session
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0 | |
|
|
|
|
|
|
|
для: sim5
(27.05.2008 в 01:32)
| | так я даже не заню как сформулировать вопрос, что именно мне нужно узнать? у меня на удаленном сервере. | |
|
|
|
|
|
|
|
для: pal4ik
(27.05.2008 в 12:54)
| | Механизм сессий у вас включен, значит вы не верно пользуетесь ею. Либо то, что ниже указал mihdan, либо... Напишите хотя бы небольшой кусок кода вашей работы с сессией. | |
|
|
|
|
|
|
|
для: sim5
(27.05.2008 в 13:44)
| | >Напишите хотя бы небольшой кусок кода вашей работы с сессией.
Попробуйте передать значение переменной $id через сессии. То есть в "третьем" php файле (скрипте) разместите код
<?php
session_start();
$_SESSION['id']=$_GET['id'];
А в "четвертом" рhp разместите такой код:
<?php
session_start();
$id=$_SESSION['id'];
Вот как посоветовали. вот так и пытался использовать. | |
|
|
|
|
|
|
|
для: pal4ik
(23.05.2008 в 13:07)
| | Используйте разные переменные id_news, id_page, id_menu ..... | |
|
|
|
|
|
|
|
для: mihdan
(27.05.2008 в 13:06)
| | Ладно, давай сначала отделим мух от котлет.
Нам надо разобраться существует ли переменная $_GET['id'], точнее какое значение она имеет. В коде, где вы присваиваете сессии значение $_GET, разместите :
<?php
session_start();
$_SESSION['id']=$_GET['id'];
echo $_SESSION['id'].'-session<br>';
echo $_GET['id'].'-get';
?>
|
Если ничего не будет выводиться значит ваши значения = нулю. И надо искать проблему в создании переменной $_GET['id'] | |
|
|
|
|
|
|
|
для: SiM(R)
(27.05.2008 в 13:45)
| | Дело в том что этот php запускается только когда просматриваем всю новость. Поэтому сложно понять, где оно его выводит. и я исправил код так:
<?php
session_start();
$_SESSION['id']=$_GET['id'];
echo $_SESSION['id'].'-session<br>11111';
echo $_GET['id'].'-get';
....
мой код страницы
чтобы по метке 11111 найти в коде страницы это место. Так вот, даже "11111" не вывело. .. | |
|
|
|
|
|
|
|
для: mihdan
(27.05.2008 в 13:06)
| | >Используйте разные переменные id_news, id_page, id_menu .....
допустим я в 3-м php сделаю так (я так и пытаюсь), но как мне его потом передать в 4-ый php?
сам механизм или код какой чтобы из одного (3.php) файла передать значение переменной в другой (4.php), который вызывается в результате выполнения предыдущего (3.php). | |
|
|
|
|
|
|
|
для: pal4ik
(27.05.2008 в 16:08)
| | Вы закоментрируйте весь остальной код и разбирайтесь с тем, с чем у Вас возникает проблема сейчас. Выводиться информация, в данном случаи 11111, должна в любом случаи.
Можно еще передать переменную таким образом:
<?php
define("ID_NEWS", $id); // создаем в третьем файле константу, с номером новости
// потом с помощью unclude() подключаем 4 php ( у Вас помоему так)
// и используем уже эту константу.
?>
|
| |
|
|
|
|
|
|
|
для: SiM(R)
(28.05.2008 в 02:19)
| | ой, я кажется не в тот файл правлю. названия почти одинаковые. один из них рабочий другой не знаю зачем программеры оставили. буду пробовать все сначала.
Итак,
session_start();
$_SESSION['id']=$_GET['id'];
echo $_SESSION['id'].'-session<br>;
echo $_GET['id'].'-get'
выдает:
-session
-get
я так понимаю, значит они пустые...
Все получилось! =))) отлично. все огромное спасибо! Вы были терпиливы) | |
|
|
|