- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- droidic: EA GAMES – élő emberrel a supportban 2025 ben
- Magga: PLEX: multimédia az egész lakásban
- btz: Internet fejlesztés országosan!
- M0ng00se: Hardvert áruhitelre?
- sziku69: Szólánc.
- Elektromos rásegítésű kerékpárok
Új hozzászólás Aktív témák
-
PazsitZ
addikt
válasz
trisztan94 #10695 üzenetére
Most picit sarkítva gyakorlatilag az OKJ papír semmit nem ér.
Ha van mögötte tudás, akkor ok, bár pont ekkor már mindegy, hogy van okj papírod vagy nincs.
Na most ingyenes képzésként még rendben van, de így.
Ha meg már ennyi pénzt kidobnak az ablakon, akkor legalább igyekezett volna tanulni.
Nem értem az ilyet. -
Soak
veterán
válasz
trisztan94 #10697 üzenetére
Tudom, hogy nagyon off, de azért érdekesség képpen megkérdezhetnéd konkrétan melyik iskola ez.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10697 üzenetére
Hát akkor legalább neked jó.
De az elég elkeserítő, hogy valaki úgy szerez OKJ-s képesítést, hogy konkrétan SEMMIT nem tud az egészről, és ezek szerint még az érdeklődés sem volt meg benne, hogy elsajátítsa a dolgokat (legalább magától, ha egy raklap szar a tanári kar). Mondjuk én megértem, ha már 500k-t kiszórt az ablakon, legalább legyen meg a végtermék. De igazából tök felesleges, mert a piacon sajnos nem fog tudni melót találni 0 tudással.
Ha "géphasználat" címén elkértek tőle pénzt, úgy, hogy ő konkrétan a saját laptopját használta, és ő még hajlandó is volt odaadni ezt a pénzt, hát...kicsit jobban a sarkára kellett volna állnia, pl. rájuk kellett volna borítani ilyenért az asztalt
(nehogy azt mondd, hogy a nők nem tudnak kibalhézni maguknak dolgokat...
).
-
trisztan94
őstag
válasz
Sk8erPeter #10696 üzenetére
Hát nekem annyit mondott, hogy úgy volt meghírdetve, hogy ingyenes okj php, html, css, js, 3d tanítás és a végén szakvizsga és hogy elvileg a tanárok nem tanítottak semmit és olyanokra kértek el pénzt, hogy "géphasználat" (amikor saját laptopon dolgozik). És ugye a szakdoga amit csinál, csak akkor kapja meg érte a szakvizsgát ha lemond a jogairól és konkrétan a "sulinak ajándékozza". Legalábbis nekem ezt mondta, de vmi barátnője aki ugyanoda járt az is ezt mondta. Igazából kapok érte pénzt, nem nagyon érdekel, hogy most igazat mondott-e vagy nem
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10695 üzenetére
Ez egy webfejlesztéssel kapcsolatos OKJ-s tanfolyam? Tehát konkrétan webfejlesztésről szól, 500k-ba került, és nem sikerült elsajátítania az ismerősödnek semmit?
-
trisztan94
őstag
Igazából egy egy szakdoga, egy csajszinak segítek, elvileg ingyenes okj lett volna ahol mindent megtanulnak, hát kb 500k-val húzták le.. a lényeg az, hogy semmit sem tud kb és hnaputánra kéne kész lennie
Meg lekell mondani a weboldal tulajdonosi jogokról a suli számára.. szóval így elég offos a történet és hát meglettem kérve, hogy segítsek.
De magamnak is csinálnék egyet majd később ha jobban értek már ehhez, majd akkor nyilván nagyon figyelek ezekre.
Köszönöm szépen a tanácsokat, imádom ezt a fórumot!
-
Sk8erPeter
nagyúr
válasz
Speeedfire #10693 üzenetére
Szívesen!
-
Speeedfire
félisten
válasz
Sk8erPeter #10692 üzenetére
Köszi mester.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #10689 üzenetére
Pakold zárójelbe a kivonásokat:
$kor18 = Hirdetes::model()->count('szul_nap >= '.($date-18).'-'.date('m-d').' and szul_nap <= '.($date-24).'-'.date('m-d'));
-
Soak
veterán
válasz
Speeedfire #10689 üzenetére
Most nincs időm átbogarászni, de a DW szintaktikai hibát dobott rá.
-
Speeedfire
félisten
Ezzel a sorral mi a baj?
18 és 24 év közötti "kocsikat" akarok "megszámolni" vele.$kor18 = Hirdetes::model()->count("szul_nap >= ".$date-18."-".date("m-d")." and szul_nap <= ".$date-24."-".date("m-d"));
-
Soak
veterán
válasz
trisztan94 #10686 üzenetére
Nem tudom milyen viszonyba vagy a siteal (mármint, hogy a tiéd vagy pénzért fejleszted 100%-ban , esetleg csak segítesz ), de ha eddig nem figyeltél rá akkor érdemes átnézni minden user inputot, mert az ilyen siteok hatalmas biztonsági rést jelentenek az interneten. Amit Sk8erPeter is mondott, hogy rosszindulatú felhasználókkal vigyázni kell, az nem azt jelenti, hogy valaki ki fog mindent törölni az adatbázisból és jól kiröhög (persze 16éves hülyegyerek aki wikipedian rátalált az SQL injection-ra ezt fogja csinálni), hanem inkább (vélhetően hash nélkül tárolt) jelszavakat fogja megszerezni amiket utána hozzáprobál az e-mail fiókokhoz vagy ami épp eszébe jut. Ezek után már el tudod képzelni mi lesz siteal vagy az azt futtató céggel.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10686 üzenetére
Nincs mit!
-
trisztan94
őstag
válasz
Sk8erPeter #10685 üzenetére
Ja vágesz. Akkor majd figyelek erre a jövőben
Köszi a tanácsokat -
Sk8erPeter
nagyúr
válasz
trisztan94 #10684 üzenetére
Nincs baj ezzel a megoldással, amit alkalmazol, mármint azzal, hogy az URL-ben átpasszolod a teendőt. Soak arra hívta fel a figyelmedet, hogy a felhasználótól jövő adatot minden esetben ellenőrizd, tehát pl. KÖZVETLENÜL SOHA ne töltsd fel adatbázisba az adatot, előtte mindig validáld.
Számolni kell azzal, hogy a felhasználó nem biztos, hogy ember, és hogy a felhasználó nem biztos, hogy jóindulatú. Sőt, eleve feltételezni kell a rosszindulatot, és annak megfelelően kódolni. -
Soak
veterán
válasz
trisztan94 #10680 üzenetére
Ezzel viszont vigyázz, mert lehet user input is, a biztonságra figyelj. (Konkrétan az SQL injectionra gondolok)
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10680 üzenetére
Szívesen!
-
trisztan94
őstag
válasz
Sk8erPeter #10678 üzenetére
köszönöm
-
Sk8erPeter
nagyúr
válasz
CSorBA #10675 üzenetére
A country-t minek átvinni, ha ott az id, ami hozzá tartozik?
Egyébként országválasztó listáknál a legtöbb esetben kétkarakteres country code-okkal szokták megoldani, mutatok egy példát a Drupal egyik moduljának legenerált listájáról (Location modul):
http://i.imgur.com/0DMbt.png
Bőven elég tehát csak valami egyedi azonosító vagy kód (itt országkód).
A selecthez tartozó name-et meg úgyis eléred, és az ország és a város meg úgyis teljesen különálló selectbe tartozik. -
Sk8erPeter
nagyúr
válasz
trisztan94 #10677 üzenetére
"ha index.php?p_kosar akkor valamit adjon ki."
Ha értéket is adsz neki, úgy van értelme, pl. index.php?p_kosar=543:
$cart_item_id = isset($_GET['p_kosar']) ? $_GET['p_kosar'] : NULL;Így a $cart_item_id változó tartalma 543 lesz.
-
trisztan94
őstag
Sziasztok!
Hogy tudom az url-t csekkolni? Pl ha index.php?p_kosar akkor valamit adjon ki.
Kerestem guglin, de nem találtam megoldástKöszi
-
CSorBA
őstag
válasz
Sk8erPeter #10672 üzenetére
Meg persze
Lehet én pörögtem túl, és bebonyolítottam.
A lényeg, hogy van 1 területválasztó selectboxom. Benne 2 típusú optionokkal. Az egyik a várost jelöli, a másik az országot. És mivel ajaxosan is posztolom, meg simán is. Nem nagyon tudtam, hogy vihetnék át 2 információt egy option value-ban. Így gondoltam, hogy tömbösítem, mert korábban már valahol csináltam ilyesmit, hogy konkrétan ez van a value-ban: value="country[id]" vagy value="city[id] (id tetszőleges szám).
Jah közben beugrott hol csináltam ilyet, egy hírlevélküldő cuccnál. Ott ajax-al így tudtam posztolni őket legkönnyebben, aztán php oldalon egy foreach ($valami as $k->$v)-ként feldolgozni.
-
PazsitZ
addikt
válasz
Lacces #10673 üzenetére
itt talán az url-ben lévő port-al lehet a gond. file_get_contents egyébként se távoli elérésre találták ki.
Szvsz. a Curl szerintem megoldaná ezt a gondot CURLOPT_PORT opció használatával. -
Lacces
őstag
Sziasztok!
Anno volt itt a file_get_contents() függvénnyel baj a hostokon.
Most a tárhelyszolgáltató beállította, és egy a http://www.example.com -ra működik. Viszont a echo file_get_contents('http://87.117.193.10:8000/');. Localon megy, és a címet bemásolva az url-be is behozza a weboldalt.
Mi lehet még a gond, hogy az ip címes webhelyet nem tudja megjeleníteni? -
Sk8erPeter
nagyúr
válasz
CSorBA #10669 üzenetére
Ja, értem, hát az előbbi megfogalmazás ezek szerint kissé félrevitt, azt hittem, neked pont az kell, hogy egyszerűen egy stringből tömb legyen, azt' kész, de ezek szerint bonyolultabb.
Akkor az a jó, amit PazsitZ javasolt (vagy ahhoz hasonló, amit csináltál), jobbat nem tudok.Egyébként meg szabad kérdezni, hogy mihez kell ez? Hátha találunk egyszerűbb megoldást.
-
CSorBA
őstag
válasz
PazsitZ #10670 üzenetére
Az én megoldásom ez lett végül:
$key= preg_replace("/[^a-z]/", '', $string);
$value= preg_replace("/[^0-9]/", '', $string);Aztán megcsinálom a tömböt belőle. Annyira nem gáz, csak azt hittem van valami konverzió, ami forma alapján felismeri, vagy nem is tudom
Köszönöm a segítségeket.
-
PazsitZ
addikt
válasz
CSorBA #10669 üzenetére
Nekem nem jut eszembe ilyen alakra alap függvény vagy megoldás.
Csak az általad is említett regexp vagy nem oylan szép explode-trim ügyeskedés.
$string = 'string[66]';
$array = preg_match('#(\w+?)\[(\d+?)\]#', $string, $match);
$resultArr[$match[1]] = $match[2];$string = 'string[66]';
$array = explode('[', $string);
$resultArr[$array[0]] = trim($array[1], ']'); -
CSorBA
őstag
válasz
Sk8erPeter #10668 üzenetére
Majdnem:
$string = 'kedvenc_szamom[4]';
var_dump($string);
//string(17) "kedvenc_szamom[4]"
$string = (array)$string;
var_dump($string);
//array(1) { [0]=> string(17) "kedvenc_szamom[4]" }Én pedig ezt várom:
array(1) { ["kedvenc_szamom"]=> int(4) }
Nem tudom mennyire érthető
Szóval ebből:
$string = 'kedvenc_szamom[4]';
ez legyen:
$string =array();
$string['kedvenc_szamom'] = 4; -
Soak
veterán
válasz
CSorBA #10663 üzenetére
Erre gondolsz? http://ideone.com/Wg1EI
-
CSorBA
őstag
Sziasztok!
Van egy stringem: "string[szám]"
Ebből szeretnék egy tömböt, azaz mintha ez lenne:
$string = array();
array_push($string, szám);És akkor lehet ilyet, hogy:
$szam = $string[0]Van erre valami egyszerű megoldás? Ne kérdezzétek mire kell
Preg matchel meg tudom csinálni, csak érdekel, hogy van-e esetleg valami konverzió,
-
#68216320
törölt tag
Problémába ütköztem egy tárhelyen.
finfo - nem működik, mime_content_type pedig régi és szintén nem működik. Tudnátok tippet adni fájltípus kiderítésére? -
Soak
veterán
válasz
DeltaPower #10660 üzenetére
Mindenképpen azzal fogom, csak még nem jutottam el odáig. Addig meg nem fogyaszt annyi erőforrást, hogy érdekeljen.
-
orkester
őstag
válasz
DeltaPower #10657 üzenetére
Köszi, arra felé volt a hiba, ugyan nem ez, de segített rátalálni.
-
Soak
veterán
válasz
DeltaPower #10657 üzenetére
Van, de nem ez volt (viszont ebből találtam meg). A probléma az, hogy írtam egy functiont,hogy ha valaki .php-t kért akkor automatikusan átirányitotta kiterjesztés nélkülire és ott veszett el a dolog, mivel a siteon belüli linkek még .php-re mutattak és ugye az átirányításnál eldobta.
Át kell írnom minden linket.
Köszönöm a segitséget
-
Soak
veterán
Sziasztok !
Valami oknál fogva minden formom megszűnt müködni
.
Csinálok egy ilyen formot :
<form action="upload.php" method="post"><input type="text" name="new_album_name" value=""><input type="submit" name="new_album" value="Create new album"></form>
Ha az upload.php-re teszek egy var_dump($_POST); -ot akkor üres
MIután befejeztem a SQL reviziót, kezdtem volna ezekkel, de meglepve tapasztalom, hogy a , , formok nem működnek, valószinű elállítottam valamit. Mi okozhat ilyet?
Szerk: Ha nem adok meg action-t és önmagára postol akkor viszont működik
-
orkester
őstag
Sziasztok!
Volna ez a weboldal: [link]Firefox és Chrome alatt minden rendben, de IE és Opera esetében a Főoldal - Belépés, stb.(topmenu) rész mellé kerül a kereső mező és nem alá, ahogy normálisan szeretném. Nem nagyon jövök rá mi a probléma.
-
Vico87
tag
válasz
trisztan94 #10651 üzenetére
Annak is érdemes lenne utánanézni, hogy kiszolgálja-e az index.php állományt, mint defaultot, ha nincs konkrét fájl az URL-ben, hanem csak mappa.
-
Lacces
őstag
válasz
trisztan94 #10651 üzenetére
Kérdezz rá a Mac-es fórumba is, itt gyanús a dolog, hogy jogosultság probléma van a Mac-ben. Bocs de én nem vagyok az, de van hasonlóság a linuxhoz (ezért most szájba vernek itt
).
Valszeg az van, hogy nem rootként nyitod meg, ha betudsz valahogy ott (nekem fingom sincs hogyan, nem ismerem) jelentkezni rootként az osx-nél, akkor probáld meg úgy, hogy működik-e? Eléred-e a linket, látod, betudsz lépni.
-
fordfairlane
veterán
válasz
trisztan94 #10651 üzenetére
Először azt nézd meg, hogy egy adott php fájlt tudsz-e futtani, ahogyan az utánam jövő hszben leírták. Ha ez megy, akkor keresd a directoryindex beállításokat.
Nem a php.ini-ben, hanem az Apache config fájljában. httpd.conf, talán az /etc/conf/httpd könyvtárban, bár a Lionnál lehet, máshol van. A forbidden ilyenkor arra vonatkozik, hogy az adott könyvtárban nem talál a kritériumoknak megfelelő indexfájlt, ezért kilistázná a tartalmát, de ez más direktívák miatt le van tiltva.
-
trisztan94
őstag
@wis #10648
Nem írnak errort. .conf fájlokban csak a mysql.sock helyét változtattam, mint ahogy a leírásban van.@fordfairlane , @DeltaPower
A php.ini-ben a directoryindexnél?Vagy hol? Teljesen nem értem ennek az OSX-nek a fájlrendszerét, terminálba meg főleg nem.. Szóval igazából honnan tudhatom meg, hogy melyik fájl hol van?
De igazából nem az a baja, hogy nincs meg valami, hanem hogy nincs hozzáférésem, nem? Na mindegy, nem akarlak b*sztatni titeket ezzel, inkább mamp akkor
Azért köszi -
DeltaPower
addikt
válasz
trisztan94 #10644 üzenetére
ha /phpMyAdmin/index.php-ra se ad be semmit, akkor nincs directoryindexben a php
-
fordfairlane
veterán
válasz
trisztan94 #10644 üzenetére
Első tippem, hogy a DirectoryIndex opciónál nincs index.php, csak index.html.
-
wis
tag
válasz
trisztan94 #10644 üzenetére
Apache error.log, access.log mit ír?
A .conf fájlokban mit módosítottál? -
Soak
veterán
válasz
trisztan94 #10646 üzenetére
Viszont a Php,mysql,phpmyadmin ,meg még elég sok minden nincs . Plusz jól van dokumentálva és egy pakkot képez.
De nekem mindegy
-
Soak
veterán
válasz
trisztan94 #10644 üzenetére
Ezt nem nézted ? http://www.mamp.info/en/index.html
-
trisztan94
őstag
Sziasztok!
Ezt a leírást követve felraktam a gépemre a phpMyAdmint (apache2 beépített mac os lionba), előtte mysql szervert is és a php.ini-be engedélyeztem a php-t. Ha beírom, hogy localhost, vagy hogy 127.0.0.1 akkor ezt dobja ki. a Localhost/phpmyadmin-ra is... Mit rontottam el?
Forbidden
You don't have permission to access /phpMyAdmin (ha nem phpmyadminra megyek akkor sima / jel van) on this server.
Apache/2.2.21 (Unix) DAV/2 PHP/5.3.10 with Suhosin-Patch Server at localhost Port 80
-
Soak
veterán
válasz
Lacces #10642 üzenetére
Sokkal rosszabbak ...
De komolyan.
Amúgy meg épp ezért írtam amit írtam nem sokkal ezelött. Kicsit olyan ez mintha Ady, Petőfi, meg Shakespeare írna ugyanarról a témáról egy verset, mind a 3 nagyszerű, de még csak távolról sem hasonlítanának.
A gondolkodás módot kell megérteni meg az alapvető szabályokat, azon túl meg semmi értelme vitatkozni, hogy ki hogyan nevez el egy funkciót, vagy egy változót. Ha neki az a logikus és úgy tudja magát belehelyezni a környezetbe akkor felesleges vitatkozni, más kedvéért úgy se írja át a programot, csak felesleges szájtépés. -persze itt nem a nagyon gyökér dolgokról beszélek-
Ez a fórum is arról szól/kéne hogy szóljon, hogy aki elakadt azt a közösség átsegítse az akadályon, de még véletlenül se annyival, hogy csak odahányja a kódot.
Aki tanulni/problémát megoldani akar annak bőven elég lesz, aki meg ingyen munkát vár az jobb ha felébred
-
Lacces
őstag
válasz
Sk8erPeter #10641 üzenetére
Én mondjuk simán hajlandó vagyok bedobni minden második kódomat
, hogy lehet-e benne valamit szebben csinálni, mint ahogy már a végén bedobtam az egész fájlom forráskódját hétvégén
De ez már csak ilyen, ezért nehúzz fel magad. Mondjuk egyszer-kétszer már előfordult, amikor láttam a válaszodat a kérdésemre, és így magamban megszólaltam: "mit nem értesz a kérdésemen, jó leírom neked másképp". Van ez így néha
Többieknek:
Sk8erPeter véleményét érdemes megfogadni, tapasztalt. Eddig tőle mindig kaptam jó válaszokat a kérdéseimre. Ezért minden tiszteletem az övé.
Persze nem kell mindennel egyet érteni, anno én sem tettem, de leállni emiatt vitázni szerintem senki se tegye.
Az informatika és a matematika is egy szekta (lásd: 0 természetes szám, vagy egész), mindenki másra esküszi, más módszertanokra, és más programozási nyelvekre. Néha napján úgy érzem, hogy az informatikai táborok (linux vs win, ubi vs fedora) rosszabbak mint a politikusok... - De ez magán vélemény volt. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #10640 üzenetére
"Visszavonva. A duma nem kell."
Nem azt mondtam, hogy te általában szarul kódolsz, hanem ha már rákérdeztél, gondolom valahonnan szedted ezt a kiíratási módot, és előre felhívtam a figyelmedet, hogy ez egy rossz szokás.
De látom itt egy-két ember úgy érzi, porcelánból van, még szólni sem lehet, hogy valamit nem érdemes alkalmazni, minden nyersen fogalmazott tanácson meg kell ám sértődni és duzzogni, mint egy óvodás. -
Brown ügynök
senior tag
válasz
fordfairlane #10638 üzenetére
Ah... Inkább nem szólok semmit.
Köszi.
Sk8ter-nek is.Visszavonva. A duma nem kell. -
Sk8erPeter
nagyúr
válasz
Brown ügynök #10636 üzenetére
Legegyszerűbb gyorspélda:
$obj = new stdClass();
$obj->values = array();
for($i=0;$i<4;$i++){
$obj->values[$i] = new stdClass();
$obj->values[$i]->name = 'Józsi';
}
echo "{$obj->values[3]->name}";Kimenete: "Józsi".
Szerk.: egyébként sosem láttam értelmét az ilyen nyakatekert kiíratásnak.
Minek idézőjelbe rakni ilyen esetben? Minek szívatnia magát az embernek azzal, hogy csak nehezebb kivenni a kódban, hogy ott mi is van, plusz figyelni kell a string miatt arra is, hogy a kapcsos zárójelek megfelelő helyeken legyenek?
Akkor már egyszerűbb konkatenálni, sprintf()-et használni, vagy bármi hasonlót, ami kissé jobban átlátható, könnyebben módosítható.
Példa konkatenálásra:echo 'Name: '.$obj->values[3]->name;
Szerintem jobb, hogy itt nincs kapcsos zárójel meg körbeölelő idézőjel. A stringet látványban folytonosabbá tenni azzal, hogy beleerőltet az ember ilyen változókat az általad mutatott módon, szerintem önszopatás. -
fordfairlane
veterán
válasz
Brown ügynök #10636 üzenetére
Például ilyen:
class ItemSet {
public $values = array();
}
class Item {
public $name;
}
$obj = new ItemSet();
$obj->values[3] = new Item(); -
Sk8erPeter
nagyúr
Nem azt mondtam, hogy a PDO "szép", ahogy te értelmezted. Hadd idézzem magam még egyszer: "Ezerszer szebb, mint a régi mysql_query()-s bohóckodások..."
"Pontosan azért, mert igazából nem szebb."
De, szebb. Nem is értem, hogy állíthatod ezt. Hol volt bindolás a sima mysql_query()-s szarakodásnál? Mennyire okádék volt, hogy mindenhol mysql_real_escape_string() hívások voltak, és az objektumorientáltsághoz, kivételek dobálásához köze nem volt? Most hadd ne soroljam fel az érdemi különbségeket a PDO és a sima mysql_* szarokhoz képest, össze sem hasonlítható.
Azért a "pár cuccnál" szerintem kicsit jobban érzékelhető különbség van a mysql_* függvényekhez képest.Gondolom azért mondod mindezt, mert hosszabb távon nem is használtad, így távolról ítéled meg.
De senki nem mondta, hogy összevethető egy ORM-mel... Azt írod, az ORM bonyolultabb... nem mondod, tényleg?!
Szándékosan magyarázod félre, amiket írok? Arról magyaráztam, hogy az ORM-ben szereplő query-k működhetnek a háttérben a PDO-val, és a kettő egy kicsit sem zárja ki egymást, sőt.
"A pdo az egy wrapper a mysql* függvényekhez"
Ha ez ilyen egyszerű lenne, akkor a PDO nem működne más adatbázisokkal is.Egyébként biztos vagy benne, hogy csak a mysql_* függvények köré írtak wrappert? Úgy emlékszem, hogy a php_mysql.dll NEM kell, hogy engedélyezve legyen ahhoz, hogy a PDO-t zavartalanul lehessen használni a php_pdo_mysql.dll engedélyezésével. De cáfolj meg, ha tévedek. Furcsa lenne, ha szimpla "duplikáció" lenne ilyen tekintetben.
-
Brown ügynök
senior tag
echo "{$obj->values[3]->name}";
Valaki megvilágítaná nekem, hogy milyen szerkezeti felépítés kell ahhoz, hogy a fent ábrázolt módon kapjuk meg a name attribútumot?
-
Peter Kiss
őstag
A PDO annyiból jó, hogy csak egy drivert kell megtanulni több adatbázisszerverhez, így a kód mobilisebb lehet. ORM-nél nem a model számít, hanem az, hogy a change tracking és a kapcsolatok kezelése jól működjön (a model-ben majdnem csak a különböző adatagok lehetnek [POPO class-hoz közelebb kell lennie, mint akármilyen BC-hoz]).
-
fordfairlane
veterán
Ha nem akarsz annyi mappát létrehozni a fájlrendszerben, mint amennyi usernek akarsz külön urlt, akkor az url értelmezését a webszervertől át kell tenni az alkalmazásodba. A http requesteket át kell irányítani egy fájlba, majd ezen fájlban kell feldolgoznod a kapott url fragmentet, a saját értelmezésednek megfelelően.
-
cucka
addikt
válasz
Sk8erPeter #10630 üzenetére
Miért olyan botrányos? Ezerszer szebb, mint a régi mysql_query()-s bohóckodások...
Pontosan azért, mert igazából nem szebb.
A lényegi különbség kb. az, hogy pdo-val megspórolsz egy változó behelyettesítést a query string-edbe, a maradék, amitől a pdo szép kéne legyen, az szintaktikai varázslat.
Ha egyszer elkezdesz orm-et használni, akkor utána neked sem fog szépnek tűnni a pdo.Meg gondolom az általad használt megoldások is a "natív" PDO-t használják a háttérben.
Amikor még php fejlesztő voltam, akkor egy, a pdo-hoz hasonló saját wrapper-t használtam (használtunk), az sem volt szép így visszagondolva.
Kíváncsi lennék egyébként, hogy ha egy adott ORM lényegében egy "wrapper" a PDO-hoz, akkor az milyen overheadet jelent a gyakorlatban. (Már maga a plusz függvényhívások sokasága is overhead.)
A pdo az egy wrapper a mysql* függvényekhez, egy orm ennél sokkal bonyolultabb. (Persze, ez terminológia kérdés: általában a wrapper lényege az, hogy ad egy új interfészt, viszont könnyű súlyú, nem vezet be új absztrakciós szintet)
ORM-nél ha jól meg van csinálva a modelled, akkor az overhead alacsony, de azért el lehet rontani a dolgokat úgy, hogy jelentős legyen a lassulás. -
Soak
veterán
válasz
Sk8erPeter #10627 üzenetére
Tényleg félreértettem. Most már tiszta, köszi szépen.
A userek könyvtárát hagyjuk, mert hülyeséget mondtam vele
Szerk : Akkor ugye ennek example.com/profile.php?user=xyz lehet az az elérési utvonala, hogy /xyz .
Amúgy a GET értékeket akarom elrejteni (bár gondolom egyértelmű volt), biztonsági és esztétikai okokból . Meg, hogy a user fejből is tudjon linkelni.
sztanozs : Én is valami ilyesmi rendszerezésre gondoltam .
cucka : Nem igazán raktam még össze azt amit mondasz, de majd 2 hónap mulva leírom akkor mennyi jött át a hsz.-edből
.
Amúgy a PDO számomra teljesen logikus. Legalábbis az a része amivel eddig találkoztam. Az sem hátrány, hogy a php.net-en nagyon jól van dokumentálva és gyorsan megy a tanulás.
-
Sk8erPeter
nagyúr
"Egyébként olvasgatom az utóbbi hozzászólásokat, ti tényleg ezt a PDO-t használjátok? Olyan ocsmány az egész, szívem szerint bottal sem piszkálnám. "
Miért olyan botrányos? Ezerszer szebb, mint a régi mysql_query()-s bohóckodások...
Lehet használni ORM-et is, de ez is jól használható.
Kíváncsi lennék egyébként, hogy ha egy adott ORM lényegében egy "wrapper" a PDO-hoz, akkor az milyen overheadet jelent a gyakorlatban. (Már maga a plusz függvényhívások sokasága is overhead.)A Drupal is a PDO-t használja egyébként a háttérben, de ott is van hozzá egy elég jól használható "wrapper", ami szebbé és egyértelműbbé teszi a használatát.
Meg gondolom az általad használt megoldások is a "natív" PDO-t használják a háttérben. (Vagy legfeljebb a mysqli-t, de az mennyivel jobb? Semmivel, sőt.) -
cucka
addikt
Nem. Egy ilyen url routing szabály úgy néz ki, hogy mondjuk a
/users/{username}
útvonalat átírja úgy, hogy
/users.php?username={username}
Ez persze pszeudokódban van, a routing-ot sokféleképpen lehet intézni. Egy jól megoldott rendszeren jellemzően a php alkalmazás dönti el, hogy egy URI-hoz milyen kontrollert kell meghívni. A webszerver dolga ilyenkor csak annyi, hogy eldönti, ki tudja-e saját maga szolgálni az erőforrást (mondjuk statikus képeknél) vagy sem. Utóbbi esetben a php alkalmazás megoldja saját maga. Ez azért jó így, mert a programod viselkedése a programban lesz leírva, nem pedig egy külső program konfigurációs file-jában.Egyébként olvasgatom az utóbbi hozzászólásokat, ti tényleg ezt a PDO-t használjátok? Olyan ocsmány az egész, szívem szerint bottal sem piszkálnám.
-
Sk8erPeter
nagyúr
Hogy érted azt, hogy "aloldalt"? Ez egy alias, tehát nem fizikailag különálló könyvtár, vagy hasonló... egyszerűen egy leképezés.
Mondjuk van a
http://example.com/users/kisjozsi
ez egy alias erre:
http://example.com/user/231Utóbbira meg van egy .htaccess-szabály, vagy akár másik megoldással ez is egy alias pl. erre:
http://example.com/index.php?user_id=231
Ez csak egy példa a végtelen lehetőség közül.Igen, 10000 felhasználónál ugyanennyi alias lesz. (De nem "aloldal".)
Szerk.: most jövök rá, hogy szerintem félreérted az "alias" szót ebben az esetben. Ennek totál semmi köze a webszerver aliashoz (pl. Apache-ban van Alias kulcsszó). Ez egy URL alias, ami az alkalmazásodhoz kötődik.
Ilyet alkalmaznak a CMS-ek is (pl. Drupal), meg frameworköknél is lehet használni.Szerk. 2.: na várj, akkor most userhez tartozó könyvtárakról beszélünk? Mert akkor meg én is félreértettelek. Attól még, mert a userhez tartoznak könyvtárak, ahova mondjuk gyűjtögeti a fájljait (pl. a profiljához tartozó kép, vagy hasonló, ha nincs ömlesztve), attól még nem kell "aloldal", miért kellene? Egyszerűen a hozzá tartozó könyvtárba pakolod a hozzá tartozó fájlokat, és onnan húzod elő, ha szükséged van rá, azt' kész.
De ahogy már sztanozs is említette, léteznek alternatív megoldások, pl. a fájlokat gyűjtheted dátum szerint rendezve is, ez már kb. tök mindegy, csak tartsd nyilván, hol van. -
Soak
veterán
válasz
Sk8erPeter #10625 üzenetére
Ezt jól értem, hogy ha van mondjuk 10.000 felhasználo akkor a szolgáltatómnál 10.000 "aloldalt" fogok beállítani? Vagy mi ennek az automatizált módja?
-
Soak
veterán
válasz
Sk8erPeter #10623 üzenetére
Az most már benne van
. Furcsa így visszanézve mit össze szenvedek vele, ilyenkor meg már tök egyértelmű ...
Amúgy ha már itt vagyok akkor megkérdezem : Ugye a user mikor regel, akkor létrehozok neki egy mappát. A mappa neve a user id-ja lesz (adatbázisban lévő,auto increment, nem user input) . Azt meg tudom csinálni, hogy ha valaki ugye beírja, hogy www.example.com/Userneve akkor a .htaccess filet módosítva a link annak ellenére, hogy id szerint van a könyvtár betölti az oldalt? Vagy PHP-vel oldjak meg egy redirectet úgy, hogyha valós usernevet írnak be akkor azt a profilt töltse be (ugye ehhez az adatbázisba be kéne nézni)? (ez jobban hangzik, csak elsőre kicsit erőforrás igényes, de lehet csak paranoiás vagyok)
-
Sk8erPeter
nagyúr
"Neked nem mindig könnyen emészthető a stílusod viszont a kritikák egyértelműek és építőek."
Akkor ezt bóknak veszem, kösz!">>sztanozs korábban linkelt neked egy stackoverflow-s topicot, annak az alkalmazásával mi a helyzet? Nem látom a kódodban.<<
Ha erre gondoltál akkor nem értem hogy hogy nem látod mert benne van :
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );"Én erre gondoltam.
-
Soak
veterán
válasz
Peter Kiss #10621 üzenetére
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
Ez volt a hibás, mert a page elején benne volt egy funkcióba és onnantól kakukk. Mostmár mindenki tudja hány lába van
.
Köszönöm midenkinek aki segített vagy csak próbált
Szerk : Amikor beraktam elösször sem volt már jó, de akkor még azt hittem, hogy a kódban máshol van a hiba.
-
Soak
veterán
válasz
Peter Kiss #10619 üzenetére
Ugyanarról van szó mint eddig. Végig kell még bogarásznom az egész oldalt, mert semmi ilyen OOP dolog nem akar működni, de csak ezen az egy oldalon. (Persze egy mellette lévőben tökéletesen megy minden).
Amúgy itt egy példa:
global $db;
$sql = $db->prepare('SELECT events.* FROM events WHERE users_id = :id ORDER BY dateofcreation DESC');
$result_set = $sql->execute(array(':id' => 41));
$object_array = array();
while ($row = $sql->fetch($result_set)) {
$object_array[] = Event::instantiate($row);
}
var_dump($object_array);
foreach($object_array as $event){
echo $event->id;
}Itt megvan minden Object minden tulajdonsága.
-
Soak
veterán
válasz
Peter Kiss #10615 üzenetére
Ez elvileg megnézte, hogy van-e olyan attribute az objectnek mint ami a classban kéne legyen. (ezt azért csináltam, mert később az alap funkciókat össze akarom szedni és nem minden classnal ugyanazt a find_by_id -t bepötyögni ) .
Na de most teljesen meghülyűltem. Ha meghívom azt a funkciót aminek ki kéne raknia az objeceteket egy üres testpagen akkor tökéletesen működik
. Ha meg ott hívom meg ugyanazt, változtatás nélkül ahol kéne, hogy legyen akkor is megvan az object, de minden attribute értéke null.
Megint valami nyomi hiba van és már megőrülök tőle
szerk: Nem teljesen értem mi van, mert ha ki irtok minden változót akkor sem jó
. Mindent próbáltam már.
-
#68216320
törölt tag
válasz
Peter Kiss #10616 üzenetére
Rendben. Akkor próbálom kideríteni, de a tárhely olyan, hogy nem lehet spec. mime-type-okkal megetetni a php-t és ezért sokat nem ismer fel. Akkor marad az amit írtál. Köszi.
-
Peter Kiss
őstag
válasz
#68216320 #10605 üzenetére
Használni kellene a helyes mime type-ot, mert a force-download nem szabványos, nem definiált a működése, gyakorlatilag azt is írhatnád, hogy application/the-dark-knight-rises. Jobb híján:
header('Content-Type: application/octet-stream');A PHP ad támogatást a mime kiderítéséhez, ha valamiért ez nem sikerül, akkor használd az application/octet-stream-et, én legalábbis így gondolkodtam a fenti kód összerakásánál.
-
j0k3r!
őstag
nincs elottem most eles kornyezet, ezert nem tudom tesztelni, de elvileg a $queryString property kell neked: [link]
ugye tobb oldalrol is meg lehet kozeliteni ezt a problemat, egyreszt megnezheted mit kuldtel el a db server fele, erre jo a most leirt megoldas, masreszt megnezheted db server oldalrol, hogy oda mi jut el server oldalrol (ertsd: ahol a php scripted fut), erre meg a kulonbozo sql profilerek valok (sot meg sokkal tobbre is kepesek altalaban).
-
j0k3r!
őstag
"Az összes Objectet visszakapom, rendesen megvan minden attribute , csak épp mindegyik értéke null . Ha a limitet és offsetet kiveszem a kódból és csak egy useren keresem az összes képet akkor működik minden jól."
ebben az esetben valami sql profilerrel ranezhetnel, hogy milyen query jut el az adatbazisserverhez. (faek megoldaskent valahova (view, logfile, akarmi) kiirathatnad az osszerakott queryt, mielott lefuttatod)
-
Soak
veterán
válasz
Sk8erPeter #10606 üzenetére
Hogy mi? Nálad az $sql az egy módszer?
sztanozs korábban linkelt neked egy stackoverflow-s topicot, annak az alkalmazásával mi a helyzet? Nem látom a kódodban.
Ha erre gondoltál akkor nem értem hogy hogy nem látod mert benne van :
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );Nem értem mire mondod az ellenségeset, direkt leírtam, hogy azt már próbáltam és nem az volt a hiba, e mellé azt sem értettem, hogy mi nem tetszik. Neked nem mindig könnyen emészthető a stílusod viszont a kritikák egyértelműek és építőek.
Amúgy az instantiate() metódusod elég nyakatekert. Szerintem tipikusan olyan megoldás, amit szebben és egyszerűbben is megoldhatnál, de gyorsmegoldásnak annak idején megtette.
Ez így van. Viszont amíg nem megy 100%-ig minden funkció (magyarul élesíthető a rendszer) nem állok neki újra írni, mert sosem fejezném be, az időközben felszedett tudást majd a projekt végén teszem bele, akkor már lesz időm tökéletesre írni.
Tulajdonképpen akkor még mindig ugyanarról a query-ről van szó, amire sztanozs küldte a linket? Annak az összes értéke NULL?
Az összes Objectet visszakapom, rendesen megvan minden attribute , csak épp mindegyik értéke null . Ha a limitet és offsetet kiveszem a kódból és csak egy useren keresem az összes képet akkor működik minden jól.
-
Sk8erPeter
nagyúr
válasz
burgatshow #10588 üzenetére
"Ha a :változókat lecseréled kérdőjelre"
... akkor elveszíted a prepared statement BESZÉDESségének előnyeit.=======
(#10593) Soak :
"Amugy $sql-t szoktam használni, ez a testpagen volt"
Hogy mi?Nálad az $sql az egy módszer?
=======
(#10594) Lacces :
"csinálj egy die($query)"
Ilyet soha ne csináljon... or die('You shouldn\'t have done that!')!
=======
(#10602) sztanozs :
ez volt az ő kódjában:
$result_set = $query->execute(array($id,$per_page,$pagination));
Az execute() pedig boolt ad vissza.
Ott jól csinálta, bár a $query változónév itt nem túl találó, inkább félrevezető, a php.net-es példában látott $stmt változónév ennél jobban illik ide.=======
(#10600) Soak :
sztanozs korábban linkelt neked egy stackoverflow-s topicot, annak az alkalmazásával mi a helyzet? Nem látom a kódodban.
Egyébként Lacces itt jó példát mutatott, leszámítva az intek stringesítését, bár kicsit ellenségesen reagáltál a tanácsára.Amúgy az instantiate() metódusod elég nyakatekert. Szerintem tipikusan olyan megoldás, amit szebben és egyszerűbben is megoldhatnál, de gyorsmegoldásnak annak idején megtette.
Tulajdonképpen akkor még mindig ugyanarról a query-ről van szó, amire sztanozs küldte a linket? Annak az összes értéke NULL? -
#68216320
törölt tag
válasz
Peter Kiss #10604 üzenetére
Köszönöm, tökéletes
Annyi, hogy én
header("Content-Type: application/force-download");
használtam mindenre, mert rengeteg típus van és nem akartam vacakolni vele. Ez mennyire fogyasztható így szerinted? Működött mondjuk a teszt folyamán. -
Peter Kiss
őstag
válasz
#68216320 #10603 üzenetére
$httpContext->AddHeader('Content-Description: File Transfer');
$httpContext->AddHeader('Content-type: ' . $this->_fileInfo->MimeType(true));
$httpContext->AddHeader('Content-disposition: attachment; filename=' . \System\IO\Path::GetFileName($this->_fileInfo->FullPath()));
$httpContext->AddHeader('Content-Transfer-Encoding: binary');
$httpContext->AddHeader('Expires: 0');
$httpContext->AddHeader('Cache-Control: must-revalidate');
$httpContext->AddHeader('Pragma: public');
$httpContext->AddHeader('Content-Length: ' . $this->_fileInfo->Size());
$httpContext->TransmitFile($this->_fileInfo->FullPath());
$httpContext->FlushResponse();Content-disposition header-ben adhatsz meg fájlnevet (nyilván az összes infót állítsd be magadnak a header() függvénnyel, mert ez egy saját rendszerből szedett kód, de alapvetően így kell csinálni).
-
#68216320
törölt tag
Üdv Urak!
Egy feladat megoldásához szeretném kérni a segítségeteket, amelyet még csak részben sikerült megoldanom.
Egy fájl feltöltés/letöltés rendszert kell csinálnom.
A feltöltés rendben el is készült, amely átnevezi a feltöltött fájlokat biztonsági okból. SQL-ben tárolom az eredeti nevüket is.
Formátumok elég változóak, tulajdonképpen megkötés nélküliek, kivéve PHP.pl. Vadvirágok a mezőn.jpg -> xd15jzdd577d235.jpg (tárolva az eredeti név)
A letöltést kellene úgy megírnom, hogy a tárhelyen lévő xd15jzdd577d235.jpg fájl a felhasználónak már Vadvirágok a mezőn.jpg névvel kerüljön átadásra.
Ebben kérném a segítségeteket. Script is jó, de akár pár gondolat is a hogyan oldható meg kategóriában.
Remélem sikerült érthetően leírnom a problémát. -
sztanozs
veterán
$object_array = array();
while ($row = $query->fetch($result_set)) {
$object_array[] = self::instantiate($row);
}
return $object_array;Ez nem az alábbinak kellene legyen?
$object_array = array();
while ($row = $result_set->fetch(PDO::FETCH_OBJ)) {
$object_array[] = $row;
}
return $object_array;
Új hozzászólás Aktív témák
Hirdetés
- Mobil flották
- Formula-1
- Fájdalmasan gyenge kijelzőt válaszott a Switch 2-höz a Nintendo
- TCL LCD és LED TV-k
- Apple iPhone 15 Pro Max - Attack on Titan
- OLED TV topic
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Kormányok / autós szimulátorok topikja
- Honor 400 - és mégis mozog a kép
- Kerékpárosok, bringások ide!
- További aktív témák...
- Xiaomi 11T Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- !FELVÁSÁRLÁS! RTX 4090 KORREKT ÁRON AZONNAL
- GAMER PC - RYZEN 5 5500 / ASUS RTX 2060 / AORUS 16GB DDR4 / 512GB SSD / 500GB HDD
- BESZÁMÍTÁS! Sony PlayStation 4 PRO 1TB SSD fekete játékkonzol extra játékokkal garanciával hibátlan
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9700X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! Apple MacBook Pro 13 2022 M2 8GB 256GB SSD garanciával hibátlan működéssel
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060Ti 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged