Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: KLINTHOLM 3 fiókos fekete, acél, zárható kiegészítő elem
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- GoodSpeed: Kell-e manapság egérpad vagy sem?
- Őskoczka
- eBay-es kütyük kis pénzért
- bitpork: 2025, zárás
Új hozzászólás Aktív témák
-
-
pelyib
tag
válasz
adika4444
#19639
üzenetére
Jól gondolod, a user requestet nem kéne ezzel lassítani. Ott csak csináljon meg egy "task"-t a feldolgozónak. A feldolgozót pedig crontab-ból x időközönként a rendszer futattja.
A "task" lehet egy szimpla flag (mező) a DB "bejegyzesek" táblában, vagy akár egy teljesen külön lévő tábla is. Utóbbi lényegesen rugalmasabb. És akár még MySQL szinten is meg tudod oldani trigger-rel.
-
Doink
aktív tag
-
pelyib
tag
válasz
adika4444
#19635
üzenetére
Mit jelent, hogy lassú?
Mi lenne szerinted a gyors, vagy elfogadható futásidő?
Hol futott eddig, ha most már szerveren?
Nem lehet, hogy limit nélkül kéred le DB-ből?Megnézted már mi pontosan a lassú? MySQL lekérdezés, maga a PHP kód futás (ez ugye tiszta PHP-ra értem, nem arra pl.: amikor vár az SQL szerverre), esetleg maga az email küldés a lassú?
-
pelyib
tag
válasz
adika4444
#19406
üzenetére
Azt szokták mondani, hogy majd optimalizálunk ha kell, addig pedig oldjuk meg, hogy működjön.

Feltételezem a platform tábla nem fog 50 sor fölé menni, esetleg 100 de akkor már mindenféle Linux is benne van. Ez nem lehet tétel.
Az appok listája se hiszem, hogy akár a 10000-t el fogja érni. Megintcsak nem kéne, hogy tétel legyen.
Az application_platform tábla ebből kiindulva max 100x10000=1000000. Nah ez már kezd érdekes lenni. De ettől se kell félni, csak rendesen kell használni az index-ket. Ha nem egy RPIn akarod hostolni akkor ez nem kéne hogy probléma legyen.Szóval lekéred az appok listáját (ha platformra is keres éppen akkor rá kell joinolni az application_platform táblát).
Lesz egy listád, abból ki tudod gyűjteni az application_id-t, a kapott ID listával pedig lekérni a hozzájuk tartozó platformokat:select * from platform inner join application_platform on platform.id = application_platform.platform_id
where application_platform.application_id in (1, 2, 3)
Ezzel meg lehet visszamenni az eredeti application listához és hozzáadni a platformokat."de esetlegesen változhat a platformlista" => mindig az aktuális állapotot kapod vissza, szóval ha nem kell más adat akkor az is müködhet. Ezt te tudod, hogy mi kell a megjelenítési rétegbe

-
pelyib
tag
válasz
adika4444
#19397
üzenetére
"le tudom kérni a fenntebbi select-tel együtt az adott alkalmazás platformlistáját"
Igen meg lehet oldani, én két megoldást mondanék:
- Join + group_concat nem szép, illetve ha még plusz adat kell a platform táblából akkor nem működik.
- Lekéred az app listát, kigyűjtőd az ID-t (
WHERE application_id IN (1, 2, 3)) és a második SELECT queryvel lekéred a hozzájuk tartozó platformokat. Ezek után csak be kell frissíteni a application listád elemeit a megfelelő platformokkal. -
pelyib
tag
válasz
adika4444
#19373
üzenetére
Enum field legyen ha nem akarsz másik táblát + kapcsoló táblát.
Igaz ha bővül akkor ennél is alter-ni kell a táblát, de legalább a keresés gyors lesz és kevesebb helyet is foglal (mint egy text mező).
Illetve én személy szerint erre az esetre pont nem használnék több flag mezőt inkább a dedikált táblákat tiszta mint a hó. -
válasz
adika4444
#19373
üzenetére
Kérdés, hogy változhat-e a jövőben platformok száma. Ha igen, akkor célszerű inkább linkelt táblában tartani, hogy mihet elérhető. Ha nem akkor lehet külön mező platformonként.
Az utóbbi eset azért lehet problémásabb, mivel ennek a módosítása csak a tábla sémájának változtatásával lehetséges.Esetleg lehet még bit típusú mezőben tárolni, mint flag, de ennek feldolgozása nehezebb (szvsz) mint egy linkelt tábláé.
-
adika4444
addikt
válasz
adika4444
#19238
üzenetére
Már így se megy, a Pear is és a PHP Mailer is a magyarországinál egy órával korábbra állítja magát, és bár a time függvény rendesen kiírja az időt, ezek még is egy órával korábban vannak.
Feltúrtam Google-t, az se segített úgyhogy minden ötletet várok, én kifogytam a lehetőségekből... -
-
Lacc
aktív tag
válasz
adika4444
#19233
üzenetére
Nem lehet, hogy a Xampp frissítés után a Gmail-es accountodnak az email, jelszó párosat kidobta?
Ha jól tudom az az ip cím a Gmail-hez tartozik, és gondolom azt akarod használni smtp-n keresztül.Log, nem ír valami problémát erről?
Fundiego, nem tudom, hogy milyen adatbázist használsz, milyen beállításokkal, de itt látszik, hogy Stringet akarsz osztani Stringgel, és az sosem hajtódik végre, vagy csak 0-as kiértékelést kapsz.
'Gyozelem'/'Reszvetel' -
DS39
nagyúr
válasz
adika4444
#19108
üzenetére
itt elég jól bemutatják, mi a kettő között a különbség, meg egyáltalán, hogyan is kell:
https://softwareengineering.stackexchange.com/questions/78225/using-join-keyword-or-not
itt ki is tudod próbálni, a join variációk leírása mellett: [link] -
DS39
nagyúr
válasz
adika4444
#19106
üzenetére
belső select-ek használata megnöveli a lekérdezés futási idejét.
mindenképp a táblák összekapcsolását javaslom, lehet azt join-nal, vagy simán a where-ben összekapcsolási feltétellel.az egyik tábla elsődleges kulcsát kell összekapcsolni a másik tábla külső kulcsával. (egy a többhöz kapcsolat)
-
adika4444
addikt
válasz
adika4444
#19105
üzenetére
Érthetetlen katyvasz ami leírást találtam róla
úgyhogy most selectben select utasítással próbálom megoldani, eddig nagyobb a siker mint a join-nal...
Az a baj hogy a joinnál értelmetlenül sok sor jelenik meg, ha meg natural-lal használom akkor valahogy csak egy sort akar megmutatni... -
DNReNTi
őstag
válasz
adika4444
#19101
üzenetére
Ahh... Tulbonyolitod.
Egy topik csak egy kategoria ala tartozhat? 1:n kapcsolat? Akkor egyszeruen kell egy mezo a topik tablaba, mittudomencategory_idami egyertelmuen azonositja. Ha egy topik tobb kategoria ala besorolhato akkor n:m kapcsolatrol beszelunk, kell tehat egy kapcsolotabla, ami tarolja hogy melytopic_id-k escategory_id-k vannak osszerendelve. Akarhogy is, nem olyan bonyolult ez, szerintem te gondolod tul.
-
DNReNTi
őstag
válasz
adika4444
#19047
üzenetére
A helyedben pont a Yii amit messzirol elkerulnek.
Akkor mar inkabb Codeigniter, az eleg egyszeru, konnyu benne elkezdeni dolgozni, bar van benne egy csomo ma mar buta megoldas, de arra hogy elkezdj valami komolyabbal foglalkozni es ne menjen el a kedved tole 30 perc utan, arra jo. -
disy68
aktív tag
válasz
adika4444
#19049
üzenetére
A jelszón kívül nincs szükség mást titkosítottan tárolni, ami inkább fontos, hogy a kliens-szerver-adatbázis-etc kommunikáció titkosított csatornán menjen (ssl/tls). Valamint megnézheted az owasp top 10 listát a tipikus sebezhetőségekről.
-
Lacc
aktív tag
válasz
adika4444
#19047
üzenetére
Még annyit, hogy én szarnék rá. Ha tényleg csak azért akarod, csinálni, hogy bolond biztos legyen a rendszer, akkor legyen. De ha azt akarod megelőzni, hogy valaki direkt - az admin maga - piszkálja az url-ben a paramétereket, akkor hagyd a picsába, mert az már az admin felelősége.
Ez még a Wordpress-ben is megtudja csinálni az admin, hogy megnyit egy bejegyzést, módosítja, aztán utólag átírja az url-ben a paramétert és mást modósít.
Ez nem a rendszer felelősége. Bár meglehet oldani, de nem a te felelőséged elsősorban.
-
Lacc
aktív tag
válasz
adika4444
#19044
üzenetére
A leggyengébb láncszem mindig a Felhasználó lesz.
"HA nagyűrlapozok akkor viszont marad az a törlési megoldás egy adott hsz-re hogy delete.php?comment=x" -de miért mindig GET-ben gondolkodsz egy nagy POST helyett?
Egyébként a törlést lehetne Ajax-xal megoldani a legjobban. És pont ezért lenne jó a keretrendszer, mert ott látná ilyen bevált és "Standard" megoldásokat.Az Ajax-hoz átkéne venni egy tutorialt.
Én most a többiekre bízlak, ne haragudj, ha nyers vagyok/voltam, de nekem most nincs időm olyan részletes választ adni minden kérdésedre. (Munka, Egyetem - levelező tagozaton, mert miért ne belevágtam az MSc-be is).
Egy keretrendszer, mint a Yii vagy Laravel-nek vannak beépített vagy 3rd party Grid nézetei, azok lazán eltudják ezt intézni, hogy törlés funkciót generál le, meg minden nyalánkság, én elsőkörben a Yii-t javaslom, mert az jobban használja a tömböket, nem annyira OOP-s mint a Laravel. Ez most így nem igaz, de akik dolgozott vele az érti, hogy a Yii-sek tömbmániásak.
Szerintem neked az Egy nagy POST jó lesz. Egy nagy <form>, a törlés meg egyszerű csak egy <input> checkbox. Szerver oldalon leellenőrözd, hogy ez be van-e csekkolva. Ha igen, akkor lefutattod a törlés parancsot.
Ha nincs becsekkolva, egész egyszerűen a többi választ végig járod, és update-eled az adatbázis rekordot.
Nagy vonalakban így mondanám, hogy ha csak egyszerű PHP skillel oldanám meg. -
Lacc
aktív tag
válasz
adika4444
#19038
üzenetére
Így értem. Igazából, ezt Ajaxxal is meglehet csinálni ha ügyes vagy

"mennyire terhelné meg a webszerót ha pl. egy oldalra (ahol 25 hsz-t jelenítek meg (már ha van annyi)) minden hsz-hez csinálnék hash-t, és azt küldeném get-tel." - csak akkor döglik bele, ha rosszul csinálod
.
Alapból nem a titkosítás a cél, hanem egy egyszerű hash sztring generálása. Az MD5 elég gyors, de az egyik leggyorsabb CRC32 (de tényleg cask a hash generálás a cél)
Hát, nézd... 10.000-es Loopban a CRC32 metódus 0.03 másodperc alatt végez, szóval 25-ös loopban, ez jelentősen kisebb
, az MD5-re meg 0.07-et látok kiírva természetesen itt is 10.000 loop."A post nem játszik, erre rájöttem mert azt jelölőnégyzetezgetéshez használom, hogy több hsz-t is lehessen egyszerre (jelenleg csak) törölni."
Hát szerintem jobb, lenne azt az egész felületet újratervezni. Ne haragudj az őszinteségemért, de ez így nagyon nem jó megoldás, és most nehéz is javítani rajta. Túl van tolva szerintem a kontrollok kezelése."Pedig úgy lenne a legjobb, hogy lenne a nagy űrlap ahol be lehetne jelölgetni a kommenteket és minden kommenthez kisűrlap (for ciklus) ahol az id-t letárolom rejtve majd submit-tal elküldöm."
De, lehet, lásd Symfony keretrendszer, beágyazott kollekciók. Egyébként meg ja, ezt kellene csinálnod, esetleg Ajaxxal.Jól gondolom, hogy nem használsz PHP-s keretrendszert?

Én Symfony-val vagy Yii-vel elég egyszerűen megtudnám csinálni.Én a te helyedben, a nagy űrlapos megoldást választanom, ahogy írtad. Hosszabb távon is jobban jársz, főleg ha később kell még hozzá nyúlni, módosítani valamit a felületen, vagy ezen a logikán.
-
válasz
adika4444
#19039
üzenetére
ő, aha, lehet

Szóval az szeretném, hogy kiolvassa a (gondolom a sorok számát, de van auto increment ID sorom is), és mondjuk ha én szeretnék oldalanként 500 sort, akkor gondolom a kapott eredményt elosztva megtudom mennyi "oldalam" lesz. A választott oldal száma pedig megadja a tól -ig-et is. Vagy rosszul gondolom?
-
Lacc
aktív tag
válasz
adika4444
#19031
üzenetére
"post-tal küldöm el hogy reply.php?replyto=5" -> ez GET és nem POST

DNReNTi leírta, hogy jogosultság kezelés. Viszont a jogosultság kezelés nem ér sokat, ha a bejegyzés #5 és #6, na meg a többit is ugyanúgy lekérheti a felhasználó, és módosíthatja, az az joga van neki az összes bejegyzést módosítani, mert akkot tényleg tud hülyéskedni
.Ezt meg lehet előzni az XSS-hez hasonló technikákkal. A legegyszerűbb egy random Token készítése hash függvénnyel. Elmenteni Session-be, illetve, hogy melyik bejegyzéshez lett generálva (IP cím-et is lehet menteni, mint a Session kulcs) és azt egy hidden input mezőbe leküdeni a front-endbe. Amikor a User POST-tal, vagy GET-tel visszaküldi a szerver felé az adatot, akkor lecsekkolni, hogy az adott Token az adott Bejegyzéshez lett-e generálva? Ha igen, akkor elmented a User válaszát, ha nem, dobsz neki egy hibát, hogy ejnye-bejnye.
Ez egy aránylag gyors és jó megoldás, ha nincs jogosultság kezelésed.Van, ennek valami speckó neve is, de nem jut eszembe.
-
DNReNTi
őstag
-
Lacc
aktív tag
-
SUPREME7
őstag
válasz
adika4444
#18889
üzenetére
Én preg_match-csal csinálnám:
$string = "ice-audio-info: ice-samplerate=44100;ice-bitrate=192;ice-channels=2";
preg_match("/ice-samplerate=(.*?);/", $string,$samplerate);
preg_match("/ice-bitrate=(.*?);/", $string,$bitrate);
preg_match("/ice-channels=(.*?)$/", $string,$channels);
if($channels[1] == "1"){$channels = "mono";}elseif($channels[1] == "2"){$channels = "sztereó";}else{$channels = "?";}
echo "Bitráta ".$bitrate[1].", mintavételezés ".$samplerate[1].", ".$channels.""; -
GG888
senior tag
válasz
adika4444
#18889
üzenetére
$data = $tomb[3]; //ice-audio-info: ice-samplerate=44100;ice-bitrate=192;ice-channels=2
$sbc=trim(substr($data, strpos($data, ":") + 1)); //Kettőspont előtti rész és szóközök eltávolítása
$arr=explode(";",$sbc); //Szédszedjük tömbre a pontosvesszőknél
$samplerate=substr($arr[0], strpos($data, "=") + 1); //Egyenlőség utáni részt elemenként változóba rakjuk
$bitrate=substr($arr[1], strpos($data, "=") + 1);
$channels=substr($arr[2], strpos($data, "=") + 1);Lehetne szebben, meg
for-ral végigmenni a tömbön, meg pár művelet összevonható 1 sorossá, csak így talán jobban átlátható. Nem teszteltem, de működnie kéne. -
fordfairlane
veterán
válasz
adika4444
#18886
üzenetére
<?php
function isAvailable($url) {
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$headers = get_headers($url);
$http_code = substr($headers[0], 9, 3);
return $http_code < 400 ? true : false;
}
$url = "http://www.origo.hu/index.html";
echo isAvailable($url); -
GG888
senior tag
-
#14595328
törölt tag
válasz
adika4444
#18523
üzenetére
Hát, valami hasonló jquery-vel, de ez már nem PHP:
$(document).ready(function() {
$("#beviteli_mezo_id").bind("keypress", function(e){
var regex = new RegExp("regex feltétel");
var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (!regex.test(key)) {
e.preventDefault();
return false;
}
});
});
Új hozzászólás Aktív témák
- Fujifilm X
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S24+ - a személyi asszisztens
- OLED TV topic
- Miért nem tűnik el soha a kalózkodás?
- Debrecen és környéke adok-veszek-beszélgetek
- Revolut
- Nitrogénfelhőben született az új rekord
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- 3 DB Levovo ThinkPad T450 hibás noti
- LG 55QNED86T3A / QNED / 55" - 139 cm / 4K UHD / 120Hz / HDR Dolby Vision / FreeSync Premium / VRR
- Tamron SP 150-600mm f/5-6.3 Di VC USD G2 ( Nikon ) Camo Edition
- HP DesignJet T525 24" (A1) nagyformátumú plotter állvánnyal, újszerű állapotban, Wi-Fi-s
- Precision 5470 14" FHD+ IPS i7-12700H RTX A1000 16GB 1TB NVMe ujjlolv gar
- Corsair K70 RGB TKL // EU // Számla + Garancia //
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450 R7 5800X 32GB DDR4 1TB SSD RTX 4070Ti 12GB Zalman S2 TG Enermax 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő

úgyhogy most selectben select utasítással próbálom megoldani, eddig nagyobb a siker mint a join-nal...


.



