- Bemutatkozott a Poco X7 és X7 Pro
- Yettel topik
- Magyarított Android alkalmazások
- Hónap végén érkezik a Xiaomi Band 10, ára is van
- iPhone topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Google Pixel topik
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
Új hozzászólás Aktív témák
-
-
Peter Kiss
őstag
válasz
Inv1sus #12085 üzenetére
Hirtelen Apache-ra tippelvén:
.htaccess a gyökérbe:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ Public/ [L]
RewriteRule (.*) Public/$1 [L]
</IfModule>---
@(#12088) Speeedfire
A PHP kb. egyetlen előnye, hogy ingyenes infrastruktúrára is fel lehet pakolni akármilyen alkalmazást. Ha nekem megvan már a Windows-környezetem, miért dobjam ki az ablakon? -
Coyot
őstag
-
cucka
addikt
válasz
Inv1sus #11848 üzenetére
Az a baj, hogy szar a reguláris kifejezés, amit használsz. A minta, amire keresni kell, az úgy néz ki, hogy width="...", ahol a három pont helyén bármilyen karakter lehet, ami nem idézőjel.
Én így oldanám meg, próbáld értelmezni. A minta végén a \s az bármilyen whitespace karakterre match-el, ebből tetszőleges számút szintén kidobok, szóval a végeredményben nem lesznek fölösleges szóközök, a minta végén az i betű pedig azt jelenti, hogy kis-nagybetűket ne vegye figyelembe (case insensitive) :
function process($str){
return preg_replace(
array(
'/width=\"[^\"]+\"\s*/i',
'/height=\"[^\"]+\"\s*/i'
),
array('', ''),
$str
);
} -
Sk8erPeter
nagyúr
válasz
Inv1sus #11848 üzenetére
Igen, mivel te a stringed legvégére adtad meg a width és height attribútumokat...
Te arra számítasz, hogy mindig így lesz? És arra számítasz, hogy csak és kizárólag <img> tagek lesznek a stringedben? (utóbbi még talán előfordulhat)Próbáld már meg, amit mutattam.
2 próba:
De tessék, itt van, amit mutattál, csak úgy, hogy az elejére teszem a height és width attribútumokat:
<img height="118" width="118" style="float: left;" alt="Minta 1" src="../user_uploads/images/oldalak/kezdolap/pic1.jpg" />
Screenshot:
Most már hiszel nekem?
-
Sk8erPeter
nagyúr
válasz
Inv1sus #11846 üzenetére
Igen, elég sok hibalehetőséget rejt magában.
Pl. azt, hogy konkrétan kiszedi az összes attribútumot pl. egy ilyen esetben:<img width="123" src="asdasd.jpg" height="123" title="blabla" alt="akármi" style="border:1px solid red;" />
amit készít belőle:
<img />Asszem ez neked nem lesz túl jó.
itt kipróbálhatod:
http://preg_replace.onlinephpfunctions.com/Hint: (.*) - ez így nem igazán szűkíti le a dolgokat.
Szerk.: áááá, inkább mutatok rosszabbat, hogy még inkább elrettentsen.
<div title="valami"><img width="123" src="asdasd.jpg" height="123" title="blabla" alt="akármi" style="border:1px solid red;" /><div style="color:red;" title="asd">ezmegaz</div><p style="color:red;" title="itt is">namégegy</p>
</div>ebből csinál egy ilyet:
<div title="valami"><img>namégegy</p> </div>
elég brutálisan szétkúrja. -
Tele von Zsinór
őstag
válasz
Inv1sus #11701 üzenetére
Mindossze annyit tesz, hogy a filerendszered mas karakterkodolast hasznal, mint a weboldalad. A gyorsmegoldas kiiraskor konvertalni a ketto kozt, de ez borzalmas problemakat fog okozni hosszutavon.
Elottem kollega kerdese jogos, miert teszel ekezetes karaktert a filenevbe? Felteltelezem, hogy adatbazisbol jon az adat, egyszeruen az id mezo alapjan nevezd el a kepet. Ha megsem adatbazisbol jon (mert mondjuk a kliensnek csak egyszeruen fel kell toltenie a kepet ftpn) akkor mondd meg neki, hogy ne hasznaljon ekezetes neveket.
-
Tele von Zsinór
őstag
válasz
Inv1sus #6738 üzenetére
Nem olyan bonyolult az. Ajánlott megnézni a FireXPath ff. kiegészítőt (vagy más böngészőre alternatíváját), gyorsabban össze lehet vele rakni egy queryt, mint ha php-ban próbálkozol.
A submitolásra: nézd meg, az oldalon a form mit, milyen néven és hová küld. Ha nincs benne olyan hidden input, ami valamilyen csrf-védelmet lát el, probléma nélkül tudsz postolni a php kódodból is - csak le kell másolni azt, ahogy a form küldené az adatokat. Ha van token, akkor +1 kérés, és a session cookie-ra is oda kell figyelmed, de nagy valószínűséggel így is megúszod csak szerveroldalon.
-
Sk8erPeter
nagyúr
válasz
Inv1sus #6735 üzenetére
Adott oldal meghatározott tartalmának kiszedéséhez javaslom a DOMDocument osztály tanulmányozását. (többi, DOM-mal kapcsolatos osztály: [link])
Itt is elérhetők olyan függvények, mint JavaScriptben, hogy getElementById(), getElementsByTagName(), stb.
A dokumentációja php.net-en mondjuk elég gyenge, nekem elég sokat kellett tanulmányoznom a metódusok fejlécei fölött lévő kommentelt részeket, amik a dom.php-ben elérhetők voltak (pl. Komodo IDE-ben vagy phpDesignerben rámész, hogy ugorjon a metódus deklarációjára, és akkor beleugrik abba a fájlba, ahol ezek megtalálhatók).
Viszont nagyon hasznos, jól működik.Persze az input mezőből történő submitolást már JavaScripttel kéne elintézned.
-
Speeedfire
félisten
válasz
Inv1sus #6259 üzenetére
Igen!
A postolt adatra nyomsz egy md5-öt, és összehasonlítod az adatbázisban már előre md5-ként mentett jelszóval.
Én pl használom még az md5-öt random sztring generálásra is, amiből generálom az meg az idő, szóval 2 egyforma sem lehet.Itt egy egyszerű példa. [link]
Én anno mikor csináltam a login rendszert ez volt az alap amiből kiindultam.
-
RedSign
tag
válasz
Inv1sus #6257 üzenetére
Hogy-hogy semmire?
A jelszó semmire sem jó?
Egyébként olyan adatok esetén hasznos, amiket a felhasználó visz be és csak összehasonlítani kell velük (megerősítő kód is ilyen például) vagy ha sütiben tárolod a felhasználói azonosítót és automatikus beléptetést alkalmazol vele...
-
PazsitZ
addikt
válasz
Inv1sus #6205 üzenetére
meghívja az ott lévő konstruktorokat meghívja a konstruktort. Egy osztálynak egy konstruktora van. Ha "többszörös öröklés" (lánc) áll fenn, akkor a folyamatos parent::__construct() hívásokkal lehet meghívni több konstruktort.
Meghívni egyáltalán nem muszáj, pont ezért nem automatikus, hanem kézzel kell megadni, ha szükséged van rá.
Ha bármit megváltoztatsz akkor a következő futtatásnál a változtatott kód fut le.
Ha pl. változó érték megváltoztatásra gondolsz, az az általános láthatóság és írhatóságtól függ, hogy tudod-e.
Remélem a válaszom segített. -
Speeedfire
félisten
válasz
Inv1sus #6184 üzenetére
Engem anno lebeszéltek róla, azt mondták kell az erős oop szemlélet/elmélet, hogy értesm is, hogy mit csinálok. Most ezeket a docleres előadásokat nézem, jelenleg az első részt. Eddig elég érdekes és jól is magyarázza srác. Elmondja, hogy mi mire való, mire érdemes figyelni. 2*1órás az anyag. Majd délután helyzet jelentek.
-
Sk8erPeter
nagyúr
válasz
Inv1sus #6134 üzenetére
Azt nem tudom, mennyivel rontja a teljesítményt, ha egyáltalán észlelhetően rontja, mindenesetre semmiképp sem jó gyakorlat kihagyni a változók meglétének ellenőrzését, ha olyanról van szó, ami esetleg hiányozhat, mint pl. a $_GET értékek.
Ezeket is érdemes lehet inkább átadni egy másik változónak, aminek pl. van egy alapértelmezett értéke, de ha pl. a $_GET be van állítva, és "valid" (a saját feltételeid szerint), akkor az annak megfelelően módosul.
Pl. ha van egy $_GET['page'] változó, amire számítasz, akkor azt ellenőrzöd, pl. így (leegyszerűsített példa):<?php
// ......
try{
$page = 'home';
if( isset( $_GET['page'] ) ){
if( is_valid_page( $_GET['page'] ) ){ //feltételezzük, h megvan az is_valid_page() függvény.
$page = $_GET['page'];
}
else{
throw new Exception('Hibás címet adott meg!');
}
}
// .......
} catch (Exception $e){
// kivétel kezelése... pl.:
echo $e->getMessage();
}
?> -
Sk8erPeter
nagyúr
válasz
Inv1sus #6132 üzenetére
Egyrészt lehet, hogy az újabb XAMPP verzióban (php.ini-ben) a default beállítás az volt, hogy notice jellegű hibákat is dobjon, ha pl. vizsgálgatsz olyan változót, ami nincs is definiálva, és előtte nem végeztél isset() ellenőrzést (tipikusan pl. a $_GET változók lehetnek ilyenek; megjegyzem, ezt a hibajelzést érdemes is bekapcsolni tesztelés idejéig, mert a fejlesztő hibája, ha ezek a hibák megjelennek), másrészt újabb PHP-verzió is lehet, aminél egyes deprecated függvényeket/globális változókat/stb. megszüntettek biztonsági vagy egyéb szempontok miatt. Egyéb ok is lehet, de ezek a valószínűek, ha egyébként sikeres volt a telepítés.
-
#10382336
törölt tag
válasz
Inv1sus #6086 üzenetére
Megoldódott. Index.php-vel így működik:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>HTML fájl</title>
</head>
<body>
<h3>Elérhetőségeink</h3>
<?phpprint '<h3>Szöveg</h3>';
?>
</body>
</html>Köszönöm a segítséget mindenkinek!!!
-
rt06
veterán
válasz
Inv1sus #6045 üzenetére
gondolom egybol a 3072 x 2048 felbontast, nem?
merthogy az (de a linkelt kepen kivul semmi) nem kerul megjelenitesre sem (a "zoom" pedig a megjelenitett 400 x 267-es kep nagyitasa, szoval abbol osszerakni ertelmetlen, nem nyersz plusz informaciot)
meg nem jelenitett tartalmat nem letolthetove tenni pedig pofonegyszeru (aki ezt maskent gondolja, toltse mar le a c meghajtomon levo boot.ini file-t), de nem ez volt az eredeti kerdes, ha jol ertettem -
-
Sk8erPeter
nagyúr
válasz
Inv1sus #4206 üzenetére
Azért azt se ártana ellenőrizni előtte, hogy létezik-e egyáltalán a $_SESSION['loggedname']:
if( isset($_SESSION['loggedname']) )
esetleg még kiegészítheted azzal is, hogy nem üres-e
if( isset($_SESSION['loggedname']) && !empty($_SESSION['loggedname']) )
Utóbbi mondjuk nem kötelező - de előbbiért, ha a display_errors be van kapcsolva, akkor amennyiben nem létezik az adott változó, dob egy hibanotice-t.
Egyébként így elsőre nem világos, hogy most itt miért hasonlítgatsz össze - az nagyon nem biztonságos, ha session változóban tárolod a jelszavadat. De ha pl. adatbázisból szeded, akkor oké. -
DeltaPower
addikt
-
Sk8erPeter
nagyúr
válasz
Inv1sus #4173 üzenetére
És ez most miért lenne hiba? Sehol nem kötötted ki, hogy hány ilyen karaktert szeretnél engedélyezni, csupán escape-elve töltötted fel az adatbázisba. Pont azt csinálja, amit mondasz neki.
Mellesleg helytelen így használni a $_POST-ot: $_POST[ki],
helyesen $_POST['ki'] vagy $_POST["ki"]
Fontos, hogy használd az aposztrófot ( ' ) vagy az idézőjelet ( " ).
Ugyan az általad használt módon is működik, de bizonyos esetekben gond lehet belőle. -
Coyot
őstag
-
Sk8erPeter
nagyúr
válasz
Inv1sus #4134 üzenetére
ha sikeres volt a feltöltés, mondjuk csinálsz egy ilyet:
session_start(); //még a fájl elején!!!
// ...
$_SESSION['success']='Fasza, sikerült feltöltened.'; //lehet felőlem $_SESSION['sikerhurra']='blabla'; is, tehát a név tök mindegy, beállítod asszociatív tömbindexeléssel a tömb egyik elemét egy bizonyos értékre
// blabla, header-rel visszairányításItt pedig abban a fájlban, ahova visszairányítod a feldolgozó oldalt, kiíratod a session változót, ha az létezik (ami nyilván akkor lehet, ha a feldolgozó fájlban beállítottad), aztán megszünteted (hogy ne írja ki minden alkalommal, mindössze egyszer írja ki):
if( isset( $_SESSION['success'] ) ){
echo $_SESSION['success'];
unset( $_SESSION['success'] );
}Ennek analógiájára lehet kiíratni a hibaüzeneteket is, elég rugalmas a dolog, és a session erejéig bárhonnan elérhető, hacsak meg nem szünteted (unsettel).
Új hozzászólás Aktív témák
Hirdetés
- One otthoni szolgáltatások (TV, internet, telefon)
- sziku69: Fűzzük össze a szavakat :)
- SSD kibeszélő
- alza vélemények - tapasztalatok
- Nyaralás topik
- Túraautó topik
- Magga: PLEX: multimédia az egész lakásban
- Futás, futópályák
- A fociról könnyedén, egy baráti társaságban
- Gigabyte alaplap topik
- További aktív témák...
- LG 65BX - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- LG UltraGear Gaming Monitorok: FRISS SZÁLLÍTMÁNY -30%
- AKCIÓ! Dell Alienware M17 R3 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2070 8GB WIN10
- Lenovo Thinkpad P16 G2 - i9-13980HX, 64GB, 1TB SSD, 16" WQUXGA (3840 2400), RTX 4090 (ELKELT)
- AKCIÓ! MSI B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Zalman 600W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged