Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: HTTP_POST_VARS -> _POST
Forum PHP.pl > Forum > PHP > Object-oriented programming
_memento_
Witam,
Wlasnie uaktualnilem php na 5 i mam cmsa ktory ma wiekszosc starego kodu(mimo najnowszej wersji) ktory nie dziala pod php5 a dokladnie:
HTTP_POST_VARS, HTTP_GET_VARS, HTTP_SERVER_VARS
zastanawiam sie teraz jak to szybko zrobic by nie zmieniac tego wszystkiego w plikach na wersje odpowiadajace normom php5
Czy wie ktos jak to mozna latwo i sprawnie zrobic ?
Kombinowalem cos z tym mniejwiecej tak:
define(HTTP_POST_VARS, _POST); <-- w pliku glownym do ktorego odnosza sie wszystkie pliki
ale to nie chce dzialac - co robie zle ?
A moze macie inne ciekawsze pomysly ?
czachor
A nie możesz zrobić czegoś takiego jak 'Find and replace'? Większość programów to ma...
nospor
uzyj jakiegos edytorka i zrób replace(zamien) biggrin.gif
bela
Cytat(_memento_ @ 2005-05-20 19:35:35)
Kombinowalem cos z tym mniejwiecej tak:
define(HTTP_POST_VARS, _POST); <-- w pliku glownym do

Użyj mojego preprocessora, dopisz plugin który robi str_replace i voila winksmiley.jpg
ksiadz
moze cos takiego naprawi problem
  1. <?php
  2.  
  3. $_POST = array();
  4. foreach( $HTTP_POST_VARS as $key => $val )
  5. {
  6. $_POST[ $key ] = $val;
  7. }
  8.  
  9. $_GET = array();
  10. foreach( $HTTP_GET_VARS as $key => $val )
  11. {
  12. $_GET[ $key ] = $val;
  13. }
  14.  
  15. $_SERVER = array();
  16. foreach( $HTTP_SERVER_VARS as $key => $val )
  17. {
  18. $_SERVER[ $key ] = $val;
  19. }
  20.  
  21. ?>

albo przez referencje problem rozwiazac smile.gif
NuLL
  1. <?php
  2.  
  3. $_POST=array();
  4. $_POST=$HTTP_POST_VARS;
  5.  
  6. ?>

A tak sie nie da ? snitch.gif

EDIT:
.johnny - masz rację małe niedopatrzenie :roll2:
BTW. Fajny avatarek z plyty Queen-ów smile.gif
.johnny
A nie przypadkiem odwrotnie? smile.gif

  1. <?php
  2.  
  3. $HTTP_POST_VARS = array();
  4. $HTTP_POST_VARS = $_POST;
  5.  
  6. ?>
_memento_
Nic nie dziala smile.gif
To moze skorzystam z programu ktory wszystko znajdzie i zamieni tylko moze mi podacie jakis przyklad(najlepiej pod linuxa).
Wczesniej korzystalem ze zwyklych notatnikow ktore po otwarciu danego pliku zamienialy ale musial bym edytowac kazdy plik oddzielnie wiec dlatego ta prozba o podanie przykladowego programu.
hwao
a moze tak?
  1. <?php
  2.  
  3. $HTTP_POST_VARS = & $_POST;
  4.  
  5. ?>

hm?
jak nie ruszy to nie ma pewnie zasiegu globalnego smile.gif musial bys ja ustawic na globalna (ta zmiena)
_memento_
Cytat(hwao @ 2005-05-21 17:12:22)
a moze tak?
  1. <?php
  2.  
  3. $HTTP_POST_VARS = & $_POST;
  4.  
  5. ?>

hm?
jak nie ruszy to nie ma pewnie zasiegu globalnego smile.gif musial bys ja ustawic na globalna (ta zmiena)

Nie dziala.....
To prosze powiedziec jak mam ustawic na global
M4chu
  1. <?php
  2. $GLOBALS['zmienna'] = $zmienna;
  3. ?>
_memento_
ja to zrobilem inaczej winksmiley.jpg
for plik in *.php; do cat $plik | sed -e 's=HTTP_SERVER_VARS=_SERVER=g' > $plik.new; mv $plik.new $plik; done
tylko teraz inne pytanie bo dalej nie dziala
a znalazem jeszcze takie cos:
HTTP_POST_FILES <-- jak to zamienic by dzialalo w php 5
_SERVER["HTTP_USER_AGENT"] <-- http_user... czy to tez nie jest zle ?
Cudi
$_SERVER może zostać tak jak jest, a $HTTP_POST_FILES zostało zamienione poprostu na $_FILES.

Jeśli masz dostęp do php.ini możesz również ustawić dyrektywę register_long_arrays na On, co załatwi cały problem smile.gif

@hwao i @M4chu: nadanie zasięgu globalnego nic nie da, bo to za mało smile.gif Tutaj potrzebny jest zasięg superglobalny, którego nie da sie nadać zmiennej. Tak więc tak czy siak trzebaby ingerować w pliki i dodawać globale do każdej funkcji.
M4chu
Cytat(Cudi @ 2005-05-22 01:39:26)
@hwao i @M4chu: nadanie zasięgu globalnego nic nie da, bo to za mało smile.gif Tutaj potrzebny jest zasięg superglobalny, którego nie da sie nadać zmiennej.  Tak więc tak czy siak trzebaby ingerować w pliki i dodawać globale do każdej funkcji.

A jednak da sie winksmiley.jpg
Cytat(manual)
Global variables: $GLOBALS
An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $GLOBALS; to access it within functions or methods.
hwao
Cytat(M4chu @ 2005-05-22 09:58:15)
A jednak da sie winksmiley.jpg

Tak ale wtedy masz $GLOBALS['zmienna'] = array(); a chcemy sie odwolywac do $zmienna a nie $GLOBALS['zmienna']
_memento_
dobra ale co z HTTP_USER_AGENT <--- _SERVER["HTTP_USER_AGENT"] to bedzie ok ?
Co do dostepu do tego ini to nie wiem czy bede mial dostep do tego bo jesil sie nie myle *.ini to sa pliki typu windowsa smile.gif(gdzie to w linuchu ustawic)
Cudi
@M4chu: czytaj ze zrozumieniem. Nie da się dowolnej zmiennej ustawić jako superglobalną, można ją jedynie wsadzić w tablice $GLOBALS, która jest superglobalna, ale to nam nic nie daje w tej sytuacji smile.gif

@_memento_: prawdopodobnie w php.ini winksmiley.jpg Odpal funkcje phpinfo(); to dostaniesz informacje (m.in) o połozeniu pliku konfiguracyjnego.
hwao
No jak nie masz dospteu to dajesz w 1 lini kodu
ini_set" title="Zobacz w manualu PHP" target="_manual() z tym co chcesz zminic i powino byc ok.
Cytat
dobra ale co z HTTP_USER_AGENT <--- _SERVER["HTTP_USER_AGENT"] to bedzie ok ?

Raczej nie poniewaz znow bedzie problem z zasiegiem...
Wydaje mi sie ze z tego nic nie bedzie jezeli nie uda Ci sie ten ini_set" title="Zobacz w manualu PHP" target="_manual().
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.