Hirdetés
- Kormányok / autós szimulátorok topikja
- Ajánlatott tett a Qualcomm az Intelért?
- Mini-ITX
- Apple notebookok
- TCL LCD és LED TV-k
- Milyen billentyűzetet vegyek?
- iPad topik
- Milyen videókártyát?
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
Hirdetés
-
Premier előzetesen a Broken Sword - Shadow of the Templars: Reforged
gp A klasszikus játék új kiadása az elmúlt hétvégén végre játszható lett.
-
Amazon Fire TV Stick 4K Max
lo A Müncheni Országos Bíróság helybenhagyta a Nokia keresetét. A panasz szerint jogsértést követett el az Amazon. mert...
-
HMD Skyline - jó szerelés
ma Az eddigi legnagyobb tudású HMD telefon lépett piacra, ami külsejében a Lumia modelleket idézi, más szempontból viszont az utóbbi évek Nokiáinak problémáit hurcolja tovább.
Új hozzászólás Aktív témák
-
Tele von Zsinór
őstag
-
Tele von Zsinór
őstag
<?php
$data = array(
array("1.1", "1.2", "1.3"),
array("2.1", "2.2", "2.3"),
//ide a többi sor
);
foreach($data as $row) {
echo sprintf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n", $row[0], $row[1], $row[2]);
}ilyesmire gondoltál? A sorokat tárold egy-egy tömbben, ne az egyes mezőket, így ennyire leegyszerűsödik a dolgod.
-
Tele von Zsinór
őstag
válasz Speeedfire #5141 üzenetére
Ha adminfelületen csinálod a backupot, az el lesz felejtve. Legyen automatizálva crontabbal, töltse fel valahová, vagy küldje el mailban. Én az utóbbi megoldást használom.
-
Tele von Zsinór
őstag
válasz x123456 #5173 üzenetére
Az utólagos szerkesztést többféleképp lehet megoldani:
- csak az eredetit tárolod - szerkesztés egyszerű, de minden oldallekéréskor konvertálni kell
- tárolod az eredetit és a konvertáltat is - hasonlóan egyszerű, gyorsabb, de több a helyigénye
- csak a konvertáltat tárolod, és szerkesztéskor visszaalakítod - azon az elven, hogy a szerkesztés egy viszonylag ritka művelet. megjelenítés egyszerű és gyors, szerkesztéshez viszont a visszaalakítást is meg kell oldanodAz említett időkorlátos szerkesztésnél tudom azt elképzelni, hogy kezdetben az eredetit tárolod, ám van egy cronjob, ami a lejárt időkorlátos postokat konvertálja. Megjelenítéskor figyelni kell, konvertált-e már, de azt hiszem, ez az arany középút.
Az, hogy "általában", még nem mentség arra, hogy ne foglalkozzam vele Főleg, ha ennyire egyszerű dologról van szó. Általában az az elv érvényesül, hogy a tárhely olcsóbb, mint a CPU-idő.
[ Szerkesztve ]
-
Tele von Zsinór
őstag
És kicsit az eredeti BBCode vs. HTML témához (csak így, nem válaszként): ismerni kell a közönséget, és annak fényében dönteni. Mikor blogmotort írtam magamnak, html-t használtam, egy sima textareába azt írtam, amit akartam. Kommenteknél egyértelműen bbcode volt, mentéskori konvertáláskor. Ennek most már több éve.
Újraíráskor már mindkét helyen a Markdown nyelvet lehetett használni egyszerűsége és olvashatósága miatt, bejegyzéseknél mindkét változat tárolásával, kommenteknél mentéskori konvertálással, és természetesen mentés előtt egy strip_tags hívással.
[ Szerkesztve ]
-
Tele von Zsinór
őstag
válasz x123456 #5190 üzenetére
Részben igazad van, de lehet használni kész libeket is. Olyanokra értem, amik tudják javítani a kódot, hogy ne legyen például lezáratlan tag, a Pear-ban is van hasonló, de ha jól sejtem az is megoldható, hogy egy DOMDocument objektumba betöltöd, amit akarsz, aztán megkéred, hogy csináljon belőle normális kódot. Pár hónapja kezdtem el kísérletezni a php dom objektumaival, eszméletlenül rossz kódot is szépen megevett, és utána tudtam elemezni xpath-kifejezésekkel.
-
Tele von Zsinór
őstag
válasz Gergello #5224 üzenetére
Ha nem csak magyarok érdekelnek, nézd meg a ServerGrove VPS csomagjait.
-
Tele von Zsinór
őstag
válasz Speeedfire #5318 üzenetére
Első blikkre rögtön gyanús, hogy nincsenek idézőjelek a string értékeid körül. Mutasd a queryt, ami a hibát okozza.
-
Tele von Zsinór
őstag
válasz Speeedfire #5321 üzenetére
Tegyél idézőjelet minden érték köré, lásd `mezőnév` = "érték", azt látom, legalább a mysql_real_escape_string() hívás megvan. Számok köré is, ha a felhasználótól kapod.
-
Tele von Zsinór
őstag
Ezzel egyben megkapod a rendeléseket a hozzájuk tartozó nevekkel:
SELECT r.*, f.Vnev, f.Knev FROM rendeles r INNER JOIN felhasznalok f ON r.userid = f.id;
A kódodban a hiba az, hogy a mysql_query visszatérési értékét írod ki, de az csak egy erőforrás-mutató (de hülyén hangzik magyarul, resource pointer), erre még meg kell hívnod egy mysql_fetch_arrayt, hogy megkapd az első sort egy tömbben.
-
Tele von Zsinór
őstag
válasz Speeedfire #5399 üzenetére
Biztonsági szempontból semmi különbség nincs a get és a post között. Mindkettő felhasználótól származó adat, ergo megbízhatatlan.
-
Tele von Zsinór
őstag
válasz Speeedfire #5410 üzenetére
Valóban, kb. 3 kattintással több post adatot átírni, mint getet. És ékezetes karakterekkel sincs különbség, a böngésző elintéz mindent.
-
Tele von Zsinór
őstag
válasz Peter Kiss #5409 üzenetére
Aki belépést get-tel old meg, az meg is érdemli. Arról nem is beszélve, hogy egy login folyamat megváltoztatja az alkalmazás állapotát, így post-ot kell használni szabvány szerint.
-
Tele von Zsinór
őstag
válasz Speeedfire #5418 üzenetére
A kódod egy sort kivéve jónak tűnik, ez pedig a return false;. Használd helyette az e.preventDefault();-ot, ahol e a click függvény paramétere. Itt szépen leírják, miért.
Röviden: a return false; ekvivalens azzal, hogy e.preventDefault(); e.stopPropagation();, azaz megakadályozza a többi eseménykezelő futását, amiknek amúgy le kéne (mert mondjuk ugyanarra az elemre vannak kötve, vagy valamelyik szülőjére).
-
Tele von Zsinór
őstag
válasz Sk8erPeter #5423 üzenetére
Azért, mert ez nem a működését befolyásolja, hanem a többi eseménykezelővel való viszonyát. Az általam mondott problémába akkor fog belefutni, amikor több eseménykezelője van egy elemcsoportra.
-
Tele von Zsinór
őstag
válasz Speeedfire #5425 üzenetére
Így legyen: "click", function (e) {
Másrészt: tedd fel a firebug kiterjesztést, és akkor pontosan tudni fogod, ajax-e vagy sem (a console fülön naplózza az ajax kéréseket, elég részletesen - sok egyéb nagyon hasznos funkciója mellett).
[ Szerkesztve ]
-
Tele von Zsinór
őstag
válasz Speeedfire #5433 üzenetére
A nagyobb JS frameworkök (a jQuery is) beállít egy "X-Requested-With" fejlécet az ajax kéréseknél, ennek létét vizsgálva el tudod dönteni, hagyományos kérés-e vagy ajaxos.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #5457 üzenetére
Leegyszerűsítve annyi, hogy az egész kód egy szép nagy try-catch blokkban van, vannak ezen belül újabb blokkok, de ami eddig eljut (a végén minden Exception-ból származót elkapok) az egy szép "internal server error" oldalra irányít - logolás után, persze.
A bentebbi blokkok felelősek a specifikus hibákért (db kapcsoódási hiba, query hiba, függvényhívásnál hiba, akármi); de van egy legkülső blokk, ami elkap minden mást (vagy amit hagyok eddig eljutni), a felhasználó nagyon kivételes esetektől eltekintve mindig kap egy értelmes oldalt.
A PDO hasznos dolog, manapság már mindenütt engedélyezve is van, de ha más adatbázismotorra állsz át, ugyanúgy át kell nézni az összes querydet.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #5462 üzenetére
Gyakorlatban van pár saját hibaosztályom (mind az Exception-ből származtatva), ezeket dobom a megfelelő helyeken - értelmes message paraméterrel, mert az bekerül a logba.
Egyszerűsített példa:
<?php
try {
// ide jön az egész oldal
}
catch (Exception $e) { // nem minden hiba jut el idáig, de legkésőbb itt elkapjuk őket
//$e logolása
//hibaoldal
}Hibaoldal az kb. annyi, hogy az alap design köretbe bekerül egy "olyan hiba történt, amire nem voltunk felkészülve, de ne aggódj: értesültünk róla" jellegű szöveg.
Hibakezelés részben még vizsgálhatod, honnan érik el az oldalt (localhostról nézve jó eséllyel te vagy) és akkor meg kiírod a $e-t, melyik file és hol dobta, esetleg stack trace.
Nem tudom, mennyire mennek a régi, mysql_query()-nek átadott kérések a pdo-n keresztül, nálam a kódom és a pdo közt van még egy réteg, és az írja meg nekem a queryket
-
Tele von Zsinór
őstag
válasz Sk8erPeter #5461 üzenetére
Az apache csinálja, de nem emlékszem, melyik beállítás miatt.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #5486 üzenetére
Ne gondolj semmi komolyra, üres osztályok ezek, a lényeg annyi, hogy a típus más legyen (mert ez alapján működik a catch blokk). Azért az SPL hibaosztályaival is illik tisztában lenni, sokmindent lefednek gyárilag.
-
Tele von Zsinór
őstag
válasz fordfairlane #5517 üzenetére
A lényege tényleg ennyi: egy bonyolult queryt (sok joinnal, szűréssel, akármivel) csak egyszer kell megírnod, utána pedig a viewt használod.
Előnye, hogy mivel a select parancs előre ismert, optimálisan tárolhatja az adatbázismotor - ergo potenciálisan gyorsabb. És mivel nem a te kódodban van tárolva, több helyről (programból) használható ugyanúgy. -
Tele von Zsinór
őstag
válasz fordfairlane #5519 üzenetére
Netbeans. Nem egy száguldó idegbeteg (jópár perc, mire elindul), de szeretem.
-
Tele von Zsinór
őstag
válasz Sk8erPeter #5523 üzenetére
Erre már érdemes lehetne, ha nem lenne benne a $page alapján négyféle kimenet.
Három megoldás jut eszembe hirtelen:
- a problémát okozó join marad php kódban, a többi megy viewbe, és ahhoz joinolsz
- a $page-től függő feltétel marad php kódban, select-kor where-rel szűrve
- írsz egy tárolt eljárást, mert annak tudsz paramétert átadni, és az rakja össze a teljes, $page alapján szűrt queryt (meg a $data_needed alapján is, ha már tárolt eljárás)Sajnos view-t nem lehet paraméterrel létrehozni.
A szintaktika egyszerű, a második megoldáshoz így csinálnám:
CREATE OR REPLACE VIEW valami AS
SELECT * FROM tbl_img
INNER JOIN tbl_ossze ON tbl_ossze.kep_id = tbl_img.kep_id
INNER JOIN tbl_kutya ON tbl_kutya.kutya_id = tbl_ossze.kutya_id
INNER JOIN tbl_torzskonyv ON tbl_kutya.torzskonyv_id = tbl_torzskonyv.torzskonyv_id
ORDER BY tbl_kutya.nev ASC ; -
Tele von Zsinór
őstag
válasz Sk8erPeter #5535 üzenetére
Nem tudom, hogy lehet csak egy-egy mezőt átnevezni úgy, hogy közben a *-ot használod a mezők kijelölésére. Alternatíva lehet, hogy select * helyett csak azokat jelölöd ki, amik majd kellenek.
A tárolt eljárások egy sql-hez hasonlító nyelven megírt függvények, amiket az adatbázisszerver tárol és futtat. Lehet paraméterük, visszatérési értékük, stb., de ilyenekkel még csak oracle-ben foglalkoztam. Manual szerint a mysqlben is van hozzá valamennyi támogatás.
-
Tele von Zsinór
őstag
Ne használj ereg* függvényeket, deprecated mind, és el is fognak tűnni. Próbáld ki ezt: [link]
<?php
/**
* This function validates an email address, returning an integer
* depending on whether or not the email address provided is valid.
* A positive match will yield a result of 1, while a negative match
* will yield a result of 0. FALSE will be returned if an error occurred.
*
* @param string $email The email address to validate.
* @return integer The result of the validation.
*/
function isValidEmail( $email = null )
{
return preg_match( "/^
[\d\w\/+!=#|$?%{^&}*`'~-]
[\d\w\/\.+!=#|$?%{^&}*`'~-]*@
[A-Z0-9]
[A-Z0-9.-]{1,61}
[A-Z0-9]\.
[A-Z]{2,6}$/ix", $email );
} -
Tele von Zsinór
őstag
válasz egyjotakaro2 #5591 üzenetére
31. sorban id=$id"; helyett id=" . mysql_real_escape_string($_GET["id"]);. És remélem, a teljes kódodban van valamennyi autentikáció.
-
Tele von Zsinór
őstag
-
Tele von Zsinór
őstag
válasz TomyLeeBoy #5631 üzenetére
A script kimenetében nézd meg a formot, azt kell magadhoz átmásolnod.
-
Tele von Zsinór
őstag
válasz csaresz002 #5633 üzenetére
Nem tudok olyan ingyenes szolgáltató, ahol működne a fsockopen().
-
Tele von Zsinór
őstag
válasz csaresz002 #5649 üzenetére
A tárhelyszolgáltatóddal egyeztess, ezzel a hibával te nem tudsz mit kezdeni.
-
Tele von Zsinór
őstag
válasz csaresz002 #5673 üzenetére
Helyben fejlesztesz, így megúszod a feltöltést. Segíthet még a ReCSS bookmarklet.
Új hozzászólás Aktív témák
Hirdetés
- Abarth, Alfa Romeo, Fiat, Lancia topik
- Milyen okostelefont vegyek?
- Kormányok / autós szimulátorok topikja
- Ajánlatott tett a Qualcomm az Intelért?
- Fűzzük össze a szavakat :)
- Amazon Prime Video
- Mini-ITX
- Filmvilág
- Samsung Galaxy A34 - plus size modell
- WLAN, WiFi, vezeték nélküli hálózat
- További aktív témák...
- Logitech Harmony Elite
- ThinkPad T460 14" FHD IPS i5-6300U 8GB 512GB SSD ujjlolv dupla akku gar
- Samsung Galaxy Tab A9+ 5G 64GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 13 Pro+ 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo ThinkPad T14 Gen1:Ryzen 5Pro 4650U/16GB/512GB NVMe SSD/14"FHD,IPS,Matt/Win 10Pro
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen