- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- CMF Phone 2 Pro - a százezer forintos kérdés
- Honor 400 - és mégis mozog a kép
- Milyen okostelefont vegyek?
- Google Pixel topik
- Motorola Moto Tag - nyomom, követ
- iPhone topik
- Bemutatkozott a Poco X7 és X7 Pro
Ú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ó. -
sztanozs
veterán
-
sztanozs
veterán
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' -
sztanozs
veterán
válasz
adika4444 #19165 üzenetére
Regular Expression-re keress rá.
-
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_id
ami 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
Hirdetés
- Beszámítás! Apple iPad Pro 13 2024 M4 512GB Cellular tablet garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone i5 14600KF 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! MSI B450 R5 5500 16GB DDR4 512GB SSD RTX 2060 Super 8GB GDDR6 Rampage Shiva Zalman 500W
- Vásárold meg most a Zalman T7-et, és élvezd a minőséget!
- LG 27CN650N-6A - Felhő Monitor - 1920x1080 FHD - 75Hz 5ms - USB Type-C - Quad Core - BT + WiFi
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest