- iPhone topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Honor 200 Pro - mobilportré
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Díjnyertes okosgyűrű érkezik júliusban
- Motorola Edge 40 neo - színre és formára
- Motorola Moto Tag - nyomom, követ
- Telekom mobilszolgáltatások
- Ingyen beszerezhető pár SEGA klasszikus mielőtt lekerülnek a Play Áruházból
Új hozzászólás Aktív témák
-
Brown ügynök
senior tag
válasz
Alukard #7504 üzenetére
Fölösleges ilyen terrorista módszereket bevetni.
Amit alkalmazok:
$uri = $_SERVER['REQUEST_URI'];
if ($uri == '/van-ilyen-oldal/' ){
//oldal meghívása
}
...
else {
header('Status: 404 Not Found');
#vagy 404 oldal meghívása
}Ezt még lehet bővíteni metódus, kapott változók vizsgálatával.
-
holinorby
tag
válasz
Alukard #7497 üzenetére
Szia így se sem került jobbra...
Bemásolom az oldal elejét, nos ez egy Virtuemart termékoldal, csak én próbálom átszabni, hogy úgy nézzek ki ahogy azt elképzeltem<table border="0" align="center" style="width: 100%;" >
<tr>
<td align="right"><?php echo $product_price ?><br />
</td></tr>
<tr>
<td style="text-align:right;"><?php echo $addtocart ?><br /> </tr>
</table>A lényeg az lenne, hogy az ár alatt legyen a kosárba rak gomb, és mind a kettő jobbra zárjon
Üdv!
-
válasz
Alukard #7209 üzenetére
Valóban amit írtál abban pedig neked van igazad, ezekkel tisztában is vagyok. :-) Félre értettél valószínűleg, rossz szándék nélkül írtam, hogy az LDAP szerintem nem alkalmas erre. Nem akartam rossz színben feltűnni, ezért elnézésedet kérem!
@ Coyot: Pontosan, ez nem csak PHP kérdés, viszont gondolni kell a böngészőspecifikus dolgokra. Pl: Firefox képes a windows autentikációra,de ehhez konfigurálni kell, Chrome-ról pedig nem tudok infóval szolgálni.
-
válasz
Alukard #7202 üzenetére
A kolléga azt szerette volna, hogy a windows felhasználóval autentikáljon az alkalmazás. Sajnos ez nem böngészőfüggetlen dolog. Firefox-szal például meglehet oldani, hogy használjon windows autentikációt, de ez azt jelenti, hogy minden felhasználó gépén konfigurálni kell a firefox-t. LDAP használatával arra van lehetőség, hogy egy központi helyen tárolódjanak a felhasználó személyes adatait például. jelszó,email, stb..
-
Siriusb
veterán
válasz
Alukard #7148 üzenetére
No meg van ingyenes tárhelyszolgáltatás is, akár reklámmentesen, pl. http://www.000webhost.com/
-
Vesztor87
senior tag
válasz
Alukard #7146 üzenetére
És tudja és tudja és tudja
http://www.javascriptkit.com/script/script2/loginpass2.shtml
Ezt találtam, ezzel működik.... hihetetlen, hogy ennyi kínlódás után meglett... most jön a másik kérdés, hogy vajon fórum oldal létrehozása lehetséges? Van Front Page-ben ilyen, a fórum oldalon egy másik Ugyanarra a upc-s tárhelyre feltett oldalhoz gondoltam linket tenni... vagy nem is érdemes bele fogni? -
kukinyo
addikt
válasz
Alukard #7063 üzenetére
Köszönöm ezt a bőbeszédű kioktatást.Ahhoz képest hogy a kérdésemre adott válaszhoz semmi köze,szép beszédet dobtál össze.Ne érts félre,tisztában vagyok vele hogy senki nem köteles segíteni.Viszont kioktatni sem kellene.Nem hiszem el hogy akár te,akár más elolvasott valamit és azonnal kente,vágta.Biztos hogy neked is voltak olyan dolgok amiket nem értettél,és valaki rávezetett a helyes útra.Hidd el hogy nagyon sok mindent meg tudok oldani de ezt valahogy nem fogja az agyam.Nem jövök rá a logikájára,a miértjére,nem értem ezt a részt.
Azért köszönöm hogy szántál rám némi időt. -
-
Sk8erPeter
nagyúr
válasz
Alukard #6929 üzenetére
Szerintem adatbázis-kapcsolati objektumok létrehozásához érdemes lehet a Singleton-mintát alkalmazni. Többnyire az embernek dinamikus weblapok készítésekor egyetlen adatbázis-kapcsolati objektumra van szüksége, persze lehetnek kivételek, de általában előbbi a jellemző.
A kódodban a protected láthatóságú tagváltozóknak semmi szerepe nincs, mivel nem rendeled hozzájuk az értékeket (nincs ilyen sor: $this->sql_host = "localhost"; stb.), hanem csupán lokális érvényességű változóid vannak (pl. $sql_host), így azoknak nem sok értelme van. Mivel tulajdonképpen úgyis csak egyetlen helyen (connect() függvény) csatlakozol az adatbázishoz, nem biztos, hogy érdemes egyáltalán eltárolni ezeket az értékeket az objektumon és leszármazottain belül máshol is elérhető tagváltozókba.
A "var" kulcsszó használata elavult, és igazából értelmetlen is jelen esetben, az nyugodtan lehetne protected (vagy private, de akkor a leszármazottak nem látják).
Az előbbieken túl a $query-ket sehol nem ellenőrzöd, nem kerülöd el az esetleges SQL Injectiont vagy rosszindulatot nem feltételezve csupán esetleges hibákat azzal, hogy escape-eled az átadott stringet (mysql_real_escape_string).
Plusz ha már OOP, akkor már kivételeket is illendő lenne használni, ez a die() ill. ekvivalense, az exit() nagyon ronda megoldás, ahelyett, hogy a megfelelő helyeken kezelnéd az egyes hibákat, egyből leállítod a szkript futását.
Ezenkívül a hibaüzenetbe is muszáj belekötnöm: ez a "Ne zaklasd a rendszergazdát" elég furcsa egy hibaüzenet, inkább neked kéne elnézést kérned a júzertől, hogy para van az adatbázissal, nem még jól le is cseszni.Én személy szerint a PDO-t használom, és ajánlom is a használatát. Támogatja az adatkötést, plusz azt, hogy ne kelljen explicite mindenhol escape-elni a stringeket (elintézi magának), és még sok egyebet, ráadásul full objektumorientált, és szerintem áttekinthetővé teszi a kódot.
Feltettem pastebinre azt az osztályt, amit a Singleton-mintának megfelelően írtam, általában ezt az osztályt használom adatbázis-kapcsolat kiépítésére. A konstruktor és a copy konstruktor privát láthatóságú, így kívülről nem példányosítható tetszőleges számban az objektum.
Van egy külön konfigfájlom, ahol definiálom a saját konstansokat, többek közt az adatbázis-jelszót és -felhasználónevet, ezeket a konstansdefiníciókat most az elejére tettem, középen jön maga az osztály, az osztály kódja alatt pedig egy példa látható a használatára: [PDO Singleton DB class].
Hátha bárki hasznát veszi. -
-
DeltaPower
addikt
válasz
Alukard #6879 üzenetére
ebben az esetben felesleges felbontani típus alapján 11 táblára.
általánosan elmondható, hogy minden olyan mezőt indexelni kell, ami joinban vagy feltételben szerepel. kihagyott indexelés miatt nagy (1000+ soros) táblák joinolásánál, keresésénél több nagyságrenddel emelkedhet egy query ideje -
cucka
addikt
válasz
Alukard #6874 üzenetére
Sok függ attól, hogy milyen lekérdezéseket fogsz futtatni rajta és hogy hogyan indexeled, de általában véve 100ezer sornál kezdődnek a problémák.
(Persze, ha az olcsójános bt-nél van host-olva az alkalmazás, ahol beraktak egy asztali gépet a szerverterembe és azon fut egyszerre száz oldal meg az adatbázisuk, akkor nyilván szűkebb a mozgástér)
-
Brown ügynök
senior tag
válasz
Alukard #6851 üzenetére
Kösz, kijavítottam. Megpróbáltam a host fájlba berakni ezt:
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1:8080 a10.local.com # a10 szerver# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1:8080 localhost127.0.0.1:8080 nem elérhető
Az Apache elindul, hibát nem jelez, nincs a log-ban semmi. A host fájlt állítom be szerintem rosszul. Ötlet?
-
Sk8erPeter
nagyúr
válasz
Alukard #6697 üzenetére
A korábban megmutatott függvényekkel nincs semmi baj, ha erre gondolsz, azok használati módjával van baj, ahogy cucka le is írta. Nyugodtan használd az ott szereplő függvényeket, csak jó sorrendben, jó helyen.
A saját kódok írogatásának előnye, hogy előbb-utóbb belédrögzül egy csomó minden, rengeteget lehet így tanulni - de persze sok buktató is van az elején. Plusz sok a gányolás.Azon a korszakon mindenki átesik.
Mindkét módszernek van előnye, a másik előnyeit Tele von Zsinór előttem leírta.
-
Sk8erPeter
nagyúr
válasz
Alukard #6694 üzenetére
"megtanulom, hogy hogyan ne gányoljak kezdőként (annyira)"
Akkor első lépésként gyorsan felejtsd el azt a tanácsot, hogy kapcsold ki a notice-ok jelzését (fejlesztésnél NE kapcsold ki), és ahol nem nagyon-nagyon muszáj, ott ne használd a kukac jelet a hibaüzenetek elnyomására, hanem oldd meg másképp. -
cucka
addikt
válasz
Alukard #6681 üzenetére
A kódod lényegében így néz ki:
if (valamilyen feltétel){
létrehozom a connection változót
} else {
használom a connection változót
}A notice-t az else ágban kapod, ahol szeretnéd használni azt a változót, amit az if egy másik ágában hoznál létre (de oda be se lép a programod, ugye, ezért a feltételes mód). A javaslat, hogy a mysql_connect-et hozd ki az if elé.
-
cucka
addikt
válasz
Alukard #6662 üzenetére
a lényeg, hogy egy olyan megoldást keresek aminek a segítségével adatbázisból ki lehet szedni és megjeleníteni egy többszintes menüt, úgy, hogy minden a helyén is van...
Miért nem írod meg magadnak? Gyakorlatilag egy fát kell felépíts, majd írni egy függvényt, ami rekurzívan végigszalad rajta, ez fogja kiírni a menüt. Persze, ha gyorsan kell és nem szeretnél php programozással foglalkozni, akkor felejtős, egyébként viszont megéri egyszer jól megcsinálni, ez pont egy olyan feladat, amire lehet újrafelhasználható kódot írni és mellette viszonylag érdekes is.
-
Sk8erPeter
nagyúr
válasz
Alukard #6658 üzenetére
Pl. ezek közül válogass.
De ez nem PHP-kérdés. -
Sk8erPeter
nagyúr
válasz
Alukard #6585 üzenetére
Ha már újratervezés, érdemes lehet megfontolni, hogy TIMESTAMP formában tárold az időpontot, az elég jól átlátható, könnyen kibányászható belőle az időpont (év-hónap-nap óra:perc:másodperc), meg beállítható úgy, hogy automatikusan frissüljön az aktuális időpontnak megfelelően, MySQL-nél:
CREATE TABLE `teszt_tabla` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`valami` VARCHAR( 256 ) NOT NULL DEFAULT 'blabla',
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_hungarian_ci;Vagy ha UPDATE-nél a `timestamp` = NOW() kódrészletet rakod bele a query-be (de mivel a fenti mutatott táblában a default a jelenlegi idő, ki is hagyható teljesen a kódból a timestamp beállítása).
Így talán egyszerűbb és átláthatóbb lehet a kódod, és ha nem PHP-ből kéred le az időt, hanem MySQL-ből, az nem valószínű, hogy túl sokáig foglalná az adatbázis esetleg korlátozott erőforrásait.Én mostanában legalábbis már így csinálom, gondolom mindkét gyakorlatra lehetne érveket felhozni. De a fentivel legalább semmiképp nem ronthatod el az időformátumot, meg nem kell babrálni annak a mezőnek a beállításával.
-
cucka
addikt
válasz
Alukard #6582 üzenetére
Valahogy így:
select *, date(annDate) as ujmezoneve from ...Itt a date() függvény van, ami visszaadja a dátumot szabványos formátumban (Y-m-d). Ha valamilyen egyéni formátumban szeretnéd, akkor date() helyett használd a korábban mutatott date_format() függvényt.
(Egyébként a tábláidat miért nevezgeted át a, b és c-nek? Sok értelme nincs, azon túl, hogy átláthatalanabb lesz tőle a lekérdezésed.) -
cucka
addikt
válasz
Alukard #6580 üzenetére
Például így:
select date_format(datum_mezo_neve, "%m") from tabla_neve;A fenti lekérdezés a hónapot fogja kiszedni a dátumból. A date_format dokumentációjában megtalálod az összes lehetséges értéket, amit a format string-be írhatsz. (A format string aza "%m" jelen esetben)
-
Sk8erPeter
nagyúr
válasz
Alukard #6532 üzenetére
Ehelyett a szerintem csúnya megoldás helyett jobb kikapcsolni a magic_quotes_gpc beállítást php.ini-ben (PHP 5.3.0-tól deprecated beállítás):
magic_quotes_gpc Off
esetleg .htaccess fájlból:
php_flag magic_quotes_gpc Off
vagy pedig egy korábban mutatott módszerrel elintézni (fordfairlane írta, én most csak beraktam egy függvénybe):function check_magic_quotes() {
if (get_magic_quotes_gpc()) {
function stripslashes_gpc(&$value) {
$value = stripslashes($value);
}
array_walk_recursive($_GET, 'stripslashes_gpc');
array_walk_recursive($_POST, 'stripslashes_gpc');
array_walk_recursive($_COOKIE, 'stripslashes_gpc');
array_walk_recursive($_REQUEST, 'stripslashes_gpc');
}
}a kódod elején (a függvénydefiníció után) lehetőleg hívd meg a függvényt így:
check_magic_quotes();Egyébként félreértés ne essék, a Te megoldásod (vagyis hát a másolt) is működik, nincs azzal olyan nagy baj, csak szerintem nem túl szép megoldás.
Közben találtam egy egész értelmes magyarázatot: [link]
itt a végén épp a Te kódodban látott részt mondja gyors alternatív megoldásnak, de alapvetően ő is azt javasolja, hogy a fentiek legyenek kikapcsolva. Kábé ugyanazt írta le, mint én (franc, egyszerűbb lett volna egyből linkelni), mondjuk a fenti függvényt nem írta bele, az még igen hasznos lehet.
-
Sk8erPeter
nagyúr
válasz
Alukard #6530 üzenetére
sebaj, majd utólag remélhetőleg észreveszed ezeket, és rájössz, milyen viccesek a régi kódjaid...
legalábbis én akárhány régi kódomat látom, mindben azonnal látom a hibát, meg hogy most már mit csinálnék másként.
na, de a dolgon nem változtat, hogy a kódodban tök felesleges az ob_start()...
mondjuk ez is kemény így rögtön egymás után:
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
tényleg ez egész gány -
Sk8erPeter
nagyúr
válasz
Alukard #6525 üzenetére
Csak kíváncsiságból kérdezem:
MINEK használod az ob_start();, ob_end_flush(); függvényeket? Van rá valami különleges okod? Ha nincs, csak szólok, hogy annak felesleges használata sajnos gányolás.
Az esetek igen nagy többségében tényleg nincs rá szükség.
Nyilván ki lehetne találni valami különleges okot a használatára, de az általad mutatott kód, és az "átlagos" webfejlesztés egyáltalán nem teszi indokolttá az igénybe vételét (habár szerintem még az advanced alkalmazásfejlesztés nagy részében is elkerülhető). Főleg, ha az MVC-szemlélet konkrét alkalmazására gondolunk. -
ArchElf
addikt
válasz
Alukard #3155 üzenetére
function validateTextOnly($theinput,$description = ''){
if (preg_match ("/^[A-Za-z0-9\ ]+$/", $theinput )){
return true;
}else{
$this->errors[] = $description;
return false;
}
}A különbség az, hogy preg-nél a regexp-et két slash közé kell tenni /regexp/, utána pedig módosítót lehet tenni. Gyakran lehet utána látni mondjuk <i>-t:
/abc/i
it az i a case invariant jelölése, tehát nem fog a beadott szövegben a kis- és nagybetűk között különbséget tenni.
Mondjuk a függvényed nem igazán értem (miért text a space és mondjuk az _ nem).
Amúgy a \w = [A-Za-z0-9_]AE
Új hozzászólás Aktív témák
Hirdetés
- Kerékpárosok, bringások ide!
- Autós topik látogatók beszélgetős, offolós topikja
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Autós topik
- btz: Internet fejlesztés országosan!
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- One otthoni szolgáltatások (TV, internet, telefon)
- Hardcore café
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Kompakt vízhűtés
- További aktív témák...
- Nitro AN515-56 15.6" FHD IPS i7-11370H RTX 3050 16GB 512GB NVMe magyar vbill gar
- HP Pavilion 15-ec2057ur 15.6" FHD IPS Ryzen 7 5800H RTX 3050 16GB 512GB magyarított vbill gar
- AKCIÓ!!! GAMER PC: Új i5-14400F +RTX 5070 +Új 16-32GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ!
- Corsair RM750
- Apple watch Ultra 2 black edt 2027.11.07 Apple jótállás+ Apple Care +
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
- Apple iPhone 12 128GB, Kártyafüggetlen, 1 Év Garanciával
- iKing.Hu - Motorola Edge 50 Ultra - Nordic Wood - Használt, karcmentes
- AKCIÓ! Apple MacBook Pro 16 M4 Pro - M4 Pro 24GB 512GB SSD garanciával hibátlan működéssel
- Amazon Kindle 10th Generation ébresztős tok
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest