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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обойтись без $GLOBALS и $_POST ? 
:(
    Опции темы
=Женек=
Дата 10.10.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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






Задать вопрос:

У меня отдельный файл - functions.php. В index.php он включается через include ("functions.php"); Для всех переменных которые объявлены в index.php и использутся в functions.php вынужден писать $GLOBALS['var']. Данные переданные методом post также доступны только через $_POST['var'].

Нельзя ли как-нибудь упростить, что-нибудь прописать, чтобы не добавлять к именам переменных $GLOBALS и $_POST ?
PM MAIL   Вверх
mishaSL
Дата 10.10.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 19
Всего: 54



Цитата(=Женек= @  10.10.2007,  18:20 Найти цитируемый пост)
Данные переданные методом post также доступны только через $_POST['var']

В любом случае нужно брать из массива _POST, потом обработать и далее работать уже с нужными переменными.
к примеру:
Код

$myIntVal = intval($_POST['myIntVal']);
// и далее уже работаешь с переменной $myIntVal


Цитата(=Женек= @  10.10.2007,  18:20 Найти цитируемый пост)
Для всех переменных которые объявлены в index.php и использутся в functions.php вынужден писать $GLOBALS['var'].

Пример покажите пожалуйста.... Странно как-то...



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
=Женек=
Дата 10.10.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пример? Ради бога - в index.php я открываю соединение с mysql, даю ему имя $connection.
Когда я обращаюсь к $connection в index.php - нет проблем:

Код

  $query=mysql_query($query_string, $connection);


 Многие функции для удобства вынесены в файл functions.php. Если в этой функции есть вызов mysql, то приходится писать

Код

  $query=mysql_query($query_string, $GLOBALS['connection']);

PM MAIL   Вверх
Pokoinik
Дата 10.10.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

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



=Женек=, 
как вариант в начале функции писать global $connection;


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
comcon1
Дата 10.10.2007, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

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



если вначале включаемого файла написать global $connection;
то далее в этом файле просто обращаетесь к переменной $connection)))

Добавлено через 44 секунды
) одновременно smile 


--------------------
PM MAIL   Вверх
chiffa
Дата 10.10.2007, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: -1
Всего: -1



нууууу, а почему никто не предложил отключить регистр_глобалс в пхп.ини? 
PM MAIL   Вверх
=Женек=
Дата 10.10.2007, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Отключить?
Мож я чего не понимаю, но когда проблема появилась, я подумал что они у меня отключены и их как раз включить надо. Ан нет.


Код

если вначале включаемого файла написать global $connection;



Если вначале (ставил после "<?php")- не получается. Если только ставить в начале каждой функции. Но это тоже нерационально.

Еще предложения будут?
PM MAIL   Вверх
rMaveric
Дата 11.10.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



=Женек=, Не используй global и масив глобальных переменных, это к Богу не ведет. Если у тебя что-то видно извне функции, а нужно чтобы появилось внутри функции, то для этих целей у функции параметры придуманы. Это раз.

Для извлечения данных передаваемых методом post служит массив $_POST и его использование не предполагает ничего страшного. Это два.

Но если ты не знаешь для чего используются параметры функции, и как их использовать, то можешь попробовать поюзать массив $_SESSION, он как глобальный тоже сойдет smile Но работодателю такой код лучше не показывать в качестве портфолио.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
Папараццы
Дата 11.10.2007, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



register_globals=On
 Надо врубить чтобы он глобальные перменные  регистрировал.  И не каких проблем не будет


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
rMaveric
Дата 11.10.2007, 10:46 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пожалуйста не давайте рекомендаций ухудшающих код кроме как в варианте стёба.  smile 

Пусть человек сразу учится писать красиво и правельно, а то потом такой код вам же править прийдется, прошу прощения а  smile 


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
=Женек=
Дата 11.10.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Папараццы, фтыкать в тему надо, я уже писал что проверял register_globals

Добавлено через 13 минут и 14 секунд
Код

$_POST и его использование не предполагает ничего страшного


Конечно. Но в основном файле я могу просто обратиться - $var. А во включаемом - не могу (((.
PM MAIL   Вверх
Veve
Дата 11.10.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 1.1.2005
Где: Латвия, Рига

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



Цитата

Конечно. Но в основном файле я могу просто обратиться - $var. А во включаемом - не могу (((. 


Ну я думаю, что тоже можешь.... Просто насколько я понял, твой файл "functions.php" состоит из множества функций:
Код

 function f1()
{
.....
}
 function f2()
{
.....
}
 function f3()
{
.....
}

Поэтому, если ты хочешь использовать $var во включаемом файле внутри функций, то тебе нужно поступить, как сказал rMaveric.
Если ты хочешь убедится, что ты можешь использовать $var во включаемом файле, то попробуй написать к примеру 
Код

echo $var; 

в начале включаемого файла, только не внутри функции!!

Это сообщение отредактировал(а) Veve - 11.10.2007, 13:41
PM MAIL ICQ Skype MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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