Hirdetés
- Mobil flották
- iPhone topik
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Huawei Watch GT 5 Pro - egészség + stílus
- Windows CE fórum
- Yettel topik
- Google Pixel topik
- Samsung Galaxy Z Fold4 - egyre megy, honnan nézed
- Samsung Galaxy S21 FE 5G - utóirat
Hirdetés
-
Füstös rózsaszínben is elérhetők a Sony csúcsmodelljei
ma Az 1000X szériás fül- és fejhallgató kapott egy nőiesebb opciót.
-
Minden információt felhasználnak rólunk a közösségi cégek
it Az amerikai hatóságok szerint a közösségi média felhasználói nem igazán rendelkeznek irányítással azon adatok fölött, amit az AI-rendszerekkel megetetnek a nagy cégek.
-
SWORD ART ONLINE Fractured Daydream - Elindult a nyílt teszt
gp Az open béta rajtjával együtt a készítők egy hosszabb gameplay videóban magyarázzák el, hogy mire számíthatunk a játéktól.
Új hozzászólás Aktív témák
-
Tele von Zsinór
őstag
Az a probléma, hogy a get, post, cookie, request, env, server (azt hiszem, ennyi ) mind a bemenet vagy a környezet leírására lettek kitalálva. Mielőtt a scriptedig eljut a vezérlés, ezeket populálja a php azok alapján, amiket kívülről kapott - nem jó dolog ezek módosításával vezérelni az alkalmazásod, bárhol másutt nem várt következményei lehetnek.
-
-
Tele von Zsinór
őstag
válasz 8nemesis8 #3446 üzenetére
Inkább enum-nak tudnám elképzelni, ha már úgyis mysql-el dolgozol, és akkor nem csak kölcsönözhető/nem kölcsönözhető, hanem más állapotokat is le tud írni.
Amikor visszahozzák, beállítod, hogy kölcsönözhető, hasonlóan kivételkor azt, hogy nem.
Mysql-ben nincs bool, tinyint(1)-et szokás használni erre a célra. -
Tele von Zsinór
őstag
válasz chubby1980 #3560 üzenetére
Nézz meg egy olyat, hogy var_dump($_POST);
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3611 üzenetére
Még egy kis info: html-ben valid, ha nincs idézőjelben, xhtml-ben viszont invalid.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3625 üzenetére
A betöltődési sebességet PHP-ből nem tudod, csak a lefutási sebességet - ha ez is megteszi, akkor nézd meg a microtime() függvényt.
Ha fejlesztés alatt méregetnél, akkor YSlow, illetve PageSpeed. -
Tele von Zsinór
őstag
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3630 üzenetére
A https-es dolgokkal kapcsolatban ajánlom megnézni a Perspectives kiterjesztést - röviden annyi, hogy certet ellenőriz külső szerverekkel, és ha azok is azt kapják, amit te, ugorja is át a hibaoldalt. Ha szoktál idegen (egyetem, netkávézó) wifin netezni, akkor kötelező.
-
Tele von Zsinór
őstag
phpmyadmin exportban így néznek ki (kicsit egyszerűsítettem):
CREATE TABLE IF NOT EXISTS `tibia_news` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) default NULL,
`created_at` datetime default NULL,
`category_id` int(11) default NULL,
PRIMARY KEY (`id`),
);
INSERT INTO `tibia_news` (`id`, `user_id`, `created_at`, `category_id`)
VALUES (1, 2, '2009-06-22 00:00:00', 1);a nyelvfüggő adatokat tartalmazó pedig:
CREATE TABLE IF NOT EXISTS `tibia_news_i18n` (
`id` int(11) NOT NULL,
`culture` varchar(7) collate utf8_hungarian_ci NOT NULL,
`title` varchar(255) collate utf8_hungarian_ci NOT NULL,
`slug` varchar(255) collate utf8_hungarian_ci NOT NULL,
`body` text collate utf8_hungarian_ci NOT NULL,
PRIMARY KEY (`id`,`culture`)
);
INSERT INTO `tibia_news_i18n` (`id`, `culture`, `title`, `slug`, `body`)
VALUES (1, 'en', 'New newsticker item', 'new_newsticker_item', 'angol tartalom');
INSERT INTO `tibia_news_i18n` (`id`, `culture`, `title`, `slug`, `body`)
VALUES (1, 'hu', 'Új rövidhír', 'uj_rovidhir', 'magyar tartalom');[ Szerkesztve ]
-
Tele von Zsinór
őstag
-
Tele von Zsinór
őstag
válasz Speeedfire #3710 üzenetére
A kép alapján nem fut le a php scripted. Ugye localhost-on keresztül éred el, és nem máshogy?
-
Tele von Zsinór
őstag
-
Tele von Zsinór
őstag
válasz Krszti1660 #3751 üzenetére
Kérdezz, aztán meglátjuk.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3755 üzenetére
Ez így elsőre működő megoldásnak tűnik, de ha belegondolsz, messze nem jó - nézd például azt az esetet, hogy ?kv=/bin/false-al hívom meg. Is_file == true, aztán includeoláskor minimum a warning.
Jobb az, ha egy tömbben fel van sorolva az, hogy mik a valid értékek, és isset($tomb[$kv])-val nézed, másrészt: _nagyon_ nem jó a logikád a megjelenítéssel keverni. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3757 üzenetére
Úgy gondoltam, hogy válaszd külön az alkalmazáslogikát a megjelenítéstől - előbbiben semmit nem írsz ki, utóbbiban meg már nem nyúlsz adatbázishoz, sütihez, stb.
Valahogy így:kódod kezdete, session, adatbázis, ilyenek
kapott paraméterek alapján működés, megjelenítéshez szükséges dolgok összeszedése mondjuk a $view változóba, hogy egy helyen legyen
session_write_close(), mysql_close(), ilyenek
-határ-
kiírás, kezdve a doctype-al, mert eddig ugyebár semmi nem ment el a kliensnek, esetleges http fejléceken kívülHa egyszerűbben karbantartható kódot akarsz, akkor használj valami template motort, legnépszerűbb talán a smarty, ami kevés tanulás és megszokás után már remekül használható.
-
Tele von Zsinór
őstag
Továbbirányítanád a felhasználót? Tud ilyet a header(), ha location-t küldesz, tud ilyet a <meta/> refresh, de akár JS-el is tudsz ilyet csinálni. A legjobb a fenti három, valami minimális kimenettel, ahol leírod, hogy továbbirányítod, és raksz linket is, ha a fenti három tiltva lenne.
-
Tele von Zsinór
őstag
válasz Krszti1660 #3763 üzenetére
Definiáld, hogy átnézni. Ha auditra gondolsz, csekély valószínűséggel fogsz itt embert találni, még kevésbé olyat, aki ingyen megcsinálná. Inkább az álláshirdetések közé írj, pár mutatóval, mint mondjuk a php kód sorainak, meg az osztályoknak a száma, és talán kapsz pár árajánlatot.
Ellenben ha kérdésed van egy kódrészlettel kapcsolatban, azt nyugodtan felteheted itt. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3767 üzenetére
Szerintem félreértesz, és leszúrásnak veszed, amit írtam
Az nem tetszett a kódodban, hogy az egyik pillanatban még html-t írsz, aztán hirtelen jön egy <?php meg némi alkalmazáslogika, majd vissza html-be. Ez a keverés a nagyon egyszerű oldalaktól eltekintve mindig karbantarthatatlan spagettikódot eredményez, ezért próbáltam egy jobb javaslatot tenni.
Azt a doctypeot azért írtam oda, hogy egyértelműbb legyen, mit értek alkalmazás- és megjelenítéslogika alatt -
Tele von Zsinór
őstag
A header() azért warningolt, mert a hívása előtt már volt kimeneted. Ha jól sejtem, a kódod végez némi feldolgozást (mondjuk blogon írt kommentet ment), ezután akarsz átirányítani (mondjuk a post oldalára).
Akár tüntesd el az összes kiírást az előbbi scriptből (mert úgysem látja a user), vagy tüneti kezelésként az elejére rakj egy ob_start() hívást, amitől meg bár te kiírod, nem küldi el a kliensnek, és a kódodban bárhol mondhatsz header()-t. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3778 üzenetére
Az nem kerülhető el, hogy echo (vagy azzá fordítódó utasítás például smarty esetén) legyen a megjelenítéslogikádban, de ne ott kapjon értéket, ott már csak kiírva legyen - annyi a lényeg, hogy ha már elkezdtél kiírni, akkor tényleg csak kiírjál.
Ha már includeolok, akkor smartyt is használok, mert így a legegszerűbb megoldani a szétválasztást. Ha template motor nélkül vagy, nem is tudok szép szétválasztási módszert úgy, hogy includeolgatod a külön oldalakat az indexbe - ilyenkor marad a kavarás. Viszont egy olyan vizsgálat kell a legelejére, hogy létezik-e egyáltalán olyan, amit a user kért (ez egy array_search() hívás), mert ha nem, akkor a legelején dobhatjuk is a 404-re. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3790 üzenetére
Mit csinál másként a smarty?
A kimenetedet nem php-ben kell megírnod, hanem egy smarty által kitalált nyelvben, alapértelmezetten például a {$asdf} kiírja a megfelelő változót, de tud ifet, foreacht, meg sok egyebet, ami kell, hogy jól tudd használni. Kényelmes, és nem kell php-t tudnia annak, aki a felhasználói felületet készíti.
Ezt a kódot egyébként php-vé fordítja és cacheli, szóval az első lekérést nem számítva minimális az overhead.Egyébként erről az <<< EOFILE és <<< EOPAGE cuccokról miért nem lehet semmiféle leírást találni a php.net-en?
Pedig van Úgy hívják, hogy heredoc.
-
Tele von Zsinór
őstag
válasz Krszti1660 #3794 üzenetére
Ezt pontosan azért kapod, mert a db.php üres, az előző hsz-dben azt írta, hogy nem tudja létrehozni / módosítani. Kézzel írd bele az ide bemásolt kódból a $db_ változók értékeit, és remélhetőleg megjavul.
-
Tele von Zsinór
őstag
Meg.
Például használhatsz lockfile-t - futás elején ellenőrzöd, megvan-e, ha igen, kilépsz, ha nem, létrehozod, és csinálod, amit akarsz, a végén meg törlöd.
Érdemes a file dátumát is figyelni az elején, és valami értelmes timeoutot használni (bár létezik a file, 15+ perces tehát a folyamat vagy véget ért, vagy valami miatt már úgysem érdekes).
Oda kell figyelni az íráskor, de kis terhelésű rendszereknél jól működik. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3832 üzenetére
A RewriteBase arra jó, hogy megmondd, a /valami könyvtárban vannak a dolgaid, és ezt vegye figyelembe a többi szabálynál.
Az IfModule-nek annyi szerepe van, hogy nem 500-at kapsz, ha esetleg nem lenne betöltve - mert akkkor a Rewrite* szabályokat nem tudja értelmezni az apache, és jófejségből kapsz egy internal server errort.
Jellemzően nem szokták kikapcsolni (illetve inkább jellemzően be szokták kapcsolni), ha tudom, hogy x szerveren van mod_rewrite, törölni szoktam az IfModule tagokat, ezzel nyerve egy elhanyagolható sebességnövekedést. -
Tele von Zsinór
őstag
válasz Louloudaki #3859 üzenetére
Gyorsít, nem is keveset, mert a mysql elő tudja készíteni a queryt. Értsd: valamennyit optimalizál rajta, valahogy úgy, ahogy a prepared statement-ek is gyorsabbak, mint ha ugyanazt simán átadod.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3862 üzenetére
Swfupload vagy apc- + ajax.
-
Tele von Zsinór
őstag
válasz vakondka #3905 üzenetére
"Mit kell változtatni" listára egy todo-kezelőt ajánlok, én a remember the milket használom (online, ingyenes).
Elvileg olyat is tud, hogy kiosztasz másnak feladatot, ezt a részét még nem próbáltam."Mit változtattam" listára pedig egy verziókövető kell neked, mint a git vagy az svn.
[ Szerkesztve ]
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3936 üzenetére
Bármi string, amiben előfordul változó-behelyettesítés (legyen az "$változó" vagy "{$var}") lassabb, mint amiben nincs (de itt nincs különbség a ' és a " közt). Ilyen esetekben talán az sprintf() a leggyorsabb.
Külön kezelem a view réteget, így elég kevéssé kell stringekkel játszanom -
Tele von Zsinór
őstag
válasz Sk8erPeter #3938 üzenetére
Ha van benne változó-behelyettesítés, akkor sprintf-et használok. Még valamikor rég mértem, hogy hogy lesz a legjobb, ezt hoztam ki leggyorsabbnak.
Úgy értem, hogy van egy pont, ahol már nem nyúlok adatbázishoz, nem végzek alkalmazáslogikához tartozó dolgokat - phpből is kilépek, sima html jön. Ha mégis phpra van szükség, akkor echoval kiiratok valamit és vissza html módba, vezérlési szerkezeteknél pedig az alternatív szintaktikát használom.
Bár elsőre biztos kusza (részben mert teli van __() hívással a többnyelvűség miatt), de így néz ki egy template nálam. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3942 üzenetére
A __() is saját függvény Az első paraméterben kapott stringet fordítja a sessionben beállított nyelvre (ha tudja). Szintén saját a slot(), az url_for() meg esetleges egyebek is (nincs most előttem a kód).
Más az alkalmazás- és a megjelenítéslogika, amit ebben a kódban látsz, az utóbbi kategóriába tartozik. Nem nyúl például adatbázishoz vagy sessionhöz, csak olvas az eddigre feltöltött változókból. Épp csak annyi logika van benne, ami kell - máshogy nem is lehetne mondjuk egy táblázat sorait kiírni, vagy feltétel alapján ezeket színezni.[ Szerkesztve ]
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3945 üzenetére
Tulajdonképp ugyanarról beszélünk - van egy pont, ami előtt nincs kiiratás, és ami után nincs komplex logika.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #3947 üzenetére
Igen, így kérem le. Van benne még rendezés, oldalra szűrés, de a lényeg ez.
Az esetek 90%-ában elég, ha az általad írt módon, a legutolsó módosítás adatai megvannak, ha ez elég a megrendelőnek is, akkor meg is vagy. Ha mégsem lenne, akkor beleraksz még egy verzió (int) oszlopot, és egyesével növelgeted, selectben pedig a legnagyobb verziójút kéred.
Az életem egyszerűsítése kedvéért kapcsolótáblákat kivéve szinte mindenhova pakolok auto_inc elsődleges kulcsot, az _i18n táblába kivétel - itt az ős (itt: tibia_news) tábla auto_inc kulcsa és a nyelv együtt a primary key. Ide külön kapcsolótábla nem kell, egyszerű 1:n relációnk van.
Nem értem pontosan ezt a menüpontokhoz azonosítószámot dolgot. Úgy érted, hogy statikusra csinálod, és a főoldal mondjuk az 1, fórum a 2, stb.? Én maradnék ennél, ahelyett, hogy a menüpont nevét használom kulcsként - ki tudja, mikor kell majd átnevezni később, de az id-je nem fog változni. -
Tele von Zsinór
őstag
válasz Sk8erPeter #3961 üzenetére
Pufferelést úgy érted, hogy egy szép nagy stringbe összegyűjtöd a kimenetet, és egy sima echo-val kiiratod? Ez lassabb, mint az általam használt módszer - phpben a stringműveletek relative lassúak, és a te módszereddel rengeteg string-összefűzés lenne a kódban. Kisebb oldalaknál ez nem feltétlen jelent mérhető különbséget, de komolyabb kódbázisnál már érezhető is lesz. Valóban előfordul, hogy egy tömbön többször végig kell menned, de ezek túlnyomó többségét okos joinolással el lehet kerülni.
Új hozzászólás Aktív témák
Hirdetés
- Nintendo Switch Joy-Con Pair Gamepad, kontroller
- GAMER PC: i5-12400F/13600KF - RX 6700 XT 12GB GDDR6 - 1TB-4TB NVMe SSD - 16/32GB DDR4- GAR/SZÁMLA!!!
- Lenovo IdeaPad S145-15API
- Playstation 5 Slim digital version(számlával és több mint 1,5 év garival)
- Eladó XBox Series X 1TB SSD + 2 kontroller + tartozékok + játékok + Game Pass Ultimate
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen