- Nem indul és mi a baja a gépemnek topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- 3D nyomtatás
- ASUS ROG Ally
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen TV-t vegyek?
- Socket AM5
- Amlogic S905, S912 processzoros készülékek
- Milyen egeret válasszak?
- Exkluzív funkcióval tenné vonzóbbá az ARM-os PC-ket a Microsoft
Hirdetés
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
Kulisszák mögötti videón a hamarosan megjelenő Stellar Blade
gp A kizárólag PlayStation 5-re szánt akciójáték alig két nap múlva debütál.
-
Garmin Forerunner 165 - alapozó edzés
ma Leizzadtunk a Garmin legolcsóbb amoledes futóórájával.
Új hozzászólás Aktív témák
-
lanszelot
addikt
válasz pelyib #20750 üzenetére
login.php csak egy jelszót kér. Van 10 fix jelszó és abból ha egyet jót írsz be beléptél, annyi.
Semmi több. Nincs cookie, se semmi. Leg alapabb védelem.
Van egy logout gomb, ami kiléptet, illetve a szerver kiléptet egy bizonyos idő után automatikusan.
Nos, ha a szerver kiléptet, ami 3 óra után tuti, akkor sem kéri a jelszót a könyvtárban lévő php, legyen az bármelyik php amit könyvtárba rakok.
Mi az, hogy feldobjam a login-t? Ezt nem értem.href="valami.jpg" - ilyen nics sehol. Ez csak a linkedre volt példa.
zoom könyvtárban lévő zoom.php igényli a login.php -t , ennyi
Nincs mas link.
A login.php -ben van link a login.css-re, ami ott van mellette.Tehát te azt mondod, hogy amikor igényli, akkor a login.php-t bemásolja a zoom könyvtárba, majd futtatás után vissza másolja? Mert csak így lehetséges, hogy a maga mellett lévő login.css -t nem éri el a login.php. Nem a zoom.php, az csak a login.php-t igényli meg.
-
lanszelot
addikt
válasz pelyib #20750 üzenetére
pontosítva:
felhasználo nevű tömbben van a 10 jelszósession_set_cookie_params(0);
session_start();
majd ha a létezik a $_SESSION[felhasznalo tömb] /azaz be lett már írva vmikor/ akkor felhasználó egyenlő $_SESSION[felhasznalo tömb] -al
error null /tehát nem kell beírni/
ha nincs beírva semmi /üresen bök a gombra/, akkor
felhasználó, és error is null
ha a beírt jelszó egyenló a tömbben szereplő egyikkel, akkor a felhasznalo egyenlő a beírttal, error null /tehát elfogadja/
ha beírt nem egyenló a felsoroltakkal, akkor felhasznalo null, error = hibas jelszohtml végén ha felhasználó null, akkor die
[ Szerkesztve ]
-
pelyib
tag
válasz lanszelot #20751 üzenetére
Nincs cookie, se semmi.
session_start letrehozza a cookie-t.A login.php -ben van link a login.css-re, ami ott van mellette.
Ami linket eloallit (HTML-ben a href) azt nem a PHP (szerver oldal) hanem a bongeszo fogja ertelmezni es futattni. Tehat a /zoom/zoom.php egy olyan valaszt ad amiben a href="login.css" van, amit mar tudunk, h a sajat konyvtaraban fog keresni, tehat a /zoom-ban.
Nem, nem masol semmit! En ilyet tuti nem mondtam!ha nincs beírva semmi /üresen bök a gombra/, akkor
Ezt hogy vizsgalod pontosan? -
Mike
veterán
válasz Prog-Szerv #20734 üzenetére
bejöttem melóba
// az update-telendő adatok
$update_adat = [
"id" => 15,
"nev" => "Pista",
"email" => "pista@mail.hu",
"tel" => null];
// ez kerül be az update-be
$set_ertek = '';
// csak a mezok kellenek mezo = :mezo, id alapján updatelünk, ezért ez kimarad
foreach($update_adat as $mezo => $ertek) {
if($mezo != "id")
$set_ertek .= $mezo.' = :'.$mezo.',';
}
// levágjuk a vesszőt a végéről
if(!empty($set_ertek)) $set_ertek = substr($set_ertek, 0, -1);
// csak egy tételt akarunk updatelni, ezért a LIMIT 1
// ezt érdemes kiirni, kevébé cseszed el ha hibás az update
$update_sql =
'UPDATE akarmi
SET
'.$set_ertek.'
WHERE id = :id
LIMIT 1';
// prepare az sql, aztán beadjuk a tömböt neki
// fontos, hogy minden tömbelemet bindelni kell
try{
$update_res = $sql_conn->prepare($update_sql);
$update_res->execute($update_adat);
} catch (Exception $ex) {
echo $ex;
}
-
biker
nagyúr
válasz DrBubo77 #20756 üzenetére
igen, az ilyenek a jó trükkök.
Egyébként mára kiderült, hogy csak egyes régi rendszereink érintettek (ez egy fitnesz terem beléptető), és csak azok, ahol valaha publikus volt a regform
ahol pl most nem is publikus, de fél éve az volt, elkezdtek jönni a regisztrációk, miközben olyan oldalakra meg nem amiken soha nem volt kint.
lehet scraperrel beszedték, hol van elküldhető form és most próbálkoznak.
nem is a regisztrált adatokkal próbálnak belépni, nem is értem mire jó ez.
valami generált johndo69@blablamail.com címek és user jkhbhjfcgh passwor i7tr6rfut ezzel regel, de két belépő form van, egy a vendégeknek egy az adminoknak, és nem ezzel a random karakter sor a user sem a pass, látszólag ész nélkül elküldi a formokat egymás után, kb 6-7 órás szünetekkelElektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
biker
nagyúr
üdv, létezik e JÓ megoldás az emailek validálására és ez alapján az adatbázisokból eltávolítani a hibákat?
A gond az, hogy aki nem ad meg emailcímet, vagy teljesen hibás, az a filter_validate_emailre elbukik, de az elgépelések és emiatt nem kézbesíthetők, illetve a megszűnt fiókok még valid emailek maradnak, pl balazs helyett balasz , fremmail gmial és társai.
A mailer daemon emailfiókra jön, a küldő persze tojik törölni a visszajövők alapján, de ahogy nő a hibás cím, csökken a reputáció és nó a spam pontszáma a szervernek is.szeretnék lefuttatni egy scriptet az összes partnerünk (fitness termek) összes tagi adatbázisán, ami a közel 40-50ezer emailt ellenőrzi nem csak arra valid-e hanem létező cím-e, emailküldés és vegzálás nélkül.
ez hogyan lehetséges? fiókellenőrzés és a kapott válasz alapján törölni, de ne kapjon emailt a user?(nem kérek más hasonló megoldást, ami más problémát okoz, pl nincs dual-opt-in mert recepciós rögzíti az adatokat, nem lehet kiküldeni megerősítő emailt tagoknak mikor a pultnál állnak és regisztrálnak, szóval ilyen jellegű megoldások nem érdekesek)
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
supercow
őstag
Magad nem tudod ellenőrizni, SMTP szerverek ritkán válaszolnak VRFY meg egyéb requestekre, küldeni emailt ugye nem lehet/nem életszerű a te helyzetedben. Szerintem a legjobb amit tehetsz az a mailgun email checker api, fizetős de legalább megy.
In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.
-
biker
nagyúr
válasz supercow #20763 üzenetére
az a bibi, hogy a címek kb 70 adatbázisban vannak, mivel minden terem saját db, abban egy tábla. ezeket le tudom futtatni a saját szerveremen, de akkor le kell mentsem melyik emailcím melyik db melyik táblájából jött, és a verify után tudnom kell, melyik táblában kell javítani.
Ha lenne lehetőség helyben futtatni scriptet, akár cronnal lefogva 50-100/óra mennyiségre, akkor lekérem a címet, ellenőrzöm, ha jó hagyom, ha nem törlöm.
Ez is jó megoldás, csak munkásabb. KösziElektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
biker
nagyúr
igen, minden atabázisban ugyanaz a tábla neve és a mező neve is, egy ciklusban le lehet kérni folyamatában a címeket
Más kérdés, hogy 50-100e ilyen ellenőrzés nem fogja e a szervert hasonlóan blacklistelni mintha emailt küldene ennyit?Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
biker
nagyúr
-
Sziasztok!
Segítségért fordulok hozzátok, mert megvallom, én inkább oldottam eddig meg mindent JS-el, mint PHP-val, így a PHP-s ismereteim elég karcsúak. Kokrétan az incude-ot, echo-t és apróbb txt fájlok szerkesztésén kívül nem csináltam még vele semmit, azonban most kénytelen leszek.
Adott egy Form kód, amely így néz ki:
<form id='formid'>
<select name='selectname'>
<option value='00'>Első választási lehetség</option>
<option value='01'>Második választási lehetség</option>
<option value='02'>Harmadik választási lehetség</option>
</select>
</form>Ez pedig hozzá a JS:
<script>
const DoIt = document.getElementById('formid').elements.namedItem('selectname');
DoIt.onchange = () => {
if (DoIt.value == '01') {
document.getElementById('Demo').innerHTML = 'Ez az egyes választás Demo üzenete!';
}
}
</script>Ezt szeretném átalakítani úgy, hogy PHP legyen. A PHP kódot valahogyan így képzelném el, hogy kinézzen:
const DoIt = document.getElementById('formid').elements.namedItem('selectname');
DoIt.onchange = () => {
if (DoIt.value == '01') {
$demo = 'Ez az egyes választás Demo üzenete!';
}
}Hozzá pedig az index.php-ban mindössze ennyi társulna:
<p><?php echo $demo ?></p>
Remélem érthető módon meg tudtam fogalmazni, hogy mit szeretnék. Van ötlet valakinek erre?
Előre is köszönöm!Szerk.: Nem kimondottan a példában szereplő mintát akarom felhasználni, így a Minek megoldani így, ha JS-ben is lehet? jellegű kioktatást kérlek mellőzzétek. Szükséges, hogy ez így legyen. Köszönöm
[ Szerkesztve ]
But who is watching the guardians?
-
Mike
veterán
a php server oldali nyelv, ergo a szervernek adatokat kell küldeni
pl a kiválasztást elküldöd postban és azt írod ki aamit a szerver válaszol
vagy a form szerkezetét le tudod vele generálni, amire aztán írsz felszini kódot, ami valaidálja, kiírja az üzeneteket, stb, persze ezeket is lehet szedni adatbázisból:
itt pl. a php generálja a felszini js kódot is, így nem kell átadogatni a kírandó szöveget
persze ez arra nem alkalmas, hogy online nyelvet vltson a formon valaki kitöltés közben
szóval érdekelne mit is szeretnélrequest.onreadystatechange = function() {
if (request.status >= 200 && request.status < 400) {
// Success!
if(request.readyState == 4) {
alert("'.$szotar['mentes_sikeres'].'")
-
válasz DrBubo77 #20775 üzenetére
Köszönöm, megpróbáltom a tervemet ezzel.
Mike: Lényegében egy videóváltót akarok ezen a módon megcsinálni. Adott a környezet, fel van építve minden, és egy lenyíló form dönti el, hogy milyen URL kerüljön az adott helyre. Csak ezt JS-ben nem lehet megoldani ebben a formában, mert sok helyen van " és ' jel, amik felborítják a kódot. Ugyanis egy beágyazási Link így néz ki:
<iframe width="560" height="315" src="https://www.youtube.com/embed/vx2u5uUu3DE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
[ Szerkesztve ]
But who is watching the guardians?
-
-
disy68
aktív tag
Ahogy írtam is. Dropdown alapján kicserélném az iframe src attributumát.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
-
laracroft
aktív tag
Sziasztok, kicsit béna vagyok és nem tudom EZT megoldani
Azt szeretném elérni, hogy a második sorban ne előröl kezdje a számok kiírását, hanem folytassa 1006-tól
előre is köszi -
disy68
aktív tag
válasz laracroft #20781 üzenetére
Első körben a nyitó tr is legyen a cikluson belül. Aztán, ha a for-on belül több elemet jelenítesz meg, akkor növeld annyival az indexet és ne csak 1-el.
Szebb megoldásként pedig használhatsz 2 cilkust, ahol a soronként megjelenített elemszám is egy változóból jön.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
Taci
addikt
Eljutottam oda, hogy az XSS elleni védelemmel is foglalkozni tudjak. Mivel egyelőre csak 1 user inputos rész van a weblapon, ez pedig a kereső, a kliens oldali része miatt a Javascript-topikba írtam.
Viszont aztán beugrott, hogy mivel RSS-csatornák tartalmával dolgozom, kvázi azok is külső források, amikből származó tartalmat ugyanúgy fenntartásokkal kell kezelnem. Hiszen ha a külső forrást támadják, és mondjuk átírják kártékony kóddal az RSS tartalmát, akkor ha ellenőrzés nélkül tárolom és használom az onnan származó adatokat, akkor azzal én is "fertőződöm".
Ennek szeretnék így hát elébe menni.
Ezeket az adatot szúrom be (jelen pillanatban ellenőrzés nélkül) a HTML kódba, ami ezekből a külső RSS forrásokból származik:
- cikkhez tartozó link
- képhez tartozó link
- cikk címe, leírásaItt ugye pl. az <img> tagnél lehet máris probléma, amit egyből reprodukálni is tudtam, mert ha az
<img src="
után egy eltérített "link" kerül be (pl.:http://url.to.file.which/not.exist" onerror="alert('Hacked!')"
), akkor máris bajban vagyok.
És ez ugyanúgy igaz lehet millió másik tagre, képnél, szövegnél, az összes ponton, ahova csak beszúrom ezeket a tartalmakat a HTML kódban.Van esetleg bevált megoldásotok ennek a problémának a kezelésére?
Így első keresésre ezt találtam: Sanitize filtersOlyasmi (talán-)megoldást tudok saját kútfőből, hogy csinálok egy funkciót, ahol az érintett adatokat átszűröm, és kiszedem belőle az összes lehetséges HTML tag-et és event-et. Ez egy hosszú lista lesz, viszont mivel egyik adatban (cikkhez tartozó link, képhez tartozó link, cikk címe, cikk leírása) sem szerepelhet ilyen (illetve leírásban már találtam, de az már ki van szedve), ezért ez talán egy jó módszer lehet.
Aztán olyanra is gondoltam, hogy ha az előbbi ("Hacked") példát nézem, hogy ott (<img src-nál) arra játszanak, hogy maguk rakják a záró idézőjelet (" vagy ' is lehet, gondolom), és utána a saját kódjukat hívják valamilyen event mögé pakolva. Így ha találok egy (elvileg csak) linkben " vagy ' karaktert, akkor azzal kezdődően levágom, és kész.
De ezek ilyen első gondolatos megoldási kísérletek. Ha van esetleg bevált megoldás rá, akkor nem pazarolnám erre az időt.
Köszönöm.
-
Taci
addikt
válasz sztanozs #20785 üzenetére
Köszönöm (a JS topikban is) a linkeket. Ezeket már megtaláltam, átnéztem, értelmeztem (legalábbis folyamatban van.)
Ha html tagbe illesztesz be, akkor mindent célszerű kódolni, ami nem lehet URL-ben...
Itt erre gondolsz?
htmlspecialchars()&
(ampersand) becomes&
"
(double quote) becomes"
'
(single quote) becomes'
<
(less than) becomes<
>
(greater than) becomes>
----------
Az adatbázisba raktározó részt már régen csináltam, így most meg kellett néznem, mi-miért van.
És azt találtam, hogy mivel a különböző források eltérően kezelik a tartalmakat, össze-vissza kapom az adatot. Pl.:
Egyik helyről így kapom:
szöveg első része – szöveg másik része
(ez a "hosszabb" kötőjel: –)A másik helyről pedig már így:
szöveg első része – szöveg másik része
Ugyanígy az idézőjelekkel is pl.
Ezért eredetileg úgy csináltam, hogy mindegy, melyik forrásból érkezett az adat, így tároltam el:
htmlspecialchars_decode($description, ENT_QUOTES);
Megjelenítésre pedig így adtam át:
htmlspecialchars($description, ENT_QUOTES);
Ez mondjuk a "hosszabb" kötőjelen pont nem segített, de az a legkevesebb, átíratom majd, ha ilyet talál, írja át normál kötőjelre.
A kérdésem most az lenne, mivel már eléggé bekutyultam magam a sok új infóval és teendővel:
Ez-e a jó irány, hogy
htmlspecialchars_decode
használatával tároljam, és a megjelenítéshez menjen ahtmlspecialchars
?
Vagy eleve már a decode --> encode után kaptottat tároljam?Bocs, ha túl kézenfekvő dolgot kérdezek, de már nem látok tisztán.
Ez egy tisztább példa lesz:
$description = "&" . ' "' . " '" . " <" . " >" . " –"
. " &" . " "" . " '" . " <" . " >" . " –"
. " <b>bold text</b>";
Tehát mindkét változatban megkapom ezeket a karaktereket. Nekem ami fontos lenne, hogy:
- kijelezve "szépen" legyenek
- viszont a kódolás miatt ahtmlspecialchars
is használva legyen.Ezt jelenleg így tudom elérni.
$description = htmlspecialchars_decode($description, ENT_QUOTES);
$description = htmlspecialchars($description, ENT_QUOTES);
echo $description;
Kivéve a hosszabb kötőjelet, de az nem érdekel.
Az output:& " ' < > – & " ' < > – <b>bold text</b>
Mentsem akkor ezt a tartalmat (előbb dekód, aztán kód) az adatbázisba, és simán adjam át a HTML kódba illesztésre?
Bocs a hosszú megfogalmazásért.
-
sztanozs
veterán
& lehet, hiszen az választja el az URL paramétereket. A többit (és mindent ami ASCII 7 felett van) viszont célszerű szűrni/konvertálni.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
válasz sztanozs #20787 üzenetére
Arra gondoltam, megcsinálom azt, hogy szűröm az adott kontextusban rosszindulatúnak számító kifejezésekre, és ha van benne ilyen, akkor megpróbálom "tisztítani" (vagy simán csak skip, mert ha már "fertőzött", akkor valid tartalomrész amúgy sem nagyon lesz benne).
Pl. ha kép linkjét várom, akkor abban nem lehet javascript, onerror, onfocus stb.
Viszont mivel nem csak a
javascript:alert('Hacked!')
valid, hanem ajAvascript:alert('Hacked!')
is, ezért így gondoltam az ellenőrzés (egy részét) megcsinálni:if (stripos(htmlspecialchars_decode($linkToCheck), $dirty_content) !== FALSE){
echo "XSS-találat!";
}
Ettől azt várnám, hogy ha
$linkToCheck = "jAvascript:alert('Hacked!')";
akkor ahtmlspecialchars_decode
ezt visszaírjajAvascript:alert('Hacked!')
-re,
astripos
pedig mivel case insensitive, így ha arra keresek, hogy "javascript:"$dirty_content = "javascript:";
akkor sikerül elkapni.De nem, a _decode nem, vagy nem úgy működik, ahogy várnám, és találatot itt továbbra is csak akkor ad, ha a speciális HTML entity-re keresek, pl.:
jA
Mit rontok el?
-
Taci
addikt
Amúgy ajánlják ezt a fajta megközelítést is:
Another good prevention method is user’s input filtering. The idea of the filtering is to search for risky keywords in the user’s input and remove them or replace them by empty strings.
Those keywords may be:
<script></script> tags
Javascript commands
HTML markupÁrtani mindenesetre nem fog.
Ezt le tudom kezelni:
$link = "%3cScriPt%3ealert('Hacked!')%3c/script%3e";
(<ScriPt>alert('Hacked!')</script>)
mert először is visszaalakítom:$link_urldecode = urldecode($link);
aztán máris működik rá a keresés:$dirty_content = "<script>";
if (stripos($link_urldecode, $dirty_content) !== FALSE){
echo "XSS-találat: " . htmlspecialchars($dirty_content);
}
Ezt viszont továbbra sem tudom visszaalakítani:
$link = "jAvascript:alert('Hacked!')";
(jAvascript:alert('Hacked!'))
Se az urldecode(), se a htmlspecialchars_decode(), se a html_entity_decode() nem alakítja át ezt:A
ezzé:A
.Ez alapján ez HEX. Jó lehetne az urldecode() ide is, de az csak az
\X41
-re ugrik be, aA
-re nem.Nem foglalkoznék ez utóbbi esettel, csak hát ha az adatbázisban az egyik bejegyzés linkjét kicserélem erre
jAvascript:alert('Hacked!')
, akkor bizony kattintás után egyből látszik, hogy ha a böngésző nem fogná meg (about:blank#blocked), akkor futna, tehát valid kód. -
Taci
addikt
Bocsánat a sok posztért, de igazából ez az egy probléma, ami megakaszt csak (és ez most XSS-től független, lehetne itt a string tartalma
Almafa
(Almafa) is, ugyanúgy nem menne):$link = "jAvascript:alert('Hacked!')";
$link = htmlspecialchars_decode($link);
echo $link;
Ez kiírja, hogy:jAvascript:alert('Hacked!')
És az oldal forrásában is ez van. Tehát aA
-et visszaalakítottaA
-ra.Viszont magának a változónak mégsem ezt adja értéknek, ott megmarad a A karakteres.
És ebbe az if-beif (stripos($link, $dirty_content) !== FALSE){
echo "XSS-találat";
}
csak akkor lép be, ha$dirty_content = "jAvascript:";
arra nem, hogy$dirty_content = "javascript:";
(se jAvascript-re persze)Ennek az egy rejtélynek a feloldásában kérnék csak segítséget, mert akárhogy keresem, próbálom, nem megy, nem értem.
-
pelyib
tag
[filter_var] nem oldana meg?
-
Taci
addikt
válasz pelyib #20793 üzenetére
De király, köszönöm, ez nagy segítség lesz (FILTER_VALIDATE_URL).
A lenti problémát viszont továbbra is meg szeretném oldani.
@sztanozs:
Sajnos a html_entity_decode sem működik (írtam is az eggyel korábbi hozzászólásban).Még egy furcsaság:
$link = "A";
$dirty_content = "a";
$link = htmlspecialchars($link);
if (stripos($link, $dirty_content) !== FALSE){
echo "XSS-találat";
}
Erre meg bejelez...
De hát pont hogy a _decode-nak kellene ezt csinálnia... De nem, a _decode szépen kiírja, hogy ez bizony azA
karakter, viszont a változónak továbbra sem ez az értéke.Nagyon nem értem, mi folyik itt.
-
Taci
addikt
válasz sztanozs #20796 üzenetére
Igen, persze.
Egy "PHP Fiddle"-szerű helyen meg is csináltam egy kipróbálható és szerkeszthető példát: [link]
@disy68: Igen, és az alapján
A
lenne azA
karakter. [link]
A "baj" az, hogy a böngésző értelmezni tudja, aA
-bőlA
karaktert fordít, és így értelmezni is tudja. Ezt szeretném én is "elkapni", ellenőrizhetővé tenni, de nem megy. -
sztanozs
veterán
Akkor regex-el kapd el: [link]
$link='jAvascript';
echo $link . "\r\n";
$pattern = '/(&#(?:X[0-9a-f]*|0{0-8}*|{1-9}{0-9}*)(?!;))/i';
$replacement = '${1};';
$link = preg_replace($pattern, $replacement, $link);
echo $link . "\r\n";
$link = html_entity_decode($link, ENT_QUOTES);
echo $link . "\r\n";JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...