Új hozzászólás Aktív témák
-
Sleed
aktív tag
válasz Sk8erPeter #15864 üzenetére
Nagyon szépen köszönöm a segítséged, átnéztem a kódot, tényleg elegánsabb megoldás mint a másik, és teljesen univerzális. Mindig örülök ha tanulhatok valami új dolgot, ami a későbbiekben még biztosan hasznomra lesz.
-
Joci93
senior tag
válasz Sk8erPeter #15868 üzenetére
Csatlakozás:
$bd = mysqli_connect("127.0.0.1", "*****", "******", "test") or die("Nem sikerült csatlakozni");
Az "egyedi" változónevekről én tudom, hogy micsoda és az szerintem bőven elég, bár igazad van...tényleg lehetnének kicsit beszédesebbek.
PDO-val tényleg sokkal szebb. Lehet, hogy el is kezdem elemezni. KöszönömFurcsa, több ezer emberrel találkozunk és egyik sem fog meg igazán. Aztán megismerünk valakit, aki megváltoztatja az életünket. Örökre.
-
Joci93
senior tag
válasz Sk8erPeter #15870 üzenetére
Köszönöm
"A kódod legyen később általad és akár más által is olvasható." Igaz, át is fogom írni őket.Jelenleg Eclipse-t használok.
Furcsa, több ezer emberrel találkozunk és egyik sem fog meg igazán. Aztán megismerünk valakit, aki megváltoztatja az életünket. Örökre.
-
fordfairlane
veterán
válasz Sk8erPeter #15883 üzenetére
20-30 percig tartó műveletnél szerintem az emailes értesítés a legmegfelelőbb.
x gon' give it to ya
-
Speeedfire
nagyúr
válasz Sk8erPeter #15883 üzenetére
Az újabb jQuery-ban csak aszinkron van, itt nem lehet gond szerintem.
Ezt a poll-t néztem én is (pl rabbitmq). Nem tudom mennyire lehet jó megoldás, nem foglalkoztam még ilyennel.
Illetve egy ilyen rendszert milyen nehéz lehet lefejleszteni pluszban. Mert egyszerűbb message táblán én is agyaltam már, amihez lenne egy ajax kérés pl setTimeout-tal, ami mindig bekérdez. Ez lenne a legegyszerűbb, de gondolom nem túl elegáns és erőforrás igényes.Van pár ember aki napi 8 órában használja a felület. Szóval egész nap meg van nyitva. Nézi az email-eket is folyamatosan, de ha már ott ül előtte, akkor lássa is az eseményeket, amik a háttérben lefutottak.
fordfairlane: Van az is, viszont a felületen szeretném jelezni az eseményeket.
mobal: Ne akard tudni.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Joci93
senior tag
válasz Sk8erPeter #15900 üzenetére
Így gondoltam, csak fogalmazni nem tudok....köszi, hogy kijavítottál illetve köszi a választ is.
fordfairlane: Köszi, úgy érzem, hogy nagy fába vágtam a fejszém...
Furcsa, több ezer emberrel találkozunk és egyik sem fog meg igazán. Aztán megismerünk valakit, aki megváltoztatja az életünket. Örökre.
-
Speeedfire
nagyúr
válasz Sk8erPeter #15901 üzenetére
Megnéztem mindent, de úgy néz ki rendben van. Async van beállítva, kipróbáltam hogy az ajax-ba beleírtam az async: true attributumot, de ugyan az. Lehet, hogy az apache szopat.
Ezt a long-poll-t néztem már, lehet ez lesz. Vagy ami nagyon jó lehet (de ez már agyúval veréb eset) az a websocket. Elég durva dolgokat lehet vele csinálni.
Köszi az infókat.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
sztanozs
veterán
válasz Sk8erPeter #15918 üzenetére
Tudom, főtt is miatta a fejem
De hirtelen nem találtam procedurális példát, csak class alapút, és nem volt kedvem az egészet átírni osztály típusúra...Agony: Mi lenne ha megnéznéd a példámat és megpróbálbád megérteni? Pontosan azt csinálja, amit szeretnél.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz Sk8erPeter #15928 üzenetére
Igen viszont a mysqli_stmt_fetch nem array-be pakol, hanem a
táblamezőneveknek megfelelő változókba (ami szerintem legalább akkora probléma, mint az összefűzött sql string).
Prepared-nél pedig nem találtam fetch_assoc-ot, ami az elvárható lenne. Persze ott van mysqli_stmt_bind_result, de hogy még azzal is sz@rakodni kelljen - főleg nagy számú mező esetén - na erre írtam, hogy nem akrtam előröl megírni az egészet - persze így is hamut szórok a fejemre (meg átkokat a php fejlesztőire, hogy miért nem lehet konzekvensen fejleszteni).[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
PumpkinSeed
addikt
válasz Sk8erPeter #15928 üzenetére
Miért kellene? Van egy ilyen script amit csináltam, hogy a számítógép indulásakor elindul és figyeli az időt este 8:00-kor pedig automatikusan kikapcsolja a gépet. Szerintem ilyen módszerrel a PHP állomány megnyitása se lehetetlen, vagy mégis? Nem tudom.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
PumpkinSeed
addikt
válasz Sk8erPeter #15936 üzenetére
Az úgy jött létre, hogy a néni aki az unokájának bekapcsolja a gépet nem fogja minden alkalommal beállítani az "operációs rendszerbe beépített ütemezett feladatokat" hanem csak kettőt kattint mikor az unoka használja és kész is.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
PumpkinSeed
addikt
válasz Sk8erPeter #15938 üzenetére
Hirtelen ez jutott eszembe, nem volt túl sok időm kitalálni, hogy mi is legyen.
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
honda 1993
senior tag
válasz Sk8erPeter #15992 üzenetére
igaz ami igaz.
legkozelebb inkabb csak akkor irok ha mar lenyugodtam.
XD alias IKSZDé
-
PumpkinSeed
addikt
válasz Sk8erPeter #16016 üzenetére
Tutira nem említi azért azt a 20 oldalt amiben az OOP-t tárgyalja átolvastam. Megnéztem egy pár magyar nyelvű PHP-val foglalkozó könyvet, és ez volt a legfrissebb és jobb is szerintem. Attól függetlenül, hogy a prepared statmenteket nem tárgyalja egy jó alapot ad és abból már könny elsajátítani a továbbiakat.
Megnézem, lehet a rPI-n ki van kapcsolva.. 5.4.4 van fent.
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
19.Norbika
csendes tag
válasz Sk8erPeter #16016 üzenetére
Mondjuk a legtöbb kezdőknek szóló könyv nem foglalkozik komolyabban ezzel a témával. Ahogy sok mással sem. De a piacon elérhető magyar nyelvű könyvekből ez az egyik legértelmesebb. Persze mint mindennek ennek is van hibája, de azért falba csak akkor verd a fejed, ha tájékozódtál is
Nightvis | www.nethq.hu - html,php,js,jquery,c#,sql programozás
-
19.Norbika
csendes tag
válasz Sk8erPeter #16020 üzenetére
A könyv tartalmából elég egyértelműen következik, hogy kezdőknek szól. Gyorsan rákerestem a tartalomjegyzékre.
Mi a PHP? 2
Mi a MySQL? 2
Miért használjunk PHP-t és MySQL-t? 2
A PHP legfőbb erősségei 3Várhatóan aki már találkozott magával a nyelvel, annak nem kell bemutatni sem. Szóval fogadjuk el, hogy ez egy kezdőknek szóló könyv. A legtöbb magyar nyelvű könyv már több éves. A piacon található könyvek közül ajánlottam olyat, ami a lehető legtöbb témával foglalkozik. Márpedig ha kicsit is utána néztél volna ( amit vélhetően nem tettél meg ) akkor belátnád, hogy ez a könyv elég sok témát érint és így nagyobb rálátást ad a nyelv lehetőségeire. Mivel mind tudjuk, egy nyelvet csak könyvből nem lehet megtanulni, így az sem elvárható, hogy mindennel foglalkozzon amivel te vagy én szeretném. Nem MVC pattern szerint fejlesztenek benne, hozzá sem szagol a TDD vagy BDD-hez, meg sem említi mi az az ORM és DAO, stb. Ha rajtam múlna, akkor egy sor procedurális kód nem születne benne, hanem a hello world is OOP lenne. Már csak a hozzászoktatás miatt is. De itt nem arról van szó, hogy szerintem mi a jó. Pedig 2014-ben a rendes OOP szintén alap.
A kérdező válaszára én is válaszoltam. Ezzel nem cáfoltalak meg téged, sőt még csak meg is erősítettelek. Az már végképp érdekes, hogy ezzel neked mi a bajod. Keveset aludtál?
Ötlet. Zárjuk le ezt a végtelenségig húzható témát Ha egyszer valamikor összefutunk, akkor egy sör mellett megvitatjuk
Nightvis | www.nethq.hu - html,php,js,jquery,c#,sql programozás
-
PumpkinSeed
addikt
válasz Sk8erPeter #16016 üzenetére
Megkaptam a hibaüzenetet.
Fatal error: Call to undefined method mysqli_stmt::get_result() in /var/www/img_share/reg_log.php on line 29
Rákerestem, de mindenhol a mysqlnd driver hiányára hivatkoztak, amit telepítettem is, de így sem változik semmi.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
kemkriszt98
aktív tag
válasz Sk8erPeter #16074 üzenetére
Na ezt pl. még senki nem mondta nekem Megjegyzem...
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
-
PumpkinSeed
addikt
válasz Sk8erPeter #16077 üzenetére
"...teljes egészében HTML, JavaScript, és egyébb webes alkamlazás API-k segítségével íródtak."
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
PumpkinSeed
addikt
válasz Sk8erPeter #16081 üzenetére
Fél 4-kor letöltöttem a PHPMailer-t.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
kemkriszt98
aktív tag
válasz Sk8erPeter #16174 üzenetére
Nem tudok írni, bocs
Egyébként tudom mi az a parancssor csak az nem volt világos, hogy mit is kellene parancssorból futtatni de ha géphez jutok megnézem...Amúgy annyira nem értek hozzá de gondolom osztott tárhelyen van... Azt tudom, hogy béreltünk egy szervert 1 euro/hó (+ ÁFA, Domain stb...)
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
-
kemkriszt98
aktív tag
válasz Sk8erPeter #16183 üzenetére
Miután írtad már megértettem csak azért nem próbáltam még ki mert eddig csak egy telefon volt nálam... egyébként, hogy biztos legyen: cmd-be beírom azt a sort kicserélve az elérési útvonalakat (phpt gondolom a wamp mappájában kell keresnem) aztán enter ozt' lássuk mi lessz? A másik dolgot ( a cron tesztelését) is ki fogom próbálni (biztos ami biztos) de gondolod, hogy az nem elég, hogy egy error_log fájlba megkapom a PDO által hajított kivételt?
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
-
kemkriszt98
aktív tag
válasz Sk8erPeter #16183 üzenetére
Na szóval... kipróbáltam
parancsbólhelyett parancssorból futtatni.. minden jól működik... egyébként most, hogy hazaértem van kód is... remélem most jön az a rész, hogy egy pillantás alapján megmondja valaki a probléma okát és én megfogadom (megint ), hogy nem rakok fel kérdést kód nélkül..."Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
-
kemkriszt98
aktív tag
válasz Sk8erPeter #16203 üzenetére
1. Az if-nek az a története, hogy mikor anno ajánlottad a mysql_connect() helyett a PDO-t akkor még feltett szándékom volt NEM megtanulni a PHP-t így nem is nagyon néztem, hogy mit vágok ki a példakódokból... de át fogom írni úgy ahogy az előbb tanácsoltad...
2. Bemásoltam itt
3.Igen, ha beírom a böngésző címsorába írom vagy parancssorból futtatom akkor minden tökéletes.
4.A beírt parancsot is megosztottam (akkor te is hozzászóltál) és azt mondtátok, hogy jó... mást meg nagyon nem írhattam el mert a pontos idő beállítása grafikus felületen történik...Egyébként azóta a szolgáltató közölte, hogy be kell állítani a portod de úgy se nagyon működik....
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
-
tothjozsi96
addikt
válasz Sk8erPeter #16212 üzenetére
Néztem a var_dump-al és print_r-el is, szépen kiír mindent, de értelemszerűen ürítve lenne a fal, igazából naponta törlődne a memcache-ből az értéke, mellesleg txt fájlba van mentve minden napról mentés is hogyha valami fontosról volt szó vagy valaki káromkodott és törölte.
Meg próbálom ezt az "ágyazott foreach-ciklus"-t megvalósítani.
Köszi! -
tothjozsi96
addikt
válasz Sk8erPeter #16217 üzenetére
Mivel ez az üzenőfal iframe-el működik ezért alapból túl nagy sebesség különbözet nincsen ránézésre.
Tehát egy átlag felhasználó nem fogja észre venni ...
Köszi, és megnézem! -
tothjozsi96
addikt
válasz Sk8erPeter #16219 üzenetére
Megvilágosodtam kicsit, értem már hogy kell kiolvasni, de van egy problémám.
Hogy tároljam úgy hogy az előző üzenetek is megmaradjanak???
Mivel a memcache úgy működik hogy van 1 kulcsom és azon belül vannak az adatok.
Na most, hogy tároljam az előző üzeneteket is?
Így lehetne hogy $memcache->set("uzenofal", $_GET["text"] . $regiuzikCsak így az a baj hogy nincsen elválasztva hanem egybe van az összes üzenet.
Mert . van ott, de ha beírom hogy , akkor nem menti el.Ezt nem értem hogy lehetne ...
-
tothjozsi96
addikt
válasz Sk8erPeter #16222 üzenetére
Oké, mindjárt megnézem mit csinál erre.
Jó lenne nagyon ez a memcache üzenőfal.
Kicsit már lemondtam róla.Na, így már faxa!!!
array(4) { [0]=> array(2) { ["id"]=> int(1) ["text"]=> string(11) "első üzenet" } [1]=> array(2) { ["id"]=> int(2) ["text"]=> string(14) "második üzenet" } [2]=> array(2) { ["id"]=> int(3) ["text"]=> string(15) "harmadik üzenet" } [3]=> array(2) { ["id"]=> int(4) ["text"]=> string(15) "negyedik üzenet" } }
Ezt adja vissza var_dump-al, tehát működik.
Már csak azt kellene megfejtenem hogy hogy mentsem el az új adatot és a régit egyben! -
tothjozsi96
addikt
válasz Sk8erPeter #16224 üzenetére
Kicsit megnézegettem ezt a Memcache->add-ot.
Ez kb. arra jó hogy egyszer beállít egy fix értéket, ami utána nem módosul, max. ha lejár a memcache ideje.
Akár mit írok be már nem írja felül az értékét a kulcs-nak.Jelen esetben nem jobb mint a set ...
[ Szerkesztve ]
-
tothjozsi96
addikt
válasz Sk8erPeter #16227 üzenetére
Nem értjük egymást.
Nekem az a problémám hogy nem tudom tárolni a régebbi bejegyzéseket is.
Mindig csak az ujjat írja fel, a régi megy a levesbe.Tehát, a memcache set úgy működik hogy mindig újra írja az egész kulcs értékét.
Na most, így mindig elveszik az "előző" üzenet.Tehát, valahogy tárolnom kell a GET tartalmát és a memcache előző tartalmát.
Így érted?[ Szerkesztve ]
-
tothjozsi96
addikt
válasz Sk8erPeter #16230 üzenetére
De, tehát ezt a szerver tárolja.
Szóval mindenki "kliens" látja."Miért nem kéred le felülírás ELŐTT az előző értéket, fűzöd hozzá ehhez a tömbhöz az új értékeke"
Ezzel próbálkozok, de nem megy ...
ÁÁÁÁÁÁÁÁÁÁÁ
De így most szupi!!!$valami = array(
array("id" => $_GET["id"], "text" => $_GET["text"]));
foreach($valami as $gecike) {
$akarmi = array(
array("id" => $gecike["id"], "text" => $gecike["text"]),
array("id" => 5, "text" => "mindegy"),
array("id" => 10, "text" => "asdasd"),
);
}Tehát most:
1valamicske
5mindegy
10asdasdEzt írja a böngésző és:
http://localhost/?id=1&text=valamicskeSzóval kiírja az összes értékét a tömb-nek, jöjjön a memcache rá és lássuk hogy jó-e.
Izgulok.[ Szerkesztve ]
-
tothjozsi96
addikt
válasz Sk8erPeter #16234 üzenetére
Én már nagyon megvagyok zavarodva.
Mellesleg felesleges a replace mert mindennek van külön ID-je és ahogy mondtam ez üzenőfal ...Az adatokat var_dump-al kaptam, amúgy.
Bocs, este van már látom mi a baj ...
[ Szerkesztve ]
-
tothjozsi96
addikt
válasz Sk8erPeter #16236 üzenetére
Kicsit nézegettem, most így írja be, de szerintem ez se jó ...
array(1) { ["uzenofal"]=> array(2) { ["uzenofal"]=> array(2) { ["uzenofal"]=> NULL [0]=> array(2) { ["username"]=> string(5) "coder" ["text"]=> string(4) "heló" } } [0]=> array(2) { ["username"]=> string(5) "coder" ["text"]=> string(3) "asd" } } }
-
tothjozsi96
addikt
válasz Sk8erPeter #16236 üzenetére
Köszi a segítséget.
Megoldódott!!!Az array nem kellett a get-re.
Így jó! -
tothjozsi96
addikt
válasz Sk8erPeter #16239 üzenetére
Igen, csak este volt és már majdnem letöröltem mindent azért mert nem jött össze.
Oké, itt a működő kód.
$conversations_before = $memcache->get('uzenofal');
// új értékek
$conversations_current = array(
array('id' => rand(1,999999999), 'date' => time(), 'username' => $username, 'userid' => $userid, 'class' => $class, 'text'=> $text),
);
// ellenőrzöd, hogy van-e egyáltalán már ilyen érték feltöltve, mert csak akkor lehet replace-elni ezzel a kulccsal később!
// összefűzöd a két tömböt
$conversations = ($conversations_before !== FALSE) ? array_merge($conversations_current, $conversations_before) : $conversations_current;
// replace, ha van már ilyen kulcs, set, ha nincs még
if($conversations_before !== FALSE) {
$memcache->replace('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
}
else {
$memcache->set('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
}
}
$adatok = $memcache->get('uzenofal');
foreach($adatok as $eredmeny) {
if (get_user_class() >= UC_MODERATOR) {
$del="<span class='date' title='Törlés'><a href=/memcache_fal.php?del=".$eredmeny["id"]."><img src='pic/torles.gif' style='height:10px; border:none;' /></a></span>";
}
echo "<span class='date'>[".strftime("%H:%M",$eredmeny["date"])."]</span> $del <a href='javascript:window.top.SmileIT(\"[b]$eredmeny[username]:[/b]\",\"shbox\",\"shbox_text\")'><img style='height:10px; border:none;' alt='Válasz' title='Válasz' src='pic/jobbra.gif' /></a> <a href='$BASEURL/userdetails.php?id=".$eredmeny["userid"]."' target='_blank'>" . get_user_class_color($eredmeny["class"], $eredmeny["username"]) . "</a> " . format_shoutbox($eredmeny["text"]) . "<br />";
}Viszont lenne még egy kérdésem.
A törlést nem tudom hogy oldjam meg.
Nagyon faintosan működik így is.
De amint látod az ID ahogy beírom az elég "random".Mivel eddig volt egy ilyen megoldásom hogyha van értéke a memcache-nek akkor az id az növekvő, tehát $memcacheérték + 1 ha nincs akkor meg értelemszerűen 1-ről indul ...
Amúgy ez a compress asszem valami tömörítés a memcache-ben.
A memcache-ben még benne hagytam az idő-t, de azt majd kiveszem, mert csak akkor fog frissülni hogyha újat írnak be.[ Szerkesztve ]
-
tothjozsi96
addikt
válasz Sk8erPeter #16241 üzenetére
Nagyon köszi az eddigi segítséged.
Egy kérdésem van, hogy szedjem ki az adott tömbömből azt az értéket amit valaki törölni akar?
Mondjuk van 40. üzenet, és valaki kitörli a 35.-et, akkor azt hogy???
Ezt meg tudnám oldani, de nem értem hogy hogy vegyem ki, mert nyilván memcache->delete kellene, de nem tudom hogy mert ezért van az ID, hogy behatároljuk hogy hova tartozó az üzenet.
Gondolkodom erősen, ha van ötleted akkor ...
-
tothjozsi96
addikt
válasz Sk8erPeter #16243 üzenetére
Zsír, meg is oldottam megint a kiegészítéseddel a problémát!
Így néz ki a törlés része:
if (isset($_GET['del'])){
$conversations = $memcache->get('uzenofal');
unset($conversations[$_GET['del']]);
$memcache->set('uzenofal', $conversations, MEMCACHE_COMPRESSED, 999);
}És így a bevitel:
$conversations_current = array($azonosito =>
array('id' => $azonosito, 'date' => time(), 'username' => $username, 'userid' => $userid, 'class' => $class, 'text'=> $text),
);Tehát a tömb azonosítója megegyezik a tömb-ben tárolttal és így simán ki lehet olvasni mindent, és uniqid()-vel fut szépen!
Már csak egy utolsó dolog van vissza, nem tudom hogy limitáljam max. 40 üzenetet akarok megjeleníteni, de nem tudom hogy tudnám így a tömbök miatt.
-
tothjozsi96
addikt
válasz Sk8erPeter #16245 üzenetére
Így nem egyszerűbb???
echo "Összesen: " . $valami . " üzenet van beküldve!<br />";
$szam = 1;
foreach($adatok as $eredmeny) {
if (get_user_class() >= UC_MODERATOR) {
$del="<span class='date' title='Törlés'><a href=/memcache_fal.php?del=".$eredmeny["id"]."><img src='pic/torles.gif' style='height:10px; border:none;' /></a></span>";
}
echo "<span class='date'>[".strftime("%H:%M",$eredmeny["date"])."]</span> $del <a href='javascript:window.top.SmileIT(\"[b]$eredmeny[username]:[/b]\",\"shbox\",\"shbox_text\")'><img style='height:10px; border:none;' alt='Válasz' title='Válasz' src='pic/jobbra.gif' /></a> <a href='$BASEURL/userdetails.php?id=".$eredmeny["userid"]."' target='_blank'>" . get_user_class_color($eredmeny["class"], $eredmeny["username"]) . "</a> " . $eredmeny["text"] . "<br />";
if ($szam++ == 20) break;
}És kész is!
Köszi még egyszer![ Szerkesztve ]
-
tothjozsi96
addikt
válasz Sk8erPeter #16247 üzenetére
Az csak egy példa volt, már 40 van megjelenítve.
A rang pedig jó, pont az a lényeg hogy ami SQL-ben megvan adva az szerint van UC_CLASSKülön van definiálva...
-
tothjozsi96
addikt
válasz Sk8erPeter #16249 üzenetére
Lenne egy érdekesség amit most vettem észre.
Ezeken az üzeneteken van formázás, amibe nagyon sok str_replace van.Gyakorlatilag alapból a fal lefut ez a formázás nélkül: 0.0009 alatt.
De így ezzel a formázással tehát ami be teszi a smileyeket meg ilyesmiket így már 0.02 vagy 0.06, tehát jóval nagyobb mint előtte.
És elvileg soronként értelmezi a foreach miatt, nem tudom hogy ezen lehet-e egyszerűsíteni ...
-
tothjozsi96
addikt
válasz Sk8erPeter #16251 üzenetére
Rájöttem, köszi!
A memcache->get-re ráteszem a formázást és úgy csak egyszer fog lefutni.
Köszi! -
tothjozsi96
addikt
válasz Sk8erPeter #16262 üzenetére
Bocsi, csak telefonról írtam.
Az a baj hogy van ez a memcache üzenőfal amiben segítettél.
Volt szó róla hogy vannak smiley-ek amit meg akarok jeleníteni, de erre van egy függvény-em ami kiválogatja hogy mi engedélyezett, tehát nincs minden engedélyezve pont ezért mert valaki beírja hogy <script> alert ....Gondolom ismerős ...
Az a baj hogy ha a foreach-on belül teszem rá a formázás fgv-t tehát format_comment($text)
akkor nagyot terhel mert soronként fut le, de nekem globálisan kellene.
Na most, ha a memcache->get("uzenofal")-ra ráteszem ezt akkor az a baj hogy nem ír ki egy üzenetet sem, de van bent egy count és írja hogy van 102 üzi, na most próbaképpen rátettem a memcache get-re egy htmlspecialchars-t úgy már az üzenetek számát sem írta ki ...
-
Des1gnR
őstag
válasz Sk8erPeter #16288 üzenetére
Ilyet nem írtam
Szerk: Igen
[ Szerkesztve ]
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
tothjozsi96
addikt
válasz Sk8erPeter #16288 üzenetére
A format_comment valójában arra van hogy a kettős pont D-ből ez legyen:
Tehát csak bizonyos helyeken van meghívva.
Igen, tehát a teljesítményt jó lenne ha nem fogná vissza.
De ez egy ilyen letöltött kód, tehát nem saját.Elég rosszul van megírva, de mutatok egy examplet.
function format_comment($text, $strip_html = true)
{
global $smilies, $TBDEV;
$s = $text;
unset($text);
// This fixes the extraneous ;) smilies problem. When there was an html escaped
// char before a closing bracket - like >), "), ... - this would be encoded
// to &xxx;), hence all the extra smilies. I created a new :wink: label, removed
// the ;) one, and replace all genuine ;) by :wink: before escaping the body.
// (What took us so long? :blush:)- wyz
$s = str_replace(";)", ":wink:", $s);
if ($strip_html)
$s = htmlsafechars( $s );
if( preg_match( "#function\s*\((.*?)\|\|#is", $s ) )
{
$s = str_replace( ":" , ":", $s );
$s = str_replace( "[" , "[", $s );
$s = str_replace( "]" , "]", $s );
$s = str_replace( ")" , ")", $s );
$s = str_replace( "(" , "(", $s );
$s = str_replace( "{" , "{", $s );
$s = str_replace( "}" , "}", $s );
$s = str_replace( "$" , "$", $s );
}
// [code] tag (do first to make sure we take it out of the equation
$s = preg_replace( "#\[code\](.+?)\[/code\]#ies", "code_tag( '\\1' )", $s );
// [list]
while( preg_match( "#\n?\[list\](.+?)\[/list\]\n?#ies" , $s ) )
{
$s = preg_replace( "#\n?\[list\](.+?)\[/list\]\n?#ies", "BB_list('\\1')" , $s );
}
while( preg_match( "#\n?\[list=(a|A|i|I|1)\](.+?)\[/list\]\n?#ies" , $s ) )
{
$s = preg_replace( "#\n?\[list=(a|A|i|I|1)\](.+?)\[/list\]\n?#ies", "BB_list('\\2','\\1')" , $s );
}
// [b]Bold[/b]
$s = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $s);
// [i]Italic[/i]
$s = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $s);
// [u]Underline[/u]
$s = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $s);
$s = preg_replace( "#\[(left|right|center)\](.+?)\[/\\1\]#is" , "<div align=\"\\1\">\\2</div>", $s );
while( preg_match( "#\[indent\](.+?)\[/indent\]#is" , $s ) )
{
$s = preg_replace( "#\[indent\](.+?)\[/indent\]#is" , "<blockquote>\\1</blockquote>", $s );
}
$s = preg_replace( "#\(c\)#i", "©", $s );
$s = preg_replace( "#\(tm\)#i", "™", $s );
$s = preg_replace( "#\(r\)#i", "®" , $s );
// [img]http://www/image.gif[/img]
$s = preg_replace("/\[img\](http:\/\/[^\s'\"<>]+(\.(jpg|gif|png)))\[\/img\]/i", "<img border=\"0\" src=\"\\1\" alt='' />", $s);
// [img=http://www/image.gif]
$s = preg_replace("/\[img=(http:\/\/[^\s'\"<>]+(\.(gif|jpg|png)))\]/i", "<img border=\"0\" src=\"\\1\" alt='' />", $s);
// [color=blue]Text[/color]
$s = preg_replace("#\[color=([^\];\d\s]+)\](.+?)\[/color\]#is",
"<span style='color:\\1;'>\\2</span>", $s);
// [color=#ffcc99]Text[/color]
/* $s = preg_replace(
"/\[color=(#[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])\]((\s|.)+?)\[\/color\]/i",
"<font color='\\1'>\\2</font>", $s);
*/
// [url=http://www.example.com]Text[/url]
$s = preg_replace(
"/\[url=([^()<>\s]+?)\](.+?)\[\/url\]/i",
"<a href=\"\\1\">\\2</a>", $s);
// [url]http://www.example.com[/url]
/* $s = preg_replace(
"/\[url\]([^()<>\s]+?)\[\/url\]/i",
"<a href=\"\\1\">\\1</a>", $s);
*/
// [size=4]Text[/size]
$s = preg_replace(
"#\[size=([1-4])\](.+?)\[/size\]#si",
"<span style='font-size:\\1em;line-height:100%'>\\2</span>", $s);
// [font=Arial]Text[/font]
$s = preg_replace(
"/\[font=([a-zA-Z ,]+)\](.+?)\[\/font\]/i",
"<span style='font-family:\\1;'>\\2</span>", $s);
// //[quote]Text[/quote]
// $s = preg_replace(
// "/\[quote\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i",
// "<p class=sub><b>Quote:</b></p><table class=main border=1 cellspacing=0 cellpadding=10><tr><td style='border: 1px black dotted'>\\1</td></tr></table><br />", $s);
// //[quote=Author]Text[/quote]
// $s = preg_replace(
// "/\[quote=(.+?)\]\s*((\s|.)+?)\s*\[\/quote\]\s*/i",
// "<p class=sub><b>\\1 wrote:</b></p><table class=main border=1 cellspacing=0 cellpadding=10><tr><td style='border: 1px black dotted'>\\2</td></tr></table><br />", $s);
// Quotes
$s = format_quotes($s);
// URLs
$s = format_urls($s);
// $s = format_local_urls($s);
// Linebreaks
$s = nl2br($s);
// [pre]Preformatted[/pre]
$s = preg_replace("/\[pre\]((\s|.)+?)\[\/pre\]/i", "<tt><span style=\"white-space: nowrap;\">\\1</span></tt>", $s);
// [nfo]NFO-preformatted[/nfo]
$s = preg_replace("/\[nfo\]((\s|.)+?)\[\/nfo\]/i", "<tt><span style=\"white-space: nowrap;\"><font face='MS Linedraw' size='2' style='font-size: 10pt; line-height: " .
"10pt'>\\1</font></span></tt>", $s);
// Maintain spacing
$s = str_replace(" ", " ", $s);
foreach($smilies as $code => $url) {
$s = str_replace($code, "<img border='0' src=\"{$TBDEV['pic_base_url']}smilies/{$url}\" alt=\"" . htmlsafechars($code) . "\" />", $s);
}
return $s;
}És az a baj hogy lefut az összes elméletileg és azért lassul meg ilyen csúnya módon.
-
Des1gnR
őstag
válasz Sk8erPeter #16290 üzenetére
Sajnos kétértelmű, de jól érted, a PHP-t szeretném meghívni egy másik PHP-ból.
Próbaképpen csináltam egy meghiv.php-t amely így néz ki:
<?php
require 'rendeles.php';
?>Ez így frankón működik is. Lefut a rendeles.php és létrehozza az XML fájlt az adott mappába.
Viszont ha oda illesztem be ezt a kis kódot ahová kellene, akkor nem hozza létre az XML-t
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
Des1gnR
őstag
válasz Sk8erPeter #16297 üzenetére
Összeszedtem ami kell és remélem tudtok segíteni. Az eddigieket is nagyon köszönöm
Itt a 3 PHP fájl:
[link]Semmi sem titkos, csak így egyszerűbb.
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
tothjozsi96
addikt
válasz Sk8erPeter #16297 üzenetére
Itt jól látszik a különbség, szerintem sebességben is.
Az ilyen "bb kód"-okra milyen fajta tudás kell?
Tehát mit olvassak el hogy megértsem a regex működését?
-
tothjozsi96
addikt
válasz Sk8erPeter #16297 üzenetére
Egy kérdésem lenne.
A preg_quote-nak mi értelme van?
Néztem a PHP.net-en de nem értem.Olvastam egy ilyen példát.
foreach($icons as $icon=>$image) {
$icon = preg_quote($icon);
$text = preg_replace("~\b$icon\b~",$image,$text);
}Most az $icon-nak minek kell a quote???
Gyorsabb lesz vagy micsoda? -
tothjozsi96
addikt
válasz Sk8erPeter #16322 üzenetére
Értem, ezt a magyar forrást eddig még nem ismertem.
Próbálkoztam a str_replace-helyett így is:
function emoticons($text) {
$icons = array(
':)' => ' <img src="/pic/smilies/smile1.gif" alt="smile" class="icon_smile" /> ',
':-)' => ' <img src="/pic/smilies/smile1.gif" alt="smile" class="icon_smile" /> ',
':w00t:' => ' <img src="/pic/smilies/w00t.gif" alt="smile" class="icon_smile" /> ',
':D' => '<img src="/pic/smilies/grin.gif" /> ',
':P' => '<img src="/pic/smilies/tongue.gif" /> ',
';-)' => '<img src="/pic/smilies/wink.gif" />',
':lol:' => '<img src="/pic/smilies/laugh.gif" /> ',
':-D' => '<img src="/pic/smilies/grin.gif" /> ',
':wink:' => ' <img src="/pic/smilies/wink.gif" alt="laugh" class="icon_laugh" /> ',
);
foreach($icons as $icon=>$image) {
$icon = preg_quote($icon);
$text = preg_replace("~\b$icon\b~",$image,$text);
}
return strtr($text, $icons);
}Így viszont kisebb lett a betöltési idő, de amint látszik csak pár smiley van a tömb-ben.
Na most, beraktam az összes smiley-t, tehát mind a 314-et és behullott megint.
Lehet kicsit sok a smiley és azért ilyen rohadt lassú.
-
tothjozsi96
addikt
válasz Sk8erPeter #16325 üzenetére
Igen, az lenne a legjobb ha simán <img> tag-ekkel menne, mert úgy gyors lenne, de viszont ha jön egy xss akkor mivan?
script alert ...Mellesleg, a htmlspecialchars kiszűrné, csak úgy már nincs img tag sem.
Új hozzászólás Aktív témák
- Max
- Egyre közelebb a Poco F6 startja
- Xiaomi Mi 9T - a túl jó Redmi
- Bivalyerős lett a Poco F6 és F6 Pro
- Poco X6 Pro - ötös alá
- Politika
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Azonnali fáradt gőzös kérdések órája
- Szinte bankkkártya méretű a LattePanda x86-os SBC-je
- Azonnali mobilos kérdések órája
- További aktív témák...
- Gigabyte GA-H81M-DS2 rev:2.1 LGA 1150 alaplap
- IPhone SE2 2020 64GB megkímélt akku 86%
- Asus P8H67 LGA 1155 alaplap
- Bomba ár! Fujitsu LifeBook E754 - i7-4712MQ I 8GB I 128SSD I 15,6" I HDMI I Cam I W10 I Garancia!
- Bomba ár! Fujitsu LifeBook E754 - i5-4GEN I 8GB I 128SSD I 15,6" FHD I HDMI I Cam I W10 I Garancia!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs