Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить значение переменной в другом файле. 
V
    Опции темы
Avaj
  Дата 10.8.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



Такой нубский вопрос smile :

Как сделать объект видимым для нескольких php-файлов, т.е. например переменная $var1 определена в файле 1.php, и как получить её значение в другом файле?
PM MAIL   Вверх
azesmcar
Дата 10.8.2009, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



session_register?
PM   Вверх
Ипатьев
Дата 10.8.2009, 08:42 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



azesmcar, в общем случае сессии не подходят для ответа на такой неконкретный вопрос
И страшно устаревшая функция session_register - в частности.

Avaj, в таком виде, в котором вопрос задан, ответ один - записать её в базу данных.

PM MAIL   Вверх
azesmcar
Дата 10.8.2009, 08:46 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(Ипатьев @  10.8.2009,  08:42 Найти цитируемый пост)
И страшно устаревшая функция session_register - в частности.

имелось ввиду сессия а не сама функция.

Цитата(Ипатьев @  10.8.2009,  08:42 Найти цитируемый пост)
azesmcar, в общем случае сессии не подходят для ответа на такой неконкретный вопрос

Почему? Человек хочет глобальные переменные, что это если не сессия?
PM   Вверх
Avaj
Дата 10.8.2009, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



azesmcar, Ипатьев, ну в базу пока не надо, а конкретней так :


1.php

Код

<?php

$var1 = "sdffr";

?>




2.php:

Код


<?php

echo $var1; // надо чтоб тут было "sdffr"

?>


PM MAIL   Вверх
Ипатьев
Дата 10.8.2009, 08:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Сессия  - это в первую очередь сохранение состояния в системе клиент-сервер. И только во вторую - средство передачи данных между скриптами. А если автору надо чтобы и другой клиент имел доступ к этим данным?
PM MAIL   Вверх
azesmcar
Дата 10.8.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(Ипатьев @  10.8.2009,  08:50 Найти цитируемый пост)
Сессия  - это в первую очередь сохранение состояния в системе клиент-сервер. И только во вторую - средство передачи данных между скриптами. А если автору надо чтобы и другой клиент имел доступ к этим данным? 

Вот цитата с сайта php.net
Цитата

Session support in PHP consists of a way to preserve certain data across subsequent accesses.

Но совершенно не важно для чего они в первую очередь, важно что они решают задачу в том варианте, в котором я ее понял.
Цитата(Ипатьев @  10.8.2009,  08:50 Найти цитируемый пост)
А если автору надо чтобы и другой клиент имел доступ к этим данным? 

А если автору надо чтобы другой клиент пользовался другой базой данных? А если автору надо чтобы задача решалась без использования баз данных, а если автору надо чтобы эти клиенты находились на разных концах планеты и вообще не имели друг к другу никакого доступа? А если ... (продолжать?)
Какой смысл строить догадки?

Добавлено через 3 минуты и 35 секунд
Цитата(Avaj @  10.8.2009,  08:49 Найти цитируемый пост)
ну в базу пока не надо, а конкретней так :

Может имеет смысл определить все эти переменные в отдельном inc файле и заинклудить его там, где это надо?
PM   Вверх
bars80080
Дата 10.8.2009, 09:16 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(azesmcar @  10.8.2009,  08:58 Найти цитируемый пост)
А если автору надо чтобы другой клиент пользовался другой базой данных? А если автору надо чтобы задача решалась без использования баз данных, а если автору надо чтобы эти клиенты находились на разных концах планеты и вообще не имели друг к другу никакого доступа? А если ... (продолжать?)
Какой смысл строить догадки?

Цитата(azesmcar @  10.8.2009,  08:58 Найти цитируемый пост)
в котором я ее понял.

именно поэтому и было сказано, что прежде чем говорить о сессиях, надо выяснить чего хочет топикстартер


Avaj, вот вы своим вторым постом, ну никак не прояснили ситуацию. как связаны эти файлы? можете описать конкретную ситуацию в которой это вам понадобилось?
больше текста, больше ясности, получите ответ быстрее и лучше

по факту, в такого рода вопросах вдруг оказывается, что в самом деле один файл инклудится в другой, а следовательно вопроса нет как такового
PM MAIL WWW   Вверх
Ипатьев
Дата 10.8.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Avaj, в общем случае так невозможно. Скрипты выполняются в раздельном окружении, и так написать не получится. Передать можно только скалярные данные между скриптами.
Вопрос надо написать подробно. Что за переменные, для чего они нужны, кто их устанавливает и кто будет читать.
А не повторять то же самое другими словами. Описать реальный пример, в котором это понадобилось


Это сообщение отредактировал(а) Ипатьев - 10.8.2009, 09:19
PM MAIL   Вверх
Ипатьев
Дата 10.8.2009, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(bars80080 @  10.8.2009,  09:16 Найти цитируемый пост)
по факту, в такого рода вопросах вдруг оказывается, что в самом деле один файл инклудится в другой

А я бы поставил на GET. Интересно, кто выиграет? )))
PM MAIL   Вверх
MoLeX
Дата 10.8.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



а чем include/require не подходит?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
youri
Дата 10.8.2009, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Ипатьев, +100

azesmcar, надо решать проблему стоящую перед ТС, а не помогать ему реализовывать придуманное им решение (http://ibash.org.ru/quote.php?id=10656 , http://phpfaq.ru/humor - первая гипербола)

Это сообщение отредактировал(а) youri - 10.8.2009, 12:58
PM   Вверх
Avaj
Дата 10.8.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 14.7.2008
Где: Владивосток.

Репутация: нет
Всего: 3



Ипатьев,  

А реальный пример такой :

Из HTML-формы в переменную $tableName считывается название будущей SQL-таблицы и таблица создаётся в скрипте 1.php:

Код


mysql_query("CREATE TABLE IF NOT EXISTS  $tableName (col1 TEXT, col2 TEXT)");

  


Далее из другой формы вводятся данные $data1 и $data2,  которые должны быть записаны в эту созданную таблицу в скрипте 2.php:

Код


mysql_query("INSERT INTO $tableName (col1, col2) VALUES( '$data1' , '$data2' )");



Но как вы знаете в скрипте 2.php переменная $tableName не содержит имени таблицы, там пусто.

(Извиняюсь, если что-то неправильно понимаю - в PHP недавно.)
PM MAIL   Вверх
bars80080
Дата 10.8.2009, 13:35 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Avaj @  10.8.2009,  13:23 Найти цитируемый пост)
Но как вы знаете в скрипте 2.php переменная $tableName не содержит имени таблицы, там пусто.

почему не содержит? наверно, потому что не положил  smile 

тут два вариант. если у нас нечто типа визарда, т.е. окошко: "введите имя таблицы", жмём кноку, создаётся таблица, появляется окошко: "введите данные" и т.д.

тогда точно надо делать через сессию. записывать имя таблицы в $_SESSION['tablename'] и всё


второй вариант. создали таблицу, ну и ладно. несколько позже, с какой-то страницы по ссылке "добавить данные" мы переходим на страницу с формой добавления данных. тут уж извини, но имя таблицы должно передаваться от ссылки, а как - это уже в зависимости от задачи.
к примеру, это личная таблица пользователя - тогда записать имя таблицы в БД в учётную запись пользователя.
если это просто некая таблица, и ты приводишь список таблиц которые можно редактировать, то тогда просто делаем соответствующую ссылку:
Код

<a href="edit.php?table=fintiflushki">редактировать таблицу fintiflushki</a>
<a href="edit.php?table=kolotushki">редактировать таблицу kolotushki</a>
...
и в скрипте получаем имя из $_GET





п.с. давать пользователю создавать таблицы - суть дурной тон
значит неверно спланирована структура БД
PM MAIL WWW   Вверх
azesmcar
Дата 10.8.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 12
Всего: 211



Цитата(youri @  10.8.2009,  12:57 Найти цитируемый пост)
azesmcar, надо решать проблему стоящую перед ТС, а не помогать ему реализовывать придуманное им решение (http://ibash.org.ru/quote.php?id=10656 , http://phpfaq.ru/humor - первая гипербола)

Это твое мнение. Ну и решай их по своему, у тебя тоже есть право голоса на форуме если не ошибаюсь. Я считаю что отвечать надо на поставленные вопросы, а не на придуманные.

Это сообщение отредактировал(а) azesmcar - 10.8.2009, 13:51
PM   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1300 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.