- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Vezetékes FEJhallgatók
- Hobby elektronika
- Házimozi belépő szinten
- Sony MILC fényképezőgépcsalád
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Soundbar, soundplate, hangprojektor
- HiMedia lejátszók
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Ne add fel, mert ha feladod, abból nem tanulsz.
Igazából gyorsan, fejből írtam a kódot, szóval természetesen tartalmazhat hibát, szóval ez inkább szemléltetés akart lenni.
De jó lenne tudni, hogy nálad mi volt a konkrét hiba oka, ezért próbáld meg pl. ilyen módon lekezelni a hibát: [link], meg itt is vannak jó példák: [link].
Aztán írd meg, konkrétan milyen hibaüzenetet írt!
Már ha az .error() függvénybe belelép egyáltalán. -
Jim-Y
veterán
válasz
Sk8erPeter #9066 üzenetére
sajnos ez sem működik, lehet egyáltalán úgy tesztelni, hogy a php a saját gépemen van?
jqxhr = $.getJSON(processing_file, function (jsonObj) {
if(jsonObj.status == 'success'){
$("#goodsResult").text(jsonObj.data.entity.countrycode);
alert("succesbe jut");
}
else{
$("#goodsResult").text(jsonObj.data.msg);
alert("msg");
}
}).error(function () {
alert("There was an error while processing your request!");
});dob egy errort :/ processing_file-t megadtam már relatívan és abszolútan is..:/ vagy a php filehoz kéne valami mint jquery-hez? tudtommal nem, de már semmiben sem vagyok biztos...
De szerintem akkor ezt hagyom, és felteszek egy adatbázist, inkább azzal szívjak, az legalább előre visz...
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #9066 üzenetére
Most látom, hogy itt én is simán ("#saleBtn")-t írtam az elején, helyesen a dollárjellel kiegészítve: $("#saleBtn").
-
válasz
Tele von Zsinór #9092 üzenetére
[link] ez alapján elvileg működnie kéne, de mégsem.
-
Sk8erPeter
nagyúr
Ahogy elnézem, az oldaladon van egy ilyen:
<input type="submit" name="fb" value="Facebook">Innen várnád, hogy beállítódjon a $_POST['fb'], de mivel történik egy átirányítás a Facebookra, és ott történik az authentikáció, ezt a $_POST értéket legfeljebb a Fácsé kapná meg az átirányítás során, a Te oldaladon a visszairányításnál már gondolom ez nincs beállítva. Szóval nem a $_POST['fb'] meglétét kellene vizsgálni. Mondjuk nem próbáltam még PHP-vel a FB-os authentikációt, de első ránézésre így lenne logikus.
-
válasz
Tele von Zsinór #9092 üzenetére
A koncepció, hogy 2 féle képpen tudsz regisztálni, facebookal vagy simán. Onnan, ellenőrzés
-
Tele von Zsinór
őstag
Ez a $_POST["fb"] honnan jön? A Server-Side Authentication doksi szerint code paraméterrel jönnek az adatok.
-
Szét spammellek! Na igen. Az a gond, hogy átirányít majd vissza és semmi. Azt észrevettem, hogy más code -dal lök vissza mint amit kaptam.
Tessék a kód:
<?php
$fb = new FacebookConnect();
if(!empty($_POST["fb"])) {
$user = $fb->get_user();
print_r($user);
}
?>
<html>
<head>
<title>Regisztráció</title>
</head>
<body>
...Ez a lényeg, a body után pedig befejezem a nézetet. Semmi komolyság egyenlőre, csak tesztelgetés
-
modder
aktív tag
akkor azt a kódot is feltölthetnéd, ahonnan meghívod a get_user() függvényed, mivel a regisztráció tökéletesen megy nekem (jajj, tudod az e-mail címem
) . Újra a facebookra kattintva már nem kéri, hogy engedélyezzem az alkalmazást, úgyhogy gyanítom valami a controlleredben van elszúrva.
-
válasz
Sk8erPeter #9082 üzenetére
Gyári példa: [link]
Én megy csináltam EZ alapján egy osztályt ami egy konstruktorból áll, gyakorlatilag példányosítom az sdk -t a saját id és secret párosommal, majd van még egy függvény ami elvégzi az ellenőrzést, ha be vagyok logolva akkor visszatolja az adataim, ha nem akkor meg átrak a login oldalra. Na most, ha lefut a gyári script, lesz session és működik az "én" megoldásom, ha nem akkor csak dobál egyfolytában a loginra, amit ugye először látok mert belépek. Remélem érthető volt
. A kódom meg ugyan az mint a gyári példa, csak ketté szedtem.
-
Sziasztok!
Valakinek van valami tapasztalata az új Facebook PHP SDK -val? (3.1.1), lényegében le akarom kérdezni regisztrációhoz a felhasználó adatait, de nem, 0 userid -t dob vissza. A gyári példa működik, de ha külön osztályba teszem nem. Nem vágom. Amit észrevettem ,hogy redirect után (fb bejelentkezás) más kóddal tolja vissza a drága a cuccot. Na most nekem osztály kell, több helyre.
B.,
U.i.: 3 órája guglizok.
-
modder
aktív tag
válasz
Speeedfire #9077 üzenetére
Jól van, igazatok van. akkor MINDENT félreértettem %%%ÖTÖT
-
Speeedfire
félisten
válasz
Sk8erPeter #9078 üzenetére
Na, ez a 444NÉGY... áhhh.
Nekem eddig bejött, igaz sosem leszek pro belőle.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #9077 üzenetére
DE AKKOR IS JQUERY RULEZ!!!!!!!!44NÉGYNÉGYNÉGY
-
modder
aktív tag
válasz
Sk8erPeter #9070 üzenetére
Jól van
én csak azon kaptam fel a vizet hirtelen, hogy nem értettem, miért kell egy egyszerű kérdésből jQuery hypeot generálni. De valszeg nem kellett volna beleszólnom, főleg, hogy az illetékes észre sem vette
-
Speeedfire
félisten
válasz
Speeedfire #9074 üzenetére
Ja, ezért index.
defaultAction property
public string $defaultAction;
the name of the default action. Defaults to 'index'. [link] -
Lacces
őstag
Yii segítséget kérnék
Default Controller beállítása a configban
array(
...
'defaultController'=>'post',
...Szóval az oks, hogy a default érték az site. Tiszta sor, nézem is a doksiját, csak nekem nem egyértelmű (a tutorial alapján is túrom a kódot), hogy most azt a post-ot honnan jött neki? Én próbáltam a sajátomat valahogy beállítani, de nem megy...néztem is a controllert, de nem... szóval nem értem, hogy mi alapján hívja meg a postcontoller.php fájlban lévő ActionIndex metódust.
Jim-Y Nekem sem tűnt fel. Bár ma én is elég feszült voltam...
-
Jim-Y
veterán
válasz
Sk8erPeter #9070 üzenetére
nem vettem magamra egyébként , nem szóltok fel sem tűnik
-
modder
aktív tag
válasz
Sk8erPeter #9066 üzenetére
Csak azért tettem ilyen éles megjegyzést, mert nem tartom helyénvalónak, ha valaki egy kezdő kérdéssel jön, még fel is mutat valami elvben működő kódot, akkor egyből le kéne hurrogni azért, mert nem úgy csinálta, ahogy valaki más elképzelte.
Csinálja úgy ahogy tudja, ahogy működik, nem árt, ha így is meg tudja valósítani amit akar. Majd idővel ahogy fejlődik, rájön, hogy másképpen egyszerűbb, jobb.
-
Sk8erPeter
nagyúr
Persze, így érthető, remélem azért nem tűnt nagyon sértőnek, amit írtam, ha igen, akkor bocs.
Mi is átéltük, milyen az, amikor fogalmunk sincs, mi fán terem a jQuery.
Szóval kérdezz nyugodtan, ha felmerül valami, van amúgy külön topicja is: jQuery kérdések. -
Jim-Y
veterán
válasz
Sk8erPeter #9066 üzenetére
Köszi, este kipróbálom, amúgy igen most tanulom, és az elején döcögősen megy, de nem baj, lesz ez még jobb is -remélem-
-
Sk8erPeter
nagyúr
("#saleBtn").click(function(){
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var jsonobj=new Function("return "+xmlhttp.responseText)();
$("#goodsResult").text(jsonobj.entity.countrycode);
}
}
xmlhttp.open("GET","../SERVER/my_extension.php?query=cc",true);
xmlhttp.send();
});Ez jQuery-vel kifejezve (ha már azt használsz), kicsit kibővítve, nagyon egyszerű példával élve:
("#saleBtn").click(function () {
var
processing_file = "../SERVER/my_extension.php?query=cc",
jqxhr = $.getJSON(processing_file, function (jsonObj) {
if(jsonObj.status == 'success'){
$("#goodsResult").text(jsonObj.data.entity.countrycode);
}
else{
$("#goodsResult").text(jsonObj.data.msg);
}
}).error(function () {
alert("There was an error while processing your request!");
})
});A PHP-fájlban (lehetne másképp is, rengeteg módszer létezik rá, ez csak egy gyorspélda):
<?php
$query = isset($_GET["query"]) ? $_GET["query"] : '';
$jsonStuff['status'] = FALSE;
$jsonStuff['data'] = array('msg'=>'');
if ($query == "cc") {
$jsonStuff['data'] = file_get_contents('test.txt');
$jsonStuff['msg'] = 'Success';
$jsonStuff['status'] = TRUE;
}
else{
$jsonStuff['data']['msg'] = "no data received";
}
echo json_encode($jsonStuff);(Megj.: a ?> lezárást szándékosan nem tettem ki, nem is kötelező, sőt, ha nem várunk pl. HTML-outputot utána, inkább nem is érdemes.)
===
(#9065) modder : néha meg tudsz lepni a reakcióiddal.
Senki nem mondta, hogy f@szfej, de ha az ember elkezdi használni a jQuery-t, a használható, akár kezdőknek szóló tutorialok között biztos, hogy megemlítik az AJAX-os függvényeket. Az XMLHttpRequest-es szarakodással meg az ember igazából ezerszer többet szív és gépel feleslegesen, mintha egyszer elolvasná a doksik között az AJAX-ra vonatkozó részt (lásd jQuery a cross-browser dolgokat eleve lekezeli). -
modder
aktív tag
válasz
Sk8erPeter #9063 üzenetére
Miért nem mondjátok ki egyenesen, hogy ő egy f*szfej, mert plain javascriptet használt olyan dologhoz, amit egyébként éppen most tanul
-
Lacces
őstag
válasz
Sk8erPeter #9063 üzenetére
lehet csak most tanulja az egészet... a bemásolt kódja nagyon ismerős, talán a w3schools
-
Sk8erPeter
nagyúr
válasz
Tele von Zsinór #9062 üzenetére
Igen, én sem értem, minek keverni a szezont a fazonnal...
Ez kb. olyan, mintha egy jQuery-kódot valaki teleszórna document.getElementById()-kkel... -
modder
aktív tag
-
Jim-Y
veterán
Na közben kiderült, hogy odáig el sem jut a program,
xmlhttp.open("GET","../SERVER/my_extension.php?query=cc",true);
xmlhttp.send();ha php-nak küldön el a kérést, akkor ebbe a ciklusba már bele sem megy:
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var jsonobj=new Function("return "+xmlhttp.responseText)();
$("#goodsResult").text(jsonobj.entity.countrycode);
}ellenben ha így küldöm el a requestet:
xmlhttp.open("GET","../SERVER/akarmi.json",true);
xmlhttp.send();akkor pedig jó. Ötlet, hogy ez miért lehet?
-
Jim-Y
veterán
Sziasztok, van egy javascript fájlom ami így néz ki:
("#saleBtn").click(function(){
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var jsonobj=new Function("return "+xmlhttp.responseText)();
$("#goodsResult").text(jsonobj.entity.countrycode);
}
}
xmlhttp.open("GET","../SERVER/my_extension.php?query=cc",true);
xmlhttp.send();
});és egy hozzá tartozó php:
<?php
$query=$_GET["query"];
$json_file = fopen("test.txt","r");
$json_response="no data received";
if ($query == "cc") {
echo $json_file;
} else {
echo $json_response;
}
?>A probléma, hogy nem működik:/ Ha ugyanennél a kódnál
xmlhttp.open("GET","../SERVER/my_extension.php?query=cc",true); helyére ezt teszem
xmlhttp.open("GET","../SERVER/test.txt",true);
akkor jól működik, tehát a php kódban lehet valami gond:/ pls help -
Lacces
őstag
válasz
PazsitZ #9052 üzenetére
aham, köszönöm.
Meg lenne pár kérdésem, ha lehet
Van a views mappa, és igazából így a tutorial alapján nem nagyon értem, hogy miért hasznos, szét bontani a megjelenítést a view.php-ba és a _view.php-ba?
Igen, a felhasználóbázisa tényleg szépen nő! Ez a kigenerált doksi még szokni kell
Speeedfire A doksija jó, így mindig átmegyek, rajta
. Csak én Tutorialból eddig jobban tudtam tanulni. De ez a tutorial egy picit furcsa, már mint az angol és a logikája, aztán láttam, hogy a szerző orosz
így már érthető volt. Eddig még nem találkoztam ezzel az "angol logikával", tanultam én már nem egy angol nyelvű könyvből, csak ez fura, bele kell szoknom
Majd akkor belerázodóm hétvégére, amit én akarok, azt most egy mini mvc-ben összetudnám rakni, de itt Yii-ben fhúúú
még az első lépéseknél csak fogom a fejem
jó éjt!
-
-
Lacces
őstag
Lehet, nem a Yii-vel kellett volna először kezdenem
még csak a felénél tartok a blog tutorialnak de már 7 órát ülök előtte
Lenne kérdésem, hogy ez esetben, a params[]-ban lévő commentNeedApproval, az mi? azt honnan kapja? Ezt a rendszer definiálja, vagy nekem kell valahol?
(Yii::app()->params['commentNeedApproval']) -
Sk8erPeter
nagyúr
Készítettem neked egy megoldást:
<?php
$evil = "function lp0(){echo base64_decode('UmVhZCB0aGF0IG1vdGhlcmZ1Y2tpbmcgbWFudWFsISEh');}lp0();";
eval($evil);Ha kíváncsi vagy a kimenetre: http://ideone.com/dfDiG.
-
Speeedfire
félisten
válasz
Sk8erPeter #9048 üzenetére
Ja, nem vagyok toppon ezek szerint.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #9046 üzenetére
Fricska akart lenni a sok gyökér kérdésre reagálva.
Bővebben: sokan úgy kérdeznek, hogy óvodás szintű, degeneráltak által is érthető dokumentációk/tutorialok/e-bookok/... állnak rendelkezésre arról, hogyan kell megoldani egy adott problémát, de sokan ezt lusták elolvasni/kipróbálni/felfogni, és úgy gondolják, jobb, ha inkább f@szságokat kérdeznek a fórumokon, majd valaki megmondja a megoldást attól kezdve, hogy hogyan kapcsolja be a gépet, nem zavarja őket, ha kicsit hülyét csinálnak magukból, belefér.
Az ilyenektől eléggé felhígul egy szakmai fórum, elviszi a témaköröket a "buta kérdések topicja" irányba.
-
Speeedfire
félisten
-
Sziasztok!
Ahhoz, hogy az én oldalam is így nézzen ki Google -ban, kell valamit külön trükközni, vagy a menüpontok alapján kreálja?
-
modder
aktív tag
Sziasztok!
Az lenne a kérdésem, hogy miért nem működik, pedig már próbáltam mindent
-
Tele von Zsinór
őstag
Lehetne, hogy ezt masutt?
-
PazsitZ
addikt
válasz
Sk8erPeter #9036 üzenetére
Ubi hibái főként gondolom abból adódnak, hogy sok unstable debian package-et is használnak.
Meg sok third-party package is van hozzá. -
Speeedfire
félisten
válasz
Peter Kiss #9039 üzenetére
"Ubuntu arra való, hogy meggyűlöld a Linux-ot."
Arról nem is beszélve, hogy valaki megtanulja az ubuntut, aztán a linuxot.
Sk8erPeter: Elég sokat szívtam vele. Jött a frissítés, aztán összeomlott folyamatosan rendszer, elállítódtak a config fájlok...meguntam egy idő után. -
Peter Kiss
őstag
válasz
Sk8erPeter #9038 üzenetére
Értelem szerűen Debianra gondolok. Értem én, hogy szeretnék az Ubuntu-ból a lehető legtöbbet kihozni, de néha a kevesebb több. Ubuntu arra való, hogy meggyűlöld a Linux-ot.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #9037 üzenetére
És ki/mi határozza meg, hogy hol a "helye"?
Szerk.:
Amúgy attól az új bal oldalt szereplő Ubi-menütől én őszintén szólva kimentem a fazonomból. Valahogy nagyon zavart, persze mondjuk az is hozzátartozik, hogy egy régi fos gépre telepítettem melóhelyen, mert azt gondoltam, az legalább gyorsan fut majd rajta - hát nem futott gyorsan.A menü megjelenésére meg külön várni kellett...
-
Peter Kiss
őstag
válasz
Sk8erPeter #9036 üzenetére
Nekem ott telt be a pohár, hogy gyakorlatilag minden konfigurációs beállítást máshová raknak, mint ahol a helye van, illetve amikor egy adott problémára találok 20 különböző megoldást, de nekem a 21. jön be, az fárasztó.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #9034 üzenetére
Nem is mondtam egy szóval sem, hogy nincsenek hibái. Viszont biztos, hogy a Yii-t össze lehet hozni Ubuntun is, az, hogy Laccesnek nem sikerült, nem azt jelenti, hogy Ubuntun még ezt sem lehet működésbe hozni.
Webfejlesztgettem Ubuntu alatt is, érdekes módon nekem nem volt olyan problémám, hogy bugok miatt képtelen voltam használni a terminált...
Nyilván rengeteg bugja van, de nem pont a Yii telepítése az, ami kiveri a biztosítékot.
Félre ne értsd, nem tisztem védeni az Ubuntut, jelenleg nem is használom (egyszóval: kb. leszarom), de mondjuk az is igaz, hogy a Linux disztrók közül a "felhasználóbarátsága" miatt az egyik legnépszerűbb, nyilván nagyon sokan használják, így gondolom nem gyengén derülnek ki hibái (nem is beszélve az egységsugarú júzerekről
). Aztán lehet, hogy fostenger, nem tudom, konkrét, alátámasztott szakmai véleményt erről még nem olvastam, pedig jobb olyat olvasni, mint azt, hogy "az egy szar, mert a Pisti is megmondta".
===
(#9035) Athlon64+ : ennél jobban alátámasztott szakmai véleményt még soha nem olvastam.
-
Peter Kiss
őstag
válasz
Sk8erPeter #9033 üzenetére
Az Ubuntu egy nagy rakás hulladék.
-
Speeedfire
félisten
válasz
Sk8erPeter #9033 üzenetére
A sok bugreport biztos nem véletlen, meg hogy sok ubuntu alapú disztró váltott inkább debianra.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #9032 üzenetére
Micsoda megoldás.
Abból, hogy valakinek egyedi hibák miatt nem sikerült megcsinálnia valamit Ubuntun, az az egyenes ágú következtetés, hogy "ne használj Ubuntut", BIZTOS csakis az Ubuntu és a fejlesztői lehetnek a hibásak!...
-
Lacces
őstag
válasz
Speeedfire #9030 üzenetére
Igen, ezt már próbáltam... nem a Yiic a hibás, elnézést ezért, meg hogy ideg voltam
.
Valami nem kóser az Ubival, már volt is hogy az ubi fórumba is furcsán néztek az ubimrasenkinek sem volt már sok ötlete...
Windows alatt egyből összejött...
Pedig terminált nagyon régóta használok. itt van valami a rendszeremmel...Köszi mindent, mindenkinkek!
-
Speeedfire
félisten
Ne 2x kattints rá. Gondolom linux alatt lehetsz.
Linux alatt nyiss egy terminált, lépj be oda ahol a framework mappa van és add ki a parancsot. yiic webapp valami
Win alatt is hasonló, csak ott parancssort kell nyitni. Win alatt lehet szívás, ha a php környezeti változó nincs deklarálva. -
Lacces
őstag
válasz
Speeedfire #9027 üzenetére
Hát most így vagyok: Yiic-re kattintok kétszer, terminálban futtasa de semmi...
Most google, de engem zavar, hogy olyan triviális mindenkinek ez a yiicA blogot köszi, de itt sem jött be a parancs
-
Sk8erPeter
nagyúr
Sehol nem írtam PHP CPL-ről...
A többire meg annyit javasolnék, hogy mielőtt másoktól várnád, hogy szinte vezessék az egeredet, hova kattints, és pötyögnének a billentyűzeteden, próbálj alaposan utánaolvasni, biztos hatmillió tutorialt találsz róla. Ha meg olyan alapvető kérdések merülnek fel, hogy mi az a command line vagy terminal, akkor előbb annak kellene utánanézni, és csak utána foglalkozni a komolyabbakkal. -
Speeedfire
félisten
Hogy csinálod, hogy felugrik a terminál majd eltűnik? A parancs után?
Amúgy érdemes elolvasni ezt is. Az alapok benne vannak, de töltsd le a hivatalos oldalról az api-t és a guide-ot is. Nagyon sok hasznos dolog van benne. Ha meg betudod szerezni még a cookbook-ot is, akkor meg már...
-
Lacces
őstag
válasz
PazsitZ #9025 üzenetére
sk8peter, köszi. Nekem az a command line vagy mi a szösz, az vadiúj. Keresek hozzá valami magyarázatot, hogy az mi, fogalmam sincs, azért a pánik
PHP terminál, PHP CPL meg ezek is tök újak
a magyar fórumot kösziPazsitZ Öhm, nekem ez vadi új, ezt a yiic-et hogyan kell futattni? Nekem csak felugrik a terminál és bezárodik. a php fájlban sem láttok semmilyen függvényt.
-
PazsitZ
addikt
A yii-t ahova felraktad ott van a framework könyvtárában van egy yiic futtatható fájl, windows alatt yiiic.bat
Ezt hívod meg, első paraméterként megadva, hogy webapp webes alkalmazást akarsz, második paraméterként pedig, hogy hova szeretnéd kigenerálni, az alap webapp könyvtárat.
Szóval:
/framework_utvonala/yii/framework/yiic webapp /ide_rakd_a_web_applicationt -
Sk8erPeter
nagyúr
Veled jól járnak a könyvesboltok.
Nem tudom, mit nem értesz a Server Faulton fent lévő válaszon.
Mondjuk nem ártana, ha utánaolvasgatnál, hogyan csináld, mielőtt pánikolsz (ez nagy általánosságban is igaz), pl. nagyon gyors keresés után itt is megvan az, amit írtál: [link]. Vagy még jobb: [link].
Ott van halál egyértelműen az is, hogy mitől működik (többek közt):
"Tip: In order to use the yiic tool as shown above, the CLI PHP program must be
on the command search path. If not, the following command may be used instead:
path/to/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog"
Ebből egyértelmű, hogy a PHP terminálban használható változatának elérési útja alatt kell végrehajtani azt, amit írtál, vagy környezeti változók közé kell tenni a PHP CLI elérési útját, ÉS még ezenkívül nyilván léteznie is kell a /wwwroot/yii/framework/yiic.php elérési út alatt a megfelelő fájlnak... (remélem nem kell hozzátennem, hogy ez a wwwroot könyvtár nem a Szentírás, attól függ ez az elérési út is, hogy hova rakod...)
Egyébként ha fogalmad sincs, mit csinálj, miért nem olvasgatsz magyar fórumokat? Ott volt a link hozzá a hivatalos honlapon:
http://www.yiiframework.com/forum/index.php/forum/33-hungarian/ -
Lacces
őstag
válasz
Sk8erPeter #9022 üzenetére
Na, ez az, pontosan ezt nem értem
de lényegtelen most már, az a pecl pedig hibás, mert hibát dob ki a végén...
Gondoltam kipróbálom a Tutorialt ami odafent van, de ajj ebből látszik, hogy könyv vétel lesz:
Open a command window and execute the following command:
% /wwwroot/yii/framework/yiic webapp /wwwroot/blog
Create a Web application under '/wwwroot/blog'? [Yes|No]y
command windows alatt mire gondol? Mert ez így terminálban nem működik -
Lacces
őstag
Sziasztok!
No, most kezdek neki a Yii-nek.
Lenne egy kérdésem, hogy a PDO PostgreSQL extension, hogyan lehet linuxra felrakni? Találtam neten valami pecl install... féle parancs, de az nem jó. Vagy ez csak akkor működik, hogy ha van fent PostgreSQL adatbázis is? (most csak mysql van)
Lehet, akkor ez már nem is kell nekem? -
válasz
Sk8erPeter #9018 üzenetére
És akkor most tárgyaljuk ki a hüvelygombát is...
na jó csak vicceltem. Amúgy bocsi, nem flame elindítás gyanánt tettem fel a kérdésem. Csak kíváncsiságból. Nekem azt tanították, hogy minden kivételre figyelni kell, de arra nem térek ki, hogy mi az ami a számunkra az az esemény ami előfordulhat.
(#9013) Speeedfire: Hát igen, rossz declaráció okozhat ilyet
-
modder
aktív tag
válasz
PazsitZ #9017 üzenetére
Ha látnátok a fától az erdőt, akkor észrevennétek, hogy Sk8erPeter teljesítménybeli kérdésére próbáltam választ adni az utolsó bekezdésben, csak ehhez elő kellett venni a régi nyelv alap problémáit a kivételekkel, hogy össze lehessen hasonlítani.
De igazad van, vagy várjál csak, ja nincs! -
Sk8erPeter
nagyúr
Na ja. Asszem így már nagyjából összeért az álláspontunk. Csak kár, hogy eddig is PHP-ról beszéltünk (nem C-ről és nem is C++-ról), így egy kis időt megspórolhattunk volna.
Miután legalább egy órát elb@sztam azzal, hogy a kivétel vs. nem kivétel témában olvassak, olyan remek újdonságra jutottam, hogy nincs jó megoldás.
Mintha ezt eddig nem tudtuk volna.
A lényeg: rengetegen amellett állnak ki, hogy a kivételeket tényleg csak kivételes esetekben érdemes dobálni (egyet muszáj idéznem: "Exceptions should be a truly rare thing, UserHasDiedAtKeyboard type situations."
), sokan mások meg azt állítják, hogy ez totálisan attól függ, hogy mennyire a teljesítményt helyezed a középpontba pl. a gyorsabb átláthatóság előnyeivel szemben. Kábé ugyanott tartok, mint ahonnan mi is elindultunk, annyi különbséggel, hogy csomó időm ráment, és hogy legalább megtudtam, hogy UNIX-nál van olyan hiba, hogy Printer on Fire.
Mivel én az eddigi kivételdobálásoknál PHP esetén semmiféle észrevehető teljesítménybeli különbséggel nem találkoztam, asszem nem fogom átírni a kódjaimat úgy, hogy hibatömbbel térjek vissza, és a kódolási szokásaimat sem fogom rossznak tekinteni a vitánk miatt.
Egy C++-alkalmazásnál már nagyon is megfontolandó az, amiről beszéltünk. De természetesen az már másik fórumtémába tartozik.
Egyébként magas szintű nyelvek (pl. C#) előszeretettel alkalmaznak kivételeket különböző esetekre, nem véletlen, hogy számtalan előre definiált exception class van, amiket akár "helyben", egy rövidebb, beágyazott try-catch blokkban is el lehet kapni (ugyanez igaz általunk definiált exceptionökre is), így meg feltételezem, kisebb teljesítményvesztéssel kell számolni.Szerk.:
A TÉNYLEGES, gyakorlati teljesítményveszteségről viszont normális áttekintő cikket, méréseket továbbra sem találtam, csak a szájkoptatást, hogy csúnya nagy költségei vannak, pedig tényleg nagyon érdekelne, egy alkalmazásnál a két eset összehasonlításakor miféle teljesítménykülönbségekkel kell számolni. -
modder
aktív tag
válasz
Speeedfire #9015 üzenetére
name és value attributumát megkapod php-ban
-
Speeedfire
félisten
Valahogy le lehet kérdezni egy gomb adatait?
2 submit gombom van, ha az egyikre kattint akkor feltölti az adatokat, ha a másikra akkor pedig tovább lép egy másik oldalra. -
modder
aktív tag
válasz
Sk8erPeter #9009 üzenetére
Nem akartam amellett kardoskodni, hogy kb soha nem szabad Exceptionöket használni, csak nem érdemes első megoldásként gondolni rá. Mindig nagyban függ a problémától, lehet, hogy nagyobb cégeknél, pl. IBM erről vannak infók. Én úgy érzem, hogy nem szívesen fordulok Exceptionökhöz, mégha kényelmesnek is tűnik a használata.
Erről lehetne akár cikket is írni, hogy hogyan lehet bizonyos eseteket simán return valuekkal vagy exceptionokkel megoldani, és összehasonlítani.
Két nagy probéma van az exceptionökkel:
C++-ban azért okoz teljesítméncsökkenést, mert az Exception-t a stacken hozza létre, és dobásnál ahogy visszatér az összes függvényből, mindig a stack tetejére kell másolnia az exception objektumot, ha a catch 5 fv-nyel föntebb van, akkor az 5 másolás.
A másik probléma pedig hogy ha például nyitunk egy resource-t pl file handlert, de dobunk egy exception-t, akkor hajlamosak vagyunk erről megfeledkezni, és nyitva marad.
Az előbbi szerintem PHP-ra már nem igaz, mert amúgy minden adatstruktúrának megvan a C-beli reprezentációja (plusz absztrakció), egyébként pedig valszeg minden heap-en van tárolva.
utóbbi pedig akár lehet igaz is. -
válasz
Speeedfire #9010 üzenetére
Ez így objektum hívás?
$model->'nap_'.$i;
Konkrétan nem értelek. Most kiveszed adatbázisból a nap_xy bejegyzéseket és belerakod egy tömbbe majd mindre ugyanazt a feldolgozást ráhúzni?
foreach?
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #9009 üzenetére
"felmérés" helyett inkább simán teljesítménymérésre gondoltam.
(#9010) Speeedfire : bárcsak közérthetőbben írtad volna le, mit szeretnél.
-
Speeedfire
félisten
Hogy lehet egy model értékeit dinamikusan használni?
Adott az adatbázisban pár ilyen bejegyzés:
nap_1, nap_2....nap_x
Ezeket akarom nem egyesével, valami tömbben feldolgozni, konkrétan egy explode-ot szeretnék az adott adatokban.
Így próbáltam, de...$model->'nap_'.$i;
//meg így is
$napok=array('nap_1'.....);
$model->$napok[$i];Egyikkel sem akar menni, biztos van rá valami, de ...
-
Sk8erPeter
nagyúr
Igen, és itt aztán a visszatérési értéket megint csak vizsgálni kell, és akkor visszajutottunk ugyanoda, ahonnan elindultunk.
Vegyük azt a megközelítést, amit Te mondasz, tök egyszerű példával. Itt beletettem még annyit, hogy két különböző paraméterrel hívom meg a logErrors függvényt, ez is szándékosan jó butított példa. A syntax highlighting miatt inkább felraktam pastebinre:
http://pastebin.com/KxH2Fmk9Na, akkor vegyük azt a megközelítést, amiről én beszélek (bár privátban hasonló jellegű megoldást mutattam), aktualizálva a példához:
http://pastebin.com/PVKe4uNANem tudom, ki hogy van vele, de nekem a második, háromsoros kód jobban áttekinthető. A korábbiaknál meg annyi van bent pluszban, hogy van két saját kivételosztály, ami tömböt is tud fogadni.
(#9007) modder : azzal egyetértek, hogy nem mindig egyértelmű, mire szabad/érdemes exceptiont használni. De pl. egy form injection probléma tipikusan olyan, ami miatt érdemes lehet exceptiont dobálni. Ahogy egy adatbázis-kapcsolódás is.
A 404-es hiba meg ilyen alapon ugyanúgy gyakran előfordulhat, ha valaki elcseszi a keresett URL-t, esetleg van hivatkozás Google-ön keresztül olyan oldalra, amit azóta már töröltek, vagy magán az oldalon van rossz hivatkozás van; de tulajdonképpen ezt is meg lehetne oldani sima error tömbökkel, ahogy az összes többi hibát is. Tulajdonképpen mindkettő megoldás alkalmazható minden problémára, kérdés, mire melyiket érdemes - bár az valóban érdekes felmérés lehet, mennyit ront a GYAKORLATBAN a teljesítményen az, ha valaki exceptionökre áll rá.
Ha valaki tud ilyen felmérésről, ne tartsa magában!===
(#9008) Athlon64+ : nem is kell "mindenhol" kivételeket hajigálni.
-
modder
aktív tag
válasz
Sk8erPeter #9006 üzenetére
A symfony error handlingről beszélt, ami tipikus hiba eset (értsd: ha hiba történik, amire egyáltalán nem számítottál, exception, ugyanez a Kohana is, ezért van stacktrace, amikor valamit elszúrok), nem arról, hogy a mindennapi funkcionalitást exceptionökre építed.
A 404-es hiba exceptionnel történő kezelése pedig nem ördögtől való, mint azt korábban írtam: mindegy. Viszont ez architektúrális szinten jelenik meg, ezért van létjogosultsága.
Mondtam, nehéz eldönteni mi az amit lehet/szabad/érdemes exceptionokkel csinálni és mi az, amit nem. A validálás olyan, amit én nem exceptiönökkel csinálnék. Alternatívát a 404-re pedig írtam.
-
Sk8erPeter
nagyúr
Ez sajnos nem volt egy túlzottan érdemi reakció.
Pl. miután kijelentetted, hogy nem igazán tudsz olyan frameworkről, ami exceptionökre építené a működését, megmutattam a Symfony-t, mert próbáltam érdemben vitatkozni, nem csak általánosságban beszélni. A Symfonynál meg most hirtelen nem tudom, milyen meggyőzőbb frameworköt kellene neked mutatnom, hogy az exceptionök létjogosultsága valamennyire világosabbá váljon.Egyébként a gyakorlati ellenpéldákat én is hiányolom, ha már kritizálod azoknak a programozási szokásait, akik a kivételek használatára építenek. Azt érezteted, hogy a kivételekre építés rossz programozói gyakorlat (tehát valamit rosszul csinál az, aki erre alapozva kezeli a program menetében felmerülő hibákat), miközben nálunk okosabb emberek komplett keretrendszert építettek erre. Én jobban hajlanék az érveid elfogadására, ha alátámasztanád őket konkrét példákkal - attól függetlenül, hogy "minden probléma egyedi". Igen, a formvalidálás problémája is egyedi, meg az is, hogy hogyan kezelj le egy 404-es hibát. Én mindkettőre elmondtam a saját megoldásom (privátban komplett pszeudokódot is mutattam, ezt alátámasztandó), úgy tűnt, belátod az átláthatóság előnyeit kivételkezelésnél. De saját példát is mutathatnál, mert én nyitott vagyok más megoldásokra, ha az érdemi javulást hozhat a kódban.
Ha valaki vitatkozik az álláspontoddal, nem azért teszi, mert feltételezi, hogy hülyeségeket beszélsz, épp az a jó szakmai vita ismertetőjele, hogy szakmai szempontokkal győzzük meg egymást (én erre törekszem), nem pedig bezárkózásunknak adunk jelet.
A magasabb szintű programozói nyelvekben meg a kivételkezelés nagyon nem ördögtől való.
Kicsit számomra is olyan ez a vita, mintha arról beszélnénk, hogy mennyire nem éri meg objektumorientáltan programozni, mert az akár lassulást is hozhat. Ugyanez igaz C++-ra is: az OOP-s megoldás továbbra is lassabb marad, ezzel nyilván nem mondtam újat.
De ettől még megkérdőjelezni az OOP előnyeit nem érdemes, mert tény, hogy az átláthatóságban, követhetőségben, az objektumok logikai összetartozásában, kapcsolódásában, annak szemléltetésében, az emberi gondolkodáshoz való hasonlóságában, stb. annyi előnye van, ami miatt bőven van létjogosultsága (ez sem új, de elmondom).
Ettől függetlenül mégis hosszas érvek vannak, amik miatt pl. a Drupal még mindig nem állt át a teljes objektumorientáltságra: Drupal programming from an object-oriented perspective. De ennek nagyon sok történelmi gyökere is van (PHP 4 miatti kompatibilitás - most már erre nem terveznek). -
modder
aktív tag
válasz
Sk8erPeter #9004 üzenetére
én inkább így közelíteném meg:
function blabla(){
// .......
$errorArray = array();
if( $hiba_van ){
$errorArray[] = 'ezért meg azért';
return $errorArray;
}
return empty($errorArray) ? true : $errorArray ;
// .......
}Az exceptiondobálós példával van még egy gubanc: ha minden egyes alkalommal, amikor hibát találsz a validációban, dobsz egy kivételt, akkor ki fogod hagyni az utána következő formelemek validálását, és nem fogod tudni, van-e több hiba is.
Ha pedig minden formelemen végigmész, összegyűjtöd a hibákat, és utána dobsz egy exception-t, benne például egy tömbbel a hibákról, akkor már nem nagyon látom annyira egyszerűbbnek a hibakezelést.
-
Sk8erPeter
nagyúr
"Azt hiszem érthető voltam, de akkor leírom érthetőbben: amikor refaktorálod (átírod, javítod) a kódot, nem fogod tudni, hol dobtad az exceptiönt, amíg tényleg nem dobtál egyet.
Például van a form validáló osztályod, ami dobhat 4féle exception-t, te meg szeretnéd tudni, hol dobja, akkor legjobb esetben is ctrl+ffel keresel rá. Ha pedig a stacktrace-t akarod használni, ahhoz generálnod kell egy olyan hibát, ami ezt az exceptiont dobja."
Azt hiszem, én is érthető voltam, amikor leírtam, hogy egy általános jellegű Exception elkapásával minden kivételt el lehet kapni, és a kivétel keletkezésének módjáról mindent meg lehet tudni. Ha azt szeretnéd megtudni, hol dobja, és egész addig nem tudod, amíg nem keletkezett egy pontosan olyan specifikus hiba, akkor valóban az a megoldás létezik, hogy generálsz olyan hibát, vagy rákeresel. És? Nem értem a logikádat, ez miben tér el attól, ha te mondjuk ragaszkodsz a hibatömbös megoldásodhoz. Ha a hibatömbös hibakezelés forrásaira szeretnél rátalálni, akkor még a klasszikus exceptionökre vonatkozó backtrace-es megoldás sem áll a rendelkezésedre, de szerencsére mivel a PHP elég kényelmes nyelv, még erre is igénybe lehet venni egy plusz segítséget (kicsit mintha a bal kezeddel vakarnád meg a jobb füledet a tarkód mögül): debug_backtrace().
Még egy dolog: ha definiálsz saját exception osztályokat, akkor azoknak többnyire elég normális, egyedi neve van.
Pl. legyen épp ValidationException a neve.
Mondjuk ennek eldobása egy egyszerű globális fv.-en belül így néz ki:function blabla(){
// .......
if( $hiba_van ){
throw new ValidationException( 'ezért meg azért' );
}
// .......
}a Te megoldásod meg valami ehhez hasonló:
function blabla(){
// .......
if( $hiba_van ){
$errorArray['status'] = FALSE;
$errorArray['msg'] = 'ezért meg azért';
return $errorArray;
}
// .......
}Ha már Te mindenhol az ugyanilyen jellegű hibatömbös megoldást alkalmazod, és Ctrl+F-es módszer, akkor szerintem több esély van gyorsan megtalálni a throw new ValidationException részt.
De a tömbös megoldást továbbra sem kínál beépítetten backtrace megoldást."Nyilván, ha valaki idiótán programoz, arra nincsen mentség."
Ez önmagában igaz. De arra, amire reagáltál, ez valahogy kicsit sántít. Pl. ha már újrafelhasználásról beszélünk, nem tudom, valakinek miért kellene kitalálnia, hogy a kódot elkészítő illető pontosan milyen tömbindexeket használt. Ja, hát nézze át az egész kódot, ha már szar a dokumentáció, hisz' bár a függvényt készítő ember nem ért rá odaírni három sort, ha három kivételt dob a fv. elejére, de a kódot felhasználó illető majd nyilván rá fog érni átnézni a komplett kódot. Itt pedig ez az indexeléses módszer nem biztos, hogy olyan intuitív megoldás, hogy ránézésre, már az első példa láttán lehet tudni, hogy mi is a helyzet többféle alkalmazásnál. -
PazsitZ
addikt
Azt most már tudjuk, mi a szar, de a temérdek jobb, átláthatóbb, refaktorbarát alternatív javaslatot még nem találtam meg a hsz.-eidben.
Aki pedig azt állatja, hogy minden függvényt azzal kezd, hogy /** */, az biztos ráér programozni
Az annotáció pedig megkönnyíti a további fejlesztést, az autocomplete felhasználás során.
Mert meg sem kell nyitnod függvényt tartalmazó fájlt tudni fogod a be-ki-meneti paramétereket, típusukat és kivételeket, amit dobhat.
Ehelyett ha lehagyod, jobb esetben tízszer nyithatod a fájlt és böngészheted a függvényt, mit miként adj át és várj viszont. Utóbbi minden bizonnyal gyorsabb.A tömbös indexes hibakezeléses megoldásos pedig aranyos, de ne akard már itt megmagyarázni, hogy ez a frankó, mert már nem tudom, hogy sírjak vagy nevessek.
-
modder
aktív tag
válasz
Sk8erPeter #9000 üzenetére
Megadják a lehetőséget
Új hozzászólás Aktív témák
Hirdetés
- Lenovo ThinkPad T14 Gen 3:i5 1250P(12mag),16GB,512GB,14"matt TOUCH,vil.HU bill,Lenovo gari 2026.6.25
- Amazfit Gtr 3 Pro okosóra dobozával újszerű állapotban
- i3-8100 + ASUS H310M alaplap + 8GB RAM egyben (félkonfig)
- Asztali PC , R5 5500 , RX 6700 XT , 32GB RAM , 512GB NVME , 1TB HDD
- Sony PlayStation 5 Fat 825 GB eredeti doboz, gyári kontroller
- DELL Thunderbolt Dock - WD19TB modul 02HV8N (ELKELT)
- Honor Magic 7 Pro - Fekete - Új kipróbált készülék! Karcmentes gyárilag független! 512GB Memória!
- Bomba ár! Lenovo IdeaPad 330S-15IKB - i5-8G I 8GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Gari!
- DELL T40 EMC Szerver
- LG 32GS95UE - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest