Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

include() i HTTP request varijable...

[es] :: PHP :: include() i HTTP request varijable...

Strane: 1 2

[ Pregleda: 5386 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pyc
Marko Domanović
Beograd

Član broj: 2771
Poruke: 902

Sajt: www.getmonero.org


+80 Profil

icon include() i HTTP request varijable...28.01.2004. u 14:17 - pre 245 meseci
Da li gresim ili sam u pravu ako izjavim da PHP pamti HTTP varijable samo na nivou prvog i drugog (tj. includovanog fajla)? znaci ako ako 1.php includuje 2.php, a 2.php includuje 3.php, samo 1.php i 2.php ce biti svesni HTTP varijabli, pa cak bi se usudio reci i session varijabli...

hvala puno unapred za pomoc i obecavam, po starom dobrom obicaju da cu sam da napisem resenje, ukoliko ga pronadjem... :)

pyc

[Ovu poruku je menjao pyc dana 28.01.2004. u 16:20 GMT]
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+11 Profil

icon Re: Include i HTTP request varijable...28.01.2004. u 14:20 - pre 245 meseci
Ne bi trebalo da ima nikakve veze nivo include-ovanja.

Da nisi pokusao da te romenljive korsitis iz neke funkcije? Promenljive iz gornjeg nivoa se ne vide u donjem nivou ako se ne navedu kao global u donjem nivou.

 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
*.teol.net

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: include() i HTTP request varijable...28.01.2004. u 22:14 - pre 245 meseci
include ti je kao da kod iz fajla koji incudujes putnes u fajl koji incuduje.
tu nema kašike....
 
Odgovor na temu

arsa xx
Srdjan Arsic
Beograd

Član broj: 14203
Poruke: 452
*.air.tehnicom.net

ICQ: 247217004
Sajt: webdizajn.arsic.biz


Profil

icon Re: include() i HTTP request varijable...29.01.2004. u 00:16 - pre 245 meseci
Postoji razlika izmedju $HTTP_... i $_... Ove prve nisu automatski globalne ako nije ukljucen register_globals a ove druge su jako jako super globalne :)

Ako koristis prve proveri register_global ... i kod u skriptama
Flash komponenta za atraktivan prikaz vesti na sajtu:
www.flash-news-ticker.com
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+11 Profil

icon Re: include() i HTTP request varijable...29.01.2004. u 09:29 - pre 245 meseci
Cek, cek, ja to nisam nasao u dokumentaciji. Postoji li nacin da neku promenljivu u PHP kodu proglasim globalnom tako da se vidi u svim blokovima i da ne moram u svakoj funkciji da stavljam global xxxx?

Ova PHP-ova privatnost promenljivih u kombinaciji sa nepotrebnoscu da se promenljive deklarisu me ubi. Najvise bugova koje napravim imaju to u zaledjini a vrlo je tesko utvrditi u cemu je problem.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.bankmeridian.com

Sajt: www.novikorisnik.net


+5 Profil

icon Re: include() i HTTP request varijable...29.01.2004. u 11:17 - pre 245 meseci
Šta se dešava kada se koriste direktive include i slične? Najbolje na primeru:

Neka "inklud.php" sadrži sledeće:
<?php
$promenljiva = 1;
?>

A "index.php":
<?php
$promenljiva = 0;
include ('inklud.php');
echo ($promenljiva);
?>

Šta se dešava kada se prilikom izvršavanja "index.php" dođe do linije gde uključujemo drugi fajl? Kod iz "inklud.php" se ubacuje u "index.php" na mesto include direktive:

<?php
$promenljiva = 0;
?><?php
$promenljiva = 1;
?><?php

echo ($promenljiva);
?>

Citat:
pyc:
Da li gresim ili sam u pravu ako izjavim da PHP pamti HTTP varijable samo na nivou prvog i drugog (tj. includovanog fajla)? znaci ako ako 1.php includuje 2.php, a 2.php includuje 3.php, samo 1.php i 2.php ce biti svesni HTTP varijabli, pa cak bi se usudio reci i session varijabli...

Grešiš.
 
Odgovor na temu

pyc
Marko Domanović
Beograd

Član broj: 2771
Poruke: 902

Sajt: www.getmonero.org


+80 Profil

icon Re: include() i HTTP request varijable...29.01.2004. u 12:15 - pre 245 meseci
hvala svima na odgovorima... pokusao sam da simuliram situaciju koja nece da mi proradi uz pomoc 4 php fajla koji se includuju u dubinu, i sve je u redu, 4ti fajl normalno cita http varijable... na sajtu koji radim, konkretno, u pitanju je ocigledno nesto drugo sto ja ne vidim, ili bar jos nisam video... necu sad ovde da gusim sa kodom, sajt ima prilicno nestandardnu logiku dizajna, tako da je najverovatnije problem tu negde...

ukoliko, budem nasao resenje i ukoliko ima smisla, napisacu ovde sta je bilo u pitanju...

big hello to broker!! :)

pyc
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: include() i HTTP request varijable...29.01.2004. u 18:26 - pre 245 meseci
Postavi error reporting na E_ALL pa ćeš dobiti warning kada koristiš
nedefinisanu varijablu. Jako lako otklanja takve probleme.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.vdial.verat.net

Sajt: localhost


+5 Profil

icon Re: include() i HTTP request varijable...29.01.2004. u 23:51 - pre 245 meseci
Citat:
broker:
Cek, cek, ja to nisam nasao u dokumentaciji. Postoji li nacin da neku promenljivu u PHP kodu proglasim globalnom tako da se vidi u svim blokovima i da ne moram u svakoj funkciji da stavljam global xxxx?

Ova PHP-ova privatnost promenljivih u kombinaciji sa nepotrebnoscu da se promenljive deklarisu me ubi. Najvise bugova koje napravim imaju to u zaledjini a vrlo je tesko utvrditi u cemu je problem.


ne postoji način da promenjive proglasiš globalnim, a ne razumem i zašto bi..

u stvari, još manje kapiram ovo drugo što si rekao. nikad nisam nailazio na takve tipove bugova...
 
Odgovor na temu

pyc
Marko Domanović
Beograd

Član broj: 2771
Poruke: 902

Sajt: www.getmonero.org


+80 Profil

icon Re: Include i HTTP request varijable...30.01.2004. u 10:16 - pre 245 meseci
Citat:
broker:
Da nisi pokusao da te romenljive korsitis iz neke funkcije? Promenljive iz gornjeg nivoa se ne vide u donjem nivou ako se ne navedu kao global u donjem nivou.


ovo je bio problem... prosto nisam primetio da je ceo izlaz prosao kroz jednu funkciju... jos jednom, hvala.

pyc

 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+11 Profil

icon Re: include() i HTTP request varijable...30.01.2004. u 10:39 - pre 245 meseci
Ma nema na cem pyc :) Tu smo da se ispomazemo. I drugi put.

Nego da pojasnim. Sistem privatnosti promenljivih na PHP=u je meni veoma stran i nepraktican, pre svega zato sto kao i svaki ozbiljanprogramer gledam da sve radim kroz funkcije ili cak klase, i onda moram da u svakoj funkciji ili metodu deklarisem globalne promenljive. U klasama to ide dotkle da cak svaki poziv metoda ili promenjive u klasi mora da ide preko $self. Cista smaracina koja uz to i bespotrebno cini kod necitkijim.

Ali s tim moze da se zivi, naucis da tako mora i hajde.

Medjutim ako se negde zeznes i ne odradis sve sto treba ili pogresis jedno slove u imenu promenljive eto muke, zato sto promenljive ne moraju biti deklarisane, greska ne moze da se uoci jer PHP-u to prolazi.

Siguran sam da je najvise potrosenog vremena na trazenje greska otislo uprvo na trazenje gresaka usled gresaka u imenima promenljivih.

Tako dolazi do situacija kao ovo sto je Pyc imao kao problem. Stvar ne radi, nema prijavljivanja gresaka a tesko je naci uzrok. Mene bi mnogo obradovalo kada bi PHP mogao da se podesi da ne dozvoljava koriscenje promenljive ako prethodno nije deklarisana.

Ukljucivanje prijavljivanja upozorenja (E_ALL) ume takdje da bude nocna mora posto prijavljuje i gomilu nebitnih upozorenja pa samo komplikuje stvari i smeta.

Moze biti da ja nesto nisam provalio uvezi ovoga, pa zato nalazim ovu diskusiju potencijalno prilicno korisnom.

 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.vdial.verat.net

Sajt: localhost


+5 Profil

icon Re: include() i HTTP request varijable...30.01.2004. u 18:08 - pre 245 meseci
ne, sistem privatnosti promenjivih u PHPu je jedini takav i moguć, i jedini ima smisla u jeziku koji ne zahteva deklarisanje promenjivih pre upotrebe. jednostavno, svaka druga alternativa bi bila pogubna. automatsko pristupanje globalnim promenjivima iz funkcija bi bila katastrofa od side-efekata (ja u skoro svakoj funkciji imam lokalnu promenjivu $i).

i drugo, ne znam zašto uopšte toliko naglašavaš pristupanje globalnim promenjivima. pa to je totalno arhaično ponašanje. to ionako treba izbegavati iz mnogo jačih razloga od "mrzi me da stalno pišem global $prom;".

i takvih problema jednostavno nemam, jer nemam ni veliku potrebu da pristupam globalnim promenjivima.. možda global koristim u 10% mojih funkcija (tj 5% koda, jer u metodama klase to nikako ne treba koristiti). zato sam i rekao da ne razumem oko čega je tako big deal..


a što se (ne)deklarisanja promenjivih pre upotrebe tiče, to je jednostavno tako sa svim skript jezicima, i očigledno nije za svakog. ko to ne voli, uvek ima opciju da i dalje piše cgi skripte u C-u.

a php na sreću bar ima dosta načina za obradu grešaka, i onaj ko na iole ozbiljnijem sajtu (čitaj više od jedne skripte) ne koristi set_error_handler() makar zarad logovanja grešaka, i ko se jednostavno oslanja na error_reporting(0), po meni čini pravo krivično delo, i treba ga javno streljati za primer kako NE treba pisati web aplikacije..
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.041net.co.yu

Sajt: www.novikorisnik.net


+5 Profil

icon Re: include() i HTTP request varijable...31.01.2004. u 12:38 - pre 245 meseci
Citat:
-zombie-:
ne, sistem privatnosti promenjivih u PHPu je jedini takav i moguć, i jedini ima smisla u jeziku koji ne zahteva deklarisanje promenjivih pre upotrebe. jednostavno, svaka druga alternativa bi bila pogubna. automatsko pristupanje globalnim promenjivima iz funkcija bi bila katastrofa od side-efekata (ja u skoro svakoj funkciji imam lokalnu promenjivu $i).

Imamo alternativu u JavaSctiptu, a ne vidim šta je tu pogubno. Svaka promenljiva je podrazumevano globalna, a lokalna je samo ako se u bloku deklariše sa var. Side efekat za promenljivu i razrešava se lako: for (var i = 0; i < end; i++)...

Svaki jezik određuje neka pravila i daje neke slobode. To su stvari koje se poštuju (inače - zamisli da se boriš protiv PHP-a tako što mu se tera inat pa se ne navedu globalne promenljive koje su potrebne nekoj funkciji - ko tu pobeđuje?).

Citat:
i takvih problema jednostavno nemam, jer nemam ni veliku potrebu da pristupam globalnim promenjivima.. možda global koristim u 10% mojih funkcija (tj 5% koda, jer u metodama klase to nikako ne treba koristiti). zato sam i rekao da ne razumem oko čega je tako big deal..

To je pitanje stila i totalno se slažem da globalne promenljive ne treba da egzistiraju unutar funkcija (bez obzira na programski jezik, stil je nezavisan od jezika), zbog pomenutih side efekata i same definicije funkcije kao nezavisne programske celine - funkcija upotrebom globalnih promenljivih nije nezavisna.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.vdial.verat.net

Sajt: localhost


+5 Profil

icon Re: include() i HTTP request varijable...01.02.2004. u 01:18 - pre 245 meseci
pa gde nađe sa JSom da upoređuješ nesrećo? :-P

pa mnogi misle da je to najveća krdža od jezika, čak i među skript jezicima.. ;)

mislim, sladak je on, i na momente mi se baš zasviđa, ali brate čim uzmeš da radiš nešto iole komplikovanije.. smrt! (i ne, ne pričam o različitim interpretacijama tog jezika u različitim browserima. to je samo bonus! ;)


nego, nema mnogo toga da se raspravlja. funkcija treba da komunicira sa ostatkom sveta (koda) samo preko njenih ulaznih parametara i rezultata. sa svake druge strane treba da izgleda kao crna kutija koja nema ama baš nikakvog uticaja na ostatak programa (side efekti i slično).

za probleme koji su već komplikovaniji, i kod kojih ovo nije moguće ostvariti jednom funkcijom, ljudi su izmislili klase. u tom slučaju je objekat taj koji spolja treba da se ponaša kao crna kutija.

i to nisam sada ja izmislio, nego mnogo pametniji ljudi mnogo pre mene...

 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.186.EUnet.yu



+1 Profil

icon Re: include() i HTTP request varijable...01.02.2004. u 03:43 - pre 245 meseci
Sorry, ne kapiram zasto pljujes JS? JS i PHP su babe i žabe, pa tvoja izjava "čim krenem da radim nešto komplokovanije u JS..." izaziva čuđenje jer on nije ni namenjen za nešto komplikovanije. Ne znam, šta bi ti komplikovanije odradio u JS?
Goran Pilipović fka bluesman
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.vdial.verat.net

Sajt: localhost


+5 Profil

icon Re: include() i HTTP request varijable...01.02.2004. u 04:21 - pre 245 meseci
pa nisam ja pomenuo i upoređivao php i JS.

niti nešto naročito pljujem JS. obavlja posao za koji je pisan, i za to je odličan. pričali smo malo uopštenije o teoriji i stilovima programiranja, a u toj kategoriji se JS nikako ne može pohvaliti..

a da se ne lažemo, jeste ovo PHP forum, i jeste da nam php super završava web poslove, ali ni on nije preterano sjajan po tim kriterijumima. ;)

 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
*.vdial.verat.net



+11 Profil

icon Re: include() i HTTP request varijable...01.02.2004. u 11:47 - pre 245 meseci
Mislim da se radi o blagomnerazumevnaju izmedju nas.

Ja sam prilicno iskusan programer, radim to bezmalo20 godina i vrlo dobro se razumem u stvar. Slazem se da je programiranje koje se oslanja na rad sa globalnim promenljiama prilicno prljavo, medjutim u nekim siutacijama ima sasvim korisnu primenu, pre svega recimo kada se te promenljive koriste kao globani parametri za aplikaciju. Ima i drugih primena, gde bi bilo prilicno neproduktivno funkciji prosledjivati gomilu parametar samo zato da bi se ispostovao princip da funkcija sve mora da dobije kroz parametar.

 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: include() i HTTP request varijable...01.02.2004. u 15:07 - pre 245 meseci
ne vezano toliko za PHP ali moje misljenje i iskustvo kazu da se upotreba globalnih varijbli treba svesti na minimum, a da funkcije ne smiju mijenjati bilo sta osim svojih povratnih vrijednosti. Tako imas veliku kontrolu nad kodom i program odnosno aplikacija je daleko sigurnija u smislu kvaliteta procesa i smanjivanja mogucnosti greske.


:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

arsa xx
Srdjan Arsic
Beograd

Član broj: 14203
Poruke: 452
*.air.tehnicom.net

ICQ: 247217004
Sajt: webdizajn.arsic.biz


Profil

icon Re: include() i HTTP request varijable...01.02.2004. u 18:42 - pre 245 meseci
Meni licno odgovara kako je regulisan sistem vidljivosti promenljiva u PHP-u.
U svim funkcijama mi na pocetku stoji:
Code:

GLOBAL $tpl, $db_link, [$user,] [$conf,] [$lang]


Nema izuzetaka ostale se promenljive prosledjuju kao parametri.


Flash komponenta za atraktivan prikaz vesti na sajtu:
www.flash-news-ticker.com
 
Odgovor na temu

bluesman

Član broj: 4505
Poruke: 1895
*.105.EUnet.yu



+1 Profil

icon Re: include() i HTTP request varijable...05.02.2004. u 10:58 - pre 245 meseci
To je zato sto ne koristis klase pa ti je kod toliko tvrd (nefleksibilan). Zamisli da hoces da promenis nesto, ili recimo zamisli da umesto mysql (vidim da prenosis globalnu varijablu $db_link) hoces da koristis pgsql - ceo kod pišeš ponovo.

Zar nije bolje da napraviš abstraktnu klasu koja radi sa bazom podataka pa onda za svaku novu klasu imaš varijablu $dbclass ili tako nešto i jednostavni manipulišeš sa bazom podataka... hajde da pokušam da objasnim kako ja to radim (ako nekoga interesuje)

imam klasu Database:
Code:

class Database
    {
    function Database ($dbHost, $dbName, $dbUser, $dbPass, $connect = true)
        {
        $this->dbHost = $dbHost;
        $this->dbName = $dbName;
        $this->dbUser = $dbUser;
        $this->dbPass = $dbPass;
....

onda je extendujem sa mysq_database

Code:

class SQLDatabase extends Database
    {
    var $resultType = MYSQL_ASSOC;
    function SQLDatabase ($dbHost, $dbName, $dbUser, $dbPass, $connect = true)
        {
        parent::Database ($dbHost, $dbName, $dbUser, $dbPass, $connect);
        }
function query ($query_string)
        {
...


a onda svaku novu klasu deklarisem kao
Code:

class Users
    {
    var $dbClass;
    /* Constructor */
    function Users (&$dbClass)
        {
        $this->dbClass     = $dbClass;
        }
...

i kada iz klase radim query, samo zovem
Code:

$this->dbClass->query ($query_string)


Zato, ako hocu recimo da radim sa PG, ceo kod ostaje isti samo izaberem drugu db klasu koja radi sa pgsql, a pošto su nazivi funkcija isti, ostatak koda se ne menja.

Još bolje, dodati neku konstantu kojom definišeš sa kojom bazom radiš pa onda u odnosu na vrednost te konstante include-uješ odgovarajući file.
Code:

if (!defined('SQL_DB'))
    define('SQL_DB', 'mysql4');

switch(SQL_DB)
    {
    case 'postgres':
    case 'postgres7':
        require_once "class.postgres7.database.php";
        break;

    case 'mysql4':
    default:
        require_once "class.mysql.database.php";
        break;
    }



a obe klase se zovu SQLDatabase pa kada uradim
$dbclass = new SQLDatabase (...)
sve jedno je koja je DB

Napominjem da verovatno postoje i druga kvalitetn(ij)a rešenja, ali ja ovako radim zato što rezultati koje dobijem iz querija mogu odmah da koristim sa smarty.

Mozda odstupam od teme, ali je to zbog ideje da bi ovo nekome moglo da koristi, a u decembru sam imao jedan projekat gde je trebalo da prepravim postojeci kod koji je neko drugi pisao, pa sam naisao na gomilu problema zbog koda koji je pisan u funkcijama u kojoj svaka pocinje sa mysql_connect (samo primer) i jednostavno moras da ides fajl po fajl, funkciju po funkciju i da menjas sve isto, slaba vajda cak i od search-replace...

onda u vezi global, covek je pravio globalne varijable:
global $HTTP_POST_VARS
pa kada sa search-replace zamenim $HTTP_POST_VARS za $_POST moram jos da idem funkciju po funkciju i brisem ovo iz global... Hocu da kazem, gomila problema samo zbog koda koji je pisan bez plana....
Goran Pilipović fka bluesman
 
Odgovor na temu

[es] :: PHP :: include() i HTTP request varijable...

Strane: 1 2

[ Pregleda: 5386 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.