Global Variables

9 отговора 241 прегледа
#1

Global Variables

Administratora na syrvyra na koito se hostva edin ot saitovete mi ne iska da si naglasi global_variables v php.ini .Imam mnogo scriptove koito go izpolzvat i ne e dobra ideia da gi redaktiram vsichki za da prorabotiat. Chetoh iz php.net za ini_set(), no iz komentarite pisheshe, che mai ne raboti za global_variables. Ostavete tova, ami locania mi syrvyr e s PHP 4.3.1 i Apache 2, no makar da pishe che php.ini e v /etc (kydeto mu e miastoto) go niama tam. Vyzmozno li e php da raboti bez php.ini vmomenta? No, tova ne e tolkova ot znachenie, molia kazete kakvo moze da se napravi za Global Variables, host-a e na apache.

Отговор
в отговор на webmaster-a #2

Re: Global Variables

три оферти :-)

1. ако не ти е адски много кода пробва да го направиш да работи с register_globals off най-добре

2. значи, провай да ти сменят опцията само за твоя виртуален хост, щото в php.ini си е грубо
php_admin_value register_globals on

3. ако се пак не става с тези работи пробай с ТОВА, което ще рече нещо от сорта (ще требе да го модифицираш според желанието)

extract($_REQUEST);
extract($_SESSION);
extract($_SERVER);

Отговор
в отговор на phpGuru #3

Re: Global Variables

Ne moga nishto da go molia admin-a, vse mi se opravdava che niamal vreme, az ako go nakaram da pipne v php.ini shte go nakaram da opravi za celia syrvyr global variables, no prosto niama vreme. Ako moga az sam niakaksi da si naglasia samo za moia virtual host, bez da go karam toi da pipa. A ot tretoto prosto ne moga da go razbera izopshto, moze bi ako mi go poiasnish shte e po-dobre.

Отговор
в отговор на webmaster-a #4

Re: Global Variables

V komentarite na php.net biaha pusnali kak da stane. Eto go, ako niakoi se interesuva. /Blagodaria na kolegata che mi kaza za Extract/:

<?php

if (!empty($_GET)) {
extract($_GET);
} else if (!empty($HTTP_GET_VARS)) {
extract($HTTP_GET_VARS);
}

if (!empty($_POST)) {
extract($_POST);
} else if (!empty($HTTP_POST_VARS)) {
extract($HTTP_POST_VARS);
}

?>

Отговор
в отговор на webmaster-a #5

Re: Global Variables

ако знаеш, че ще работи на 4.3.х, то може просто

extract($_REQUEST);

в $_REQUEST ги има и $_POST и $_GET, т.е. не са ти нужни никви проверки

ако ползваш сесии ще ти требе и $_SESSION, ако ползваш някоя и друга 'служебна' променлива, като $PHP_SELF, $REMOTE_ADDR, трябва и $_SERVER да екстрактнеш, ако правиш upload на файлове extract($_FILES) може и да ти свърши работа, а може и да не ти свърши ;-)) не съм се замислял

а това с виртуалният хост е както съм го написал и се прави за 5 сек, така, че .... просто е неоснователно, че няма време - добавя реда в твоя <virtualhost> и прави apachectl restart ....

Отговор
в отговор на phpGuru #6

добавка

extract($_SESSION); ще требе да се направи след session_start();

Отговор
в отговор на phpGuru #7

Re: добавка

Shtom triabva da go dobavia v konfiguraciata na Apache bi triabvalo i az da moga da si go naglasia ot .htaccess failovete. Kazi moliate po-podrobno kak stava. A syshto mi triabva i php self, az ne znaeh che i to ne raboti. Samoche ako moze v takyv vid v kakyvto az sym postnal tova za global variables - prosto copy/paste v scripta i trygva.

Отговор
в отговор на webmaster-a #8

ако имаш такива права за .htaccess-a

пробвай да сложиш

php_admin_value register_globals on

но има опасност се пак да не стане (зависи кво са ти разрешили)

а тези неща, дригите за копи/пейст

extract($_REQUEST);
extract($_SERVER);

би требело да ти е достатъчно освен в случаите, които казах -> сесии и ъплоуд на файлове

Отговор
в отговор на webmaster-a #9

Re: Global Variables

1. Da PHP moje da raboti bez php.ini, priemat se nastrojki pod podrazbirane
2. vmesto extract() na niakolko promenlivi, eto tova : [линк]

3. phpinfo() pishe che ti e v /etc , ponege e nastroeno taka. Drugoto normalno miasto za php.ini e /usr/local/lib/php.ini .

Отговор
в отговор на webmaster-a #10

Re: добавка

PHP_SELF ti e $_SERVER['PHP_SELF'] i povecheto drugi neshta gi ima tam. phpinfo() shte ti gi pokage.

Отговор