Új hozzászólás Aktív témák
-
Lacces
őstag
válasz Sk8erPeter #8000 üzenetére
De most legalább Istennek érzem magam És neked is kösz
[ Szerkesztve ]
-
Siriusb
veterán
válasz Sk8erPeter #8000 üzenetére
Egyetértek!
Amikor életemben először felraktam az apache-t, stb. virualhostokkal a gépemre, nem félórás munka volt, mire mindenki felsorakozott.
Viszont így tanul igazán a halandó... -
Sk8erPeter
nagyúr
válasz Siriusb #8003 üzenetére
Hát igen. Amúgy miután ezeken a fázisokon végigment az ember, még mindig könnyű hibát véteni a konfigfájlban, aztán nézni, hogy most mi van má' megint (persze kellő szopás után viszonylag gyorsan rájössz a hibaüzenetekből, de akkor is idő megy vele). Ezért volt nekem felüdülés, vagy inkább kellemes meglepetés az IIS admin-felülete (alapvetően eléggé ódzkodtam tőle, míg ki nem próbáltam). Összekattintgatod, és egyszerűen mennek az oldalaid.
Nem is igazán világos, normális grafikus felület miért nem készült még Apache-hoz - csak ilyen: [link], de próbáltam, még mindig elég silány, csak a konfigfájlt állítod, még mindig el lehet cseszni, és ettől kezdő nem kattintgatja össze az oldalt -, azért ennyire senki nem lehet konfigfájl-buzi. (na jó, de)Sk8erPeter
-
Lacces
őstag
Na még annyit, hogy volt a Xampp fent, és most alias a natur Apache+PHP+Mysql+phpmyadmin.
Amikor a Xampp volt fent, és volt valami hiba, akkor volt egy debugger(talán?), ami jelezte, hogy mit hogyan írjak át. Hol a hiba stb. Lásd: Egy hsz-em
Na most ebben az újabb natur verzióban nincs jelen ilyesmi. És csak lestem, hogy hoppá semmit sem jelenít meg. Semmilyen hibát nem írt ki, hogy miért nem jeleníti meg az oldalamt, aztán a fentebbi hsz-m jutott eszembe, hogy jelzett hibát Xampp alatt az oldal. És akkor most aszerint átírtam a fájlokat, és hoppá, már működik is.
De ugye itt semmi sem jelezte ki, hogy mi baj.
(Könyv forráskódja és javításokat jelölő doksijában, sem volt ez a hiba felsorolva, javítva)Értitek . Kell egy debugger, ami jelzi, hogy na-na, valami baj van (mint Xamppnál), nem úgy mint most, hogy vagy működik az oldal, és mindent megjelenít, vagy némán csendben marad, és bedob egy üres oldalt.
-
Sk8erPeter
nagyúr
Ennek semmi köze a XAMPP-hoz! Legfeljebb annyiban, hogy ott alapból a php.ini-ben nem voltak elnyomva a hibajelzések.
De ez nem "debugger", ne keverjük a fogalmakat. Ez csak simán kiírja a hibaüzeneteket.
Kotord elő a php.ini-t, és keresd meg az error_reporting részt.
Nézd meg, hogy jelenleg mi van beállítva.
Én ezt a beállítást javaslom fejlesztésre:
error_reporting = E_ALL | E_STRICT
Ez a "legszigorúbb" hibajelzés, mindent kiír.
Egy igényes programozó megszünteti a hibajelzések okát, nem pedig láthatatlanná teszi őket.
Engem személy szerint kiráz a hideg attól a mentalitástól, hogy "ugyan már, ki nem szarja le a notice-okat, nyomjuk el, nem kell annak látszania, szedjük ki az error_reportingból, azt kész, meg van oldva". Na persze, majd amikor azzal fog a fejlesztő időt elkúrni, hogy rájöjjön, vajon miért nem működik valami (pl. tömbindexelésnél elgépelés miatt), akkor változtat a hozzáállásán. (vagy nem, az a menthetetlen eset)
Aztán keresd meg a display_errors-t:
display_errors = On
Ha még alaposabban szeretnéd:
display_startup_errors = OnViszont fontos hozzátenni, hogy ezek a hibajelzési beállítások csak a fejlesztési fázisra vonatkoznak. Utána szigorúan tilos kiíratni ezeket a hibákat! Többek közt az is egy sebezhetőségi pont. Az éles rendszeren kezeld a hibákat megfelelően, csakis belső naplózást használj a hibajelzések tárolására, ne írass ki belőlük egyet sem.
[ Szerkesztve ]
Sk8erPeter
-
Tele von Zsinór
őstag
Egyrészt amit a kollega mondott az error_reporting beállításáról (meg a notice-ok irtásáról), másrészt mégegy csomagtipp: php5-xdebug. Felrakod, apache-t újraindítod, más dolgod nincs is (azért phpinfo()-ban ellenőrizheted ).
Az xdebug egy borzasztóan jó eszköz fejlesztés közben. Az egyik legalapabb dolog, hogy az el nem kapott exceptionök nem egy egysoros valamik lesznek, hanem egy szép, valamennyire formázott táblázat, amiben ott a stack trace is. Másrészt a var_dump kimenete is sokkal olvashatóbb lesz. De a kedvencem a debugger - én netbeans-zel használom, és működik, amit más (c++, delphi, c#, akármi) nyelvek IDE-jében megszokhattál: step-by-step debug, watch-ek és egyéb finomságok.
[ Szerkesztve ]
-
wolandino
tag
Sziasztok!
Codeigniter(MVC) keretrendszert használok és kezdetben sok mindenre nem tudtam mire jó, örültem, ha úgy működött az oldal, ahogy szerettem volna és nem foglalkoztam mással
Most jutottam el odáig, hogy szeretném, ha a kódjaim minél egyszerűbbek és átláthatóbbak lennének a Nézetekben is.
Egyelőre még kevertem van bennük HTML, PHP, Javascript( JQuery,JQuery UI, Highcharts) kód. Szeretném ha a HTML-t felváltaná a PHP, ehhez a keretrendszernek vannak osztályai és segédei. Illetve azt hiszem a smartykkal is el lehet érni valami hasonlót.
A JavaScript kódokat is lehet, hogy jobb lenne valahogy külön fájlokban tárolni.
Szeretnék strukturált, átlátható kódokat írni, és már van is valamilyen fejlődés a kezdeti állapothoz képest, de még nagyon az elején járok.
Jól jönne pár tapasztalt róka véleményeKöszönettel,
W. -
MODERÁTOR
Sziasztok!
Van arra megoldás vagy módszer, hogy Böngészőt authentikáljak?
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
wolandino
tag
Nem vagyok benne biztos, de ez azt hiszem hasznos lehet:
[conditional-css] -
Tele von Zsinór
őstag
Igen. Olvasd el például ezt a cikket: Using SSL Client Certificates with PHP
-
MODERÁTOR
Köszi!
De én olyanra gondolok, ami a Steam esetében van webes felületről. A történet lényege, hogy ha bejelentkezel, és a böngésződ nincs az adatbázisukban, küldenek egy emailt egy megerősítő kóddal, aminek a megadása után tudok operálni.
mobal,
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
-
Lacces
őstag
Köszönöm az eddigi help-et, jó volt a php.ini-ben egy kicsit lenni, de tényleg, átnézegettem őket.
Most észrevettem egy újabb furcsaságot. (A könyv példája alapján egy saját error osztályom van ami kiír amit akar)
Gondoltam egyet, és az egész projekt mappámat, másoltam, és átneveztem, de tényleg csak annyi, hogy polobolt helyet egy másik névre.
Na de viszont akkor kidobott nekem egy hibát:
filemtime(): stat failed for /var/www/tshirtshop/presentation/templates_c/1f28fb1f88fa6e0e9ca9af2d5bb26df5592c8861.file.store_front.tpl.phpCsak azért nézek, mert én tényleg csak másoltam. + a jogokat is kiadtam a templates_c mappára: chmod a+w, ami az eredeti poloboltnál is volt.
Eredeti mappára is:
sudo chmod a+w /var/www/polobolt/presentation/templates_c
Másolt mappára is:
sudo chmod a+w /var/www/tshirtshop/presentation/templates_cMegnéztem grafikusan a jogokat, és azt láttam, hogy a templates_c mappában lévő 2 fájlra lévő jogok, különböznek a 2 projekt esetén.
(Ezeket a fájlokat nem én hoztam létre, hanem automatán jöttek létre)
a polobolt esetén, ami működik, ott a jogosultságok esetén a tulajdonos és csoport név: www-data!
Még amit én másoltam, ott meg én vagyok a tulajdonos és csoport is... Lehet ez itt a gond? -
Tele von Zsinór
őstag
-
Lacces
őstag
válasz Tele von Zsinór #8016 üzenetére
Köszönöm, azért segítséget.
Az lenne a kérdésem, tudsz kezdőknek ajánlani esetleg egy jó weboldalt, ahonnan meglehetne tanulni egy komplett webáruház elkészítését?
Ezt a könyvet unom, mindig más hibákat dob mint ami benne van, vagy csak itt szerencsétlenkedek vele...
-
Sk8erPeter
nagyúr
Most kezdőként komolyan webáruház fejlesztésével akarsz kezdeni? Szerintem tegyél le róla. Nem azért, mert képtelen lennél megcsinálni, hanem mert olyan szinten komplex, és elképesztő időelkúró tevékenység, de legfőképp azért, mert nagyon jó webshopmotorok vannak készen, amiket folyamatosan foltozgatnak az esetleges felfedezett biztonsági vagy egyéb hibák miatt. Így egyre nehezebb feltörni és megborítani őket.
Ha PHP-t szeretnél tanulni, ne webshoppal kezdd, hanem előbb tanulgasd meg, hogy kell formokat validálni, feldolgozni, adatbázisba tölteni az adatait, onnan lekérni a feltöltött adatokat, aztán jöhetnek a komplikáltabb dolgok is.
Persze ahogy érzed, de én a helyedben tuti, hogy a meglévő igen széles ingyenes webshop-kínálat ismeretében NEM épp webshop kódolásával cseszném el az időt.
De ez igaz szerintem haladókra is, ha nem muszáj, akkor nem elejétől kezdve kellene megírni egy webshopmotort, hanem inkább továbbfejleszteni egy meglévőt.[ Szerkesztve ]
Sk8erPeter
-
Lacces
őstag
válasz Sk8erPeter #8018 üzenetére
Igen, igazad van, meg érzem is magamon ezt a sok szívást rajta, először szerintem megnézek egy másik könyvet, amely tágabban belemegy a php és mysql-be. De mégis kezdőknek írt. Amit te is írtál.
A főprofilom fejlesztesnél, remélem nem php lesz . Csak hát kell a munka, és azt mondják gyorsabban lehet tanulni ezt a nyelvet és helyileg lenne is php-s meló (webáruház fejlesztő), .net/java nincs (meg még azt magamtól is kéne tanulni), és annyi pénzem sincs, hogy pesten albiba menjek... Egyrészt emiatt gondoltam, hogy az alapoktól megismerni... csak egyszer átnézni, hogy milyen ez. De max akkor egy kis rövid komplex weboldalra gondoltam.
Visszont hobbi szinten akarok majd egy ilyen fél facebookos oldalt, meg hirdető oldalt létrehozni és üzemeltetni. Ezért is gonolkoztam a webshopban, mert az elég komplex hozzá. Bár lehet az már túlkomplex is lenne.
Előbb akkor átnézem azokat, amiket te is írtál
Aztán majd utána jövők, hogy merre tovább. -
Lacces
őstag
válasz Sk8erPeter #8022 üzenetére
Igen, ezt ismerem, ezt már kivégeztem , de azért köszönöm.
-
wolandino
tag
Sziasztok!
Codeigniter(MVC) keretrendszert használok és kezdetben sok mindenre nem tudtam mire jó, örültem, ha úgy működött az oldal, ahogy szerettem volna és nem foglalkoztam mással
Most jutottam el odáig, hogy szeretném, ha a kódjaim minél egyszerűbbek és átláthatóbbak lennének a Nézetekben is.
Egyelőre még kevertem van bennük HTML, PHP, Javascript( JQuery,JQuery UI, Highcharts) kód. Szeretném ha a HTML-t felváltaná a PHP, ehhez a keretrendszernek vannak osztályai és segédei. Illetve azt hiszem a smartykkal is el lehet érni valami hasonlót.
A JavaScript kódokat is lehet, hogy jobb lenne valahogy külön fájlokban tárolni.
Szeretnék strukturált, átlátható kódokat írni, és már van is valamilyen fejlődés a kezdeti állapothoz képest, de még nagyon az elején járok.
Jól jönne pár tapasztalt róka véleménye
Köszönettel,
W.Senki?
-
MODERÁTOR
válasz wolandino #8024 üzenetére
Szia! Én nem nagyon értem mit szeretnél. Ha jól tudom a Codeigniter nem tartalmaz külön "template engine" -t. Ez esetben javaslom a Smarty használatát, hogy el tudd különíteni a nézeteket. Természetesen a Controllerel küldöd ki a nézetet, de a nézetben már nem lesz semmi php, max változó név.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Lacces
őstag
válasz Sk8erPeter #8022 üzenetére
Hűha, bővült ám rendesen. Régi volt meg tőle, ami nem más volt, mint a www3schools-on található hivatalos doksinak a magyarosítása
Én most jelenleg ezt nézem át. Nagyon jó, tetszik. Gyakorlatias. Nekem eddig bejön. Igaz még az elején vagyok, és a felületen vannak főleg php kódok (UI - aztszem így hívják ezt)
Php solutions könyvDe amit küldtél azt ismét átfogom olvasni! KÖszönöm
-
wolandino
tag
A Codeigniter tartalmaz többek között egy HTML helpert.
illetve segítség lehet még a HTML Table Classt.Amúgy szerintem elég érthetően leírtam mit szeretnék
Szeretnék olvasható, strukturált kódokat írni, csak még nem tudom mi lenne célravezetőbb.
Nem feltétlenül szeretnék használni "template engine"-t, de ha valaki meggyőz róla, hogy ez visz el a nirvánába, akkor természetesen fogok. Úgy érzem a kódjaim olvashatóbbak lennének, ha csak minimálisan keverednének bennük az egyes programozási platformok.
Pl ha vannak jó PHP megoldások a HTML minimalizálásához, akkor jó, vagy bármi egyéb amire nem gondoltam, akár teljesen banális dolgok is, mint pl. néhány irányvonal vagy programozási stílus bármi A smartykról pl. folyamatosan olvasom, hogy milyen jók, de még nem igazán sikerült átéreznem, hogy mitől is, a példák amiket találtam is inkább arról szóltak, hogy milyen jó sablonokat lehet velük készíteni-ami persze jó-de nem feltétlenül éreztem átláthatóbbnak a dolgokat ettől. És mindig csak ilyen "Helló világ" szintű példákat találtam, pedig egy komolyabb feladatnál talán könnyebben meglátnám a dolog nagyszerűségét
De mondom, nem a smarty a lényeg, hanem a strukturált, karbantartható, olvasható, továbbfejleszthető nézetek. Ha smarty a megoldás, akkor az, ha bármi más, akkor bármi más -
wolandino
tag
válasz Sk8erPeter #8022 üzenetére
Én viszont még nem ismertem, átlapoztam, és nagyon ász, ha elolvastam, lehet még fizetek is érte
Köszönöm! -
Tele von Zsinór
őstag
válasz wolandino #8027 üzenetére
Az, hogy az html, js és css fileokat érdemes különválasztani, nem kérdés.
Template-nyelv tekintetében nagyon megoszlanak a vélemények, az egyik oldal (jogosan) arra hivatkozik, hogy tkp. a php maga is egy template-motor, a másik oldal viszont nagyon okos kibővítéseket tud, és valóban nagyon tudja egyszerűsíteni a templateket (na meg a designernek sem kell megtanulni php-ul).
Kipróbáltam a smartyt (és nem többesszám, mint nálad), nem győzött meg.
Nagyon sokáig tiszta php-t használtam a templateimben, kis odafigyeléssel: nem nyúlok már adatbázishoz (ami kell, azt megkaptam a controller rétegtől), illetve vezérlési szerkezetekben az alternatív szintaktikát használtam.
Mostanában fedezem fel magamnak a twiget, nagyon tetszik, még meglátjuk, hosszútávon beválik-e. Persze sokat segít, hogy beépített támogatása van az általam használt keretrendszerben.
-
CSorBA
őstag
válasz Tele von Zsinór #8029 üzenetére
Én is kb hasonló cipőben járhatok. Legtöbb általam készített oldalnál eléggé egyben van a sablon és a funkció, és mivel a dizájváltás általában eddig sosem annyiból állt, hogy tisztán csak kinézetet cserélt a cég (hanem rengeteg funkció került adott esetben be és ki) így kb én is annyit csináltam mint te:
"Nagyon sokáig tiszta php-t használtam a templateimben, kis odafigyeléssel: nem nyúlok már adatbázishoz (ami kell, azt megkaptam a controller rétegtől), illetve vezérlési szerkezetekben az alternatív szintaktikát használtam."
Nem tudom én sem igazából eldönteni, mivel eddig egyszemélyes fejlesztőként dolgoztam kizárólag, így egyelőre én is az első tábort gyarapítom, úgyis csak én foglalkozok az egésszel, és megfelelően kommentezve, tördelve, jegyzetelve, értelmesen csinálva eddig még mindent átláttam. Van egy cég (akikkel elég régóta dolgozok), ami eddig négy átalakuláson ment át, és mindig teljesen új honlap készült , szóval eddig teljesen tudtam hanyagolni ezt a template témát, de persze ez leginkább azért van, mert nem volt olyan munka, ahol szükség lett volna rá.
-
#95092224
törölt tag
Szerintetek ezt hogyan kell érteni?
http://img401.imageshack.us/img401/6544/nonamejp.jpg
(link: 72 kb jpeg) -
MODERÁTOR
válasz Sk8erPeter #8034 üzenetére
Esetleg alternatíva még: [link]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Lacces
őstag
Sziasztok!
PHP egy kis sajátosságához kéne értelmezni, fejtájgítást kérnék az elit programozóktól
Adott ez a kód:
echo " {$startYear}–{$thisYear} ";
Az lenne a kérdésem, hogy itt "{" és "}" zárójelek, miért kellenek? Én úgy vettem észre, hogy ezek nélkül is működik.Azt hiszem már sejtem, gondolom ez csak az olvashatóságot szolgálja, más eseteknél is teszteltem, nem láttam különbséget, hogy most használok-e kapcsos zárójeleket, vagy sem.
Teljes kód:
<?php
$startYear=2006;
$thisYear = date('Y');
if ($startYear == $thisYear) {
echo $startYear;
}else{
echo " {$startYear}–{$thisYear} ";
}
?>[ Szerkesztve ]
-
-
Lacces
őstag
válasz Peter Kiss #8037 üzenetére
Aham, nagyjából értem, ez valahogy úgy akar működni, mint a C/C++-ban vagy C#/Java, kiíratásnál egyfajta argumentum, paramétert írok bele a kiíró függvényben.
A másik kérdésem, egyébként pont később lett volna, de akkor most felteszem, más esetleg, nagyon gyerekes leírást, magyarázatot tudsz adni a Variables Variable-re?
Nagyon nehezen tudom néha felfogni
Az első linken lévő, az okés, mert egyszerű példa. De már itt, belegabalyodók:
echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";Vagyis ekkor az $object->getName() függvény által visszad egy értéket, pl. alma
és akkor {${alma}} lesz a háttérben, és megkeres egy $alma nevű változót, és annak a tartalmát írja ki?Nekem ez nagyon új ez a felfogás.
-
DeltaPower
őstag
Lényegében az történik, amit írtál, így működnek a "változó változók".
$valami='akarmi';
$elso='valami';
// ez a két sor ugyanazt jelenti
echo $valami; // 'valami' nevű változót írja ki
echo ${$elso}; // a $elso tartalmával megegyező nevű változót írja kiA { }-ek el is hagyhatók, csak abban az esetben szükséges, ha enélkül nem egyértelmű a megadás (pl. $$tomb[0] esetén, nem mindegy, hogy a $$tomb nevű tömb 0-ik eleme, vagy a $tomb[0] tartalmával egyező nevű változó)
Az általad hozott példa, a {${alma}} viszont nem biztos, hogy működik, mivel az 'alma' konstans tartalmának megfelelő nevű változót jelenti, konstans használata pedig nem tudom, hogy megengedett-e ilyen kifejezésben.
[ Szerkesztve ]
"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
-
Lacces
őstag
válasz DeltaPower #8039 üzenetére
Hm... Nekem nagyon gyanús, hogy valójában a mutatókat próbálja visszahozni a C/C++ nyelvből.
Köszönöm a segítséget!
-
Sk8erPeter
nagyúr
Szerintem meg itt köze nincs a mutatókhoz a dolognak (hogy azt akarná "visszahozni").
Mindenesetre én úgy gondolom, hogy ezzel csak olyan szinten érdemes foglalkozni, hogy tudd, ilyen szintaktika is van, értsd is meg, ha valakinek a kódjában ezt látod, de Te lehetőleg kerüld el messzire. Tök feleslegesen teszi nehezen olvashatóvá a kódodat, nem tudok olyan esetről, ahol ezt ne lehetne kiváltani másik, szebb, átláthatóbb módszerrel. Pl. egy stringnél tök felesleges beleerőszakolni ilyen módon egy összetettebb változót, akkor már inkább válassz alternatívákat.
Pl. konkatenáld:
vegyük az általad említett példát átalakítva:
eredeti:
echo " {$startYear}–{$thisYear} ";
helyette szebb:
echo $startYear . '-' . $thisYear . ' ';
Nem kell szenvedni vele, hol is ér véget a kapcsos zárójel, plusz egy fejlesztőkörnyezetben jobban láthatóan ki van emelve a változónév (persze, felismeri az IDE, ezt is kiemeli, de amennyiben egyedi módon nem állítottad át valami nagyon elütő színre, akkor a stringen belül, a string default színével csupán félkövéríti, vagy hasonló, tehát akkor is nehezebben észrevehető egy ilyen változónév), ez is segíti az átláthatóságot.
A printf, sprintf-hez hasonló behelyettesítős módszerek is ezerszer szebbek ennél a kapcsos zárójeles bohóckodásnál.[ Szerkesztve ]
Sk8erPeter
-
-
Sk8erPeter
nagyúr
válasz Peter Kiss #8042 üzenetére
Ez minek a kódjából származik? Gondolom valami nagyobb keretrendszerszerűség. Persze ezt is szét lehetne bontani, hogy ne kelljen bogozgatni későbbi kódmódosításkor, de biztos az rengeteget gyorsít a kódon, ha egy sorba tömörítünk mindent.
Sk8erPeter
-
válasz Sk8erPeter #8043 üzenetére
Saját ORM.
-
Sk8erPeter
nagyúr
válasz Peter Kiss #8044 üzenetére
Hát ez kellemetlen.
Ettől függetlenül nem értem, minek egy sorba nyomorítani az egészet. De félre ne értsd, nem fikázni akarom a kódolási szokásaidat. Ízlések és pofonok, csak nekem a hajam kettéáll a bogozandó kódoktól. (főleg, hogy feleslegesnek tartom a túlzott rövidítéseket)Sk8erPeter
-
válasz Sk8erPeter #8045 üzenetére
Ez az egy ilyen kuriózum van benne, ha jól emlékszem.
-
Lacces
őstag
válasz Sk8erPeter #8041 üzenetére
Aham, rendben köszönöm! és neked is Athlon64+ - amúgy nekem pont ez a kedvenc proci típusom
Főleg, hogy jobb is a konkatenálás, azt a szebb példát, annak külön örülök
Így van egy Java feelingje az egésznek És az tényleg, szebb, olvashatóbb is.Mindenkinek: Értelmezéshez kérnék segítséget, még
$expected = array('name', ' email' , 'comments') ;
<?php
foreach ($_POST as $key => $value) {
// assign to temporary variable and strip whitespace if not an array
$temp = is_array($value) ? $value : trim($value);
// if empty and required, add to $missing array
if (empty($temp) && in_array($key, $required)) {
$missing[] = $key;
} elseif (in_array($key, $expected)) {
// otherwise, assign to a variable of the same name as $key
${$key} = $temp;
}
}
Az elseif ágban lévő utasításra gondolok.
${$key} = $temp;
Én ezt az utasítást úgy értelmezem, hogy az expected tömbben található értékek alapján, létrehoz változókat. (Néztem szótárban az assign szó jelentéseit, de max a hozzárendelés, na de mihez. Még nem találkoztam ilyen sokszor angol nyelvű könyvben ezzel a szóval)
A következőket: $name, $email és $comments - amelyeknek értéke is ad.
Ha létrehozza is őket, akkor ezek sima egyszerű változók, vagy globális változók is? $_POST['name']-re gondolok konkrétan (az assign to miatt erre is gondolok már...)[ Szerkesztve ]
-
Sk8erPeter
nagyúr
"Főleg, hogy jobb is a konkatenálás, azt a szebb példát, annak külön örülök
Így van egy Java feelingje az egésznek"
Attól lesz Java feelingje, hogy van benne egy konkatenálás? Hmm.Ja, assign - hozzárendeli egy $temp, vagyis átmeneti változóhoz a $_POST tömb aktuális értékét. Itt a foreach ciklusban ugyanis bejár egy tömböt, vizsgálja a tömb értékeit. De gondolom ezt nem kell magyaráznom, ha csináltál már ilyet Java-ban.
"az expected tömbben található értékek alapján, létrehoz változókat"
Na, akkor elölről. Az első if-nél azt vizsgálja, a $_POST aktuális tömbindexének értéke ($temp-ben van most) nem üres-e és szerepel-e a $required tömbben. Ha a két feltétel teljesül, akkor valamit mondjuk nem töltöttél ki az űrlapon, berakhatjuk a $missing tömbbe, jelezvén, hogy ez a kulcs hiányzik mondjuk, pampogunk a júzernek, hogy töltse már ki legyen szíves az adott mezőt.
Egyébként ha a $temp nem üres, az adott kulcs az $expected tömbben van, (pl. kitöltötte az elvárt mezőt), akkor hozzuk létre az azonos nevű változót (pl. $name)."Ha létrehozza is őket, akkor ezek sima egyszerű változók"
Azok milyenek? Gondolom azt a szót keresed, hogy "lokális" változó.
Attól függ. Ha ez az egész pl. egy függvényben szerepel, akkor csupán lokális scope-ja lesz, a függvényen belül. De lehet akár globális is, ha mondjuk ez egy fájlban "kívül" szerepel ez az egész Onnantól a függvények számára a global kulcsszóval ezek a változók elérhetők, amennyiben nem szüntetted meg azóta pl. unsettel.Sk8erPeter
-
DeltaPower
őstag
Ez a kód arra emlékeztet, amikor register_globals függő oldalaknál kellett minél gyorsabban megoldani, hogy kikapcsolt register_globals mellett is működjenek...
"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser
-
PazsitZ
addikt
Erről eszembe jutott, hogy nekem volt régen ilyen próbálkozásom az sql result gyors ki-extract-olására függvényből global változóként. Persze nem szép. Ma már nem is használom/használnék ilyet, mármint global változót.
(#8038) Lacces: Ennek nincs köze a mutatókhoz. A miértre a magyarázat annyi, hogy ez egy script nyelv.
$fetchResult = mysql_fetch_assoc($localpSQLResult);
if ($fetchResult){
foreach($fetchResult as $var_name => $var_value)
{
$var_name = "q_$var_name";
global $$var_name;
$localGlobalVarsArr[] = $var_name;
$$var_name = $var_value;
}
return true;
}
Így global változóként létrehoztam az sql eredményét egy q_ (query) prefix-es változóként.
De a neveket le is tároltam, hogy egy fajta garbage collect-ként üríteni tudjam őket.
Fetch esetén ugye mindig felülíródott a változó tartalma, következő querynél ez a gc opció default lefutott, de szükség esetén letiltható volt.(#8041) Sk8erPeter : Alapvetően szerintem nem ördögtől való dolog ez, persze azért nem kell túlzásba vinni.
Én pl. Factory pattern esetén szoktam használni.Bár itt nem változóként, használod fel a változóban tárolt sztringet, hanem osztálynévként, de a logika hasonló.
Definiálsz sztring konstans értéket a lehetséges osztályok neveivel, majd azáltal pédányosítod a megfelelő osztályt./**
*
* @param const $SQLLayerType SQLLayer constant
* @param DBObj $db
*/
public function __construct($SQLLayerType=null, DBObj $db=null) {
$list = array(SQLLayer::SELECT, SQLLayer::INSERT, SQLLayer::UPDATE, SQLLayer::REPLACE, SQLLayer::DELETE);
if(is_null($SQLLayerType) || !in_array($SQLLayerType, $list)){
$this->SQLLayerType = SQLLayer::SELECT;
}
else $this->SQLLayerType = $SQLLayerType;
$Class = "SQL" . ucfirst($this->SQLLayerType);
$this->SQLObj = new $Class($this->SQLLayerType, $db);
if(!is_null($db)) $this->SQLObj->table($db->getTableName());
}[ Szerkesztve ]
- http://pazsitz.hu -
Új hozzászólás Aktív témák
- Milyen autót vegyek?
- Kerékpárosok, bringások ide!
- A fociról könnyedén, egy baráti társaságban
- Genshin Impact (PC, PS4, Android, iOS)
- Microsoft Excel topic
- PlayerUnknown’s Battlegrounds
- Autós topik
- Politikai mémek
- Autós topik látogatók beszélgetős, offolós topikja
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- További aktív témák...