- Honor 400 - és mégis mozog a kép
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy S25 - végre van kicsi!
- Apple iPhone 16 Pro - rutinvizsga
- Xiaomi 15 Ultra - kamera, telefon
- Okosóra és okoskiegészítő topik
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Yettel topik
- Telekom mobilszolgáltatások
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
Peter Kiss
őstag
válasz
pvt.peter #13428 üzenetére
Semennyire. A csatlakozáshoz szükséges adatok tárolói mind private-ok, hol lehet őket beállítani? Konstruktorban csatlakozik a szerverhez (miért is?), de be lehet zárni menet közben a kódban, így a későbbi részek meg is haltak, ha használni akarják. Állapotot tartalmazó cuccok nem lehetnek static változóban sosem. Ennél durvább már csak az lehetne, ha ehhez hasonló kóddal perzisztens kapcsolatokat használna valaki.
Ha jól emlékszem, a mysql nem is tud SQL tranzakciókat kezelni.
@Sk8erPeter
Van értelme wrapper-t csinálni, mert a mysqli és a PDO még nem az, illetve mind a kettő ocsmányul néz ki, plusz sosem tudhatod, mikor mondják azt, hogy PDO nincs, csak mysqli, akkor cserélhetsz mindenhol mindent, emellett meg tudja könnyíteni a tranzakciókezelést, be tudsz szúrni pl. PDO driver-specifikus beállításokat, ilyesmi.
-
Sk8erPeter
nagyúr
válasz
pvt.peter #13428 üzenetére
Igazából azt pötyögted be, ami kommentekben is megtalálható, túl sok új nincs benne. Ez a query1(), query2() elég mágikus név, mit akarsz vele megvalósítani? Mindenesetre már az elnevezés is rossz. De legfőképp az, hogy fel akarod fedezni a spanyolviaszt: ne akarj n+1-edik adatbázis-kommunikációs wrapper osztályt csinálni, ott a mysqli és a PDO, valamint remek ORM-ek vannak. Írtad, hogy a mysql_ függvények használatára vagy kényszerítve, de ezt az érvet sajnos nem tudjuk elfogadni.
Tehát minimum mysqli vagy PDO, a mysql_ kezdetű függvények használatáról 2013-ban már nincs is értelme beszélni.
Volt már korábban itt egy (v. több) hitvita a topicban, hogy Singleton-minta jó-e vagy sem, a vége az lett, hogy több érv szól a nem mellett (itt olvashatsz róla többek közt: [link], meg persze a topicban, a Singleton szóra rákeresve). -
sztanozs
veterán
válasz
pvt.peter #12042 üzenetére
google, első találat...
-
Peter Kiss
őstag
-
cucka
addikt
válasz
pvt.peter #11780 üzenetére
Nem szeretném, hogy úgy tűnjön, leugatok a magas lóról, de ez az elképzelés úgy szar, ahogy van. Egyszerűen felejtsd el, nem lesz jó, nem fog működni, sz*pni fogsz vele.
Ezt a feladatot úgy oldod meg, hogy 1 helyett 2 táblád van: az egyikben vannak a személyek, a másikban meg a személyek extra mezői. Így tetszőleges számú extra mezőt felvihetsz tetszőleges számú személyhez. -
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11778 üzenetére
"Amennyiben hozzáadtunk új beviteli mezőket akkor bizony az oszlopok nem fognak megegyezni. Tehát vmilyen módon bővíteni kellene a meglevő struktúrát"
Ez nem túl jó ötlet. Ha valaki rosszindulatúan, vagy csak szórakozottságból hozzáad még 30 textfieldet, akkor annyival több meződ lesz az adatbázisban, ahol meg ezek nincsenek kitöltve, ott mind NULL érték lesz, tök feleslegesen?
Vagy nem értem, mi a cél ezzel, mi benne a ráció, szerintem ez rossz tervezés.
Nehéz általános receptet adni, sztem jobb lenne, ha a konkrét célt írnád le (milyen célra kell nyilvántartani az adatokat, stb.), úgy könnyebben tudnánk konkrét ötletet is írni.(#11771) blacee :
ez az elérési út létrehozására vonatkozó instrukció elég furcsa "megoldásnak" tűnik valóban, kétlem, hogy ez lenne a helyes út.
Nem tudom, OpenWrt-s cuccra nem raktam még fel webszervert és PHP-t, nem próbáltam, de itt konkrét leírások vannak:
http://wiki.openwrt.org/doc/howto/php
ez konkrétan Lighttpd-re:
http://wiki.openwrt.org/doc/howto/http.lighttpd#configuring.lighttpd.and.php5
Ez alapján sem sikerül? -
Peter Kiss
őstag
válasz
pvt.peter #11767 üzenetére
Alapötletként ezt tudnám javasolni:
<?php
class View {
private $_file;
public $Data;
public function __construct($viewFile, array $data) {
$this->_file = $viewFile();
$this->Data = $data;
}
public function Render() {
require $this->_file;
}
}Ebben az esetben, a view fájljában hozzáférsz a $this-hez, így eléred a $Data-t is benne:
<ul>
<?php
foreach ($this->Data["rows"] as $object) {
echo "<li>";
echo $object->Name;
echo "</li>";
}
?>
</ul>Nehogy sima query result-ot adj a view-nak! Csak sima bejárható kollekciókkal szabad dolgoznia, amelyekben objektumok vannak.
Ne használd a mysql_ cuccokat. Válaszd a mysqli_-t vagy inkább PDO-t. -
sztanozs
veterán
válasz
pvt.peter #11584 üzenetére
XSS ellen nem vééééd, de ... paraméterezett lekérdezés - és nem kell semmit ellenőrizni, escapelni és trükközni.
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11381 üzenetére
Használd az "u" modifiert, úgy már nem cseréli le kettőre. A patternben meg ez is elég:
/(?:[^A-z\d\.-])/Példa:
$pattern = '/(?:[^A-z\d\.-])/u';
$replacement = '_';
$subject = 'teniszütő akármi lálálá ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP';
echo preg_replace($pattern, $replacement, $subject, -1);Eredmény:
tenisz_t__ak_rmi_l_l_l___RV_ZT_R__T_K_RF_R_G_PSzerk.: magyarázat:
Itt vannak a modifierek: [link]
az említett modifier:
"u (PCRE_UTF8)
This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32. UTF-8 validity of the pattern is checked since PHP 4.3.5." -
CSorBA
őstag
válasz
pvt.peter #11215 üzenetére
<input type="reset" name="torol1" id="torol1" value="Töröl" onclick="torol('input1')"/>
Ez nem anomália, hanem a kód azt csinálja amit kell
A hiba az, hogy reset az input típusa, amire a torol() eseményt kötöd. Mivel formban van, speciális dolgot csinál, vagyis alapból is resetel. Épp ezért nem szerencsés ehhez még pluszban ilyen eseményt rendelni, mert tök mindegy, hogy ellenőrzöd js-el, a reset ki fogja resetelni, mivel erre való
Így jó lesz:
<input type="button" name="torol1" id="torol1" value="Töröl" onclick="torol('input1')"/>szerk.: Offba raktam, mert ez nem a Javascript hanem a PHP topic.
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11153 üzenetére
Szívesen! Tényleg nagyon hasznos, a PHP-s kódformázó a szintaktikai hibákat is kidobja egyből.
(#11159) Speeedfire :
utólag is lehet formázni kimenetet NetBeans-szel.Úgyhogy PazsitZ jól mondta, NetBeans ugyanúgy alkalmas kódformázásra, mint az előbbiek. Pl. létrehozol egy új (akár PHP-s) fájlt, bedobod a kimeneti HTML-kódot, és megnyomod a formázást, aztán megvan.
(#11157) Speeedfire :
azért lehet jobb a PHP_EOL, mert az adott platformnak megfelelő sorvége-jelet fogja kimenetként adni, pl. \n-t vagy a Windows-os \r\n-t. -
Sk8erPeter
nagyúr
válasz
pvt.peter #11150 üzenetére
JS-kódra, HTML-kódra:
http://jsbeautifier.org/PHP-kódra:
http://beta.phpformatter.com/ -
Peter Kiss
őstag
-
Peter Kiss
őstag
válasz
pvt.peter #11093 üzenetére
Lehetne, hogy egybe rakd őket, csak akkor rugalmatlanabb a kód. Ha mondjuk most megcsinálod, amit szeretnél, és később az alkalmazásod egy másik részén is szeretnél hasonlót, de mégis kicsit más lenne pl. a body rész (akár teljesen üres, bár ennek most nem sok értelme lenne), akkor az új leszármazott osztályodban csak a _renderBody() metódust kell újraírni, minden más maradhat a helyén, feltéve, hogy nem szükséges még valami plusz hozzáadása.
Ha egybe raknád (mondjuk a Render()-be), akkor a bővítés úgy történne nagy valószínűséggel, hogy az új osztályodba bemásolnád a régi Render() kódját, és módosítgatnád pár ponton, ez nagy méretű duplikáció.
Ettől nagyobb fokú rugalmasságot pedig úgy érheted el, ha megoldod azt, amit a Render()-hez írtam a kommentbe.
-
Peter Kiss
őstag
válasz
pvt.peter #11049 üzenetére
Valami ilyesmire gondoltam, ehhez hasonló irányt nagyobb versenyzők is követtek, nem véletlenül. Hiba lehet benne, nem próbáltam ki, igazából egy sornyi megvalósítást se akartam írni, de így talán egyértelműbb.
---
#11050, Sk8erPeter, ezt hívják ocsmány megoldásnak, no offense.
---
#11051, Soak, az OO-val még nem kerültél közelebbi barátságba, de nagy pirospont a külön header és tab-ok legyártásáért, innen már csak egy lépés a NVI (non virtual interface, én is ezt használtam).
-
Soak
veterán
válasz
pvt.peter #11049 üzenetére
Szia !
http://ideone.com/nUwsA ez megcsinálja azt kódot amit szeretnél (mármint a mellékelt kódrészletet) , egy osztály tulajdonságainak megfelelő számút, majd azok értékét beteszi magába a tabsba .
Szerk : A fül neve pedig a tulajdonság neve.
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11049 üzenetére
Csak azt mondom, ami hirtelen eszembe jutott, lehet, hogy lehetne még ezerszer jobb megoldással (pl. template-ezéssel).
Esetleg gyűjthetnéd egy private $tabs = array(); tömbbe a füleket (privát osztályon belüli változó), ahol a tömb kulcsai maguk a fül azonosítói lennének. Kiegészíthetnéd az addNewTabet úgy, hogy egyből a HTML-tartalmat is hozzáadod:
public function addNewTab(tabId, tabLabel, htmlContentOfTab)
Aztán lenne egy renderTabs() metódus, ami legenerálná az összes fület ciklusokkal, úgy, hogy létrehozná a megfelelő linkeket (ez egy ciklus), meg hozzácsapná az azonosítókkal ellátott diveket (ez még egy ciklus).
Az osztályon belül a private $tabs = array(); tömbbe valahogy így gyűjthetnéd ki (ami az osztályon belül így lenne elérhető: $this->tabs):
$tabs = array(
'fragment-1' => array(
'label' => 'One',
'content' => '<p>tartalom egy.............</p>'
),
'fragment-2' => array(
'label' => 'Two',
'content' => '<p>tartalom kettő.............</p>'
),
'fragment-3' => array(
'label' => 'Three',
'content' => '<p>tartalom három.............</p>'
),
);Ez csak első megközelítés, de ezt így nagyon egyszerű lenne megvalósítani. Persze gondolni kell az XSS elkerülésére is biztonsági okokból, ha WYSIWYG-jellegű admin-felület lenne a tartalom belepakolására.
Új hozzászólás Aktív témák
Hirdetés
- Kazy Computers - Fehérvár - Megbízható?
- Nyaralás előtti hardverszemle
- Teljesen az AI-ra fókuszál az új AMD Instinct sorozat
- PlayStation 5
- Xbox tulajok OFF topicja
- AMD Navi Radeon™ RX 9xxx sorozat
- Sorozatok
- PlayStation 4
- Linux kezdőknek
- SD-kártyát vennél? Ezért ne csak a GB-ot nézd! – Tech Percek #9
- További aktív témák...
- BESZÁMÍTÁS!Gigabyte B650M R7 7800X3D 64GB DDR5 1TB SSD RTX 3080Ti 12GB Corsair 4000D Airflow TG 750W
- Bomba ár! Dell Latitude 7420 - i7-1185G7 I 16GB I 512SSD I HDMI I 14" 4K I Cam I W11 I Garancia!
- AKCIÓ! ASUS MAXIMUS VIII HERO Z170 chipset alaplap garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte B760M i5 13400F 16GB DDR4 512GB SSD RTX 3070 8GB Pure Base 500DX fehér 650W
- BESZÁMÍTÁS! ASUS TURBO RTX 3090 24GB GDDR6X videokártya garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged