- Hivatalosan is bemutatta a Google a Pixel 6a-t
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Friss koncepciót hoz a Nothing Phone (3)
- Xiaomi 15 Ultra - kamera, telefon
- Íme az új Android Auto!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Xiaomi 15 - kicsi telefon nagy energiával
- iPhone topik
- Azonnali mobilos kérdések órája
- Yettel topik
Új hozzászólás Aktív témák
-
Tele von Zsinór
őstag
Tegyük fel, hogy van n darab cimkéd, ezeket összesen k kategóriába akarod besorolni. Kategória alatt a felhőbeli nagyságot értem, mondjuk 1-6 közt. Ezekre megcsinálod a csst.
Cimkénkénti összeszámlálás után előfordulások szerint rendezed, az első n/k bekerül az első kategóriába, (n/k, 2n/k] a másodikba, stb. az utolsóig.
-
rt06
veterán
miert szeretned a www-t kenyszeriteni? ez csak kivancsisag, nem kotekedes, csak en szemely szerint utalom, mikor egy aldomain eleg meg a www-t is beteszik
amugy az nem jarhato ut, hogy serveralias-nak megadod a www-s valtozatot is a nem www-s melle? vagy mindenkeppen kenyszeriteni szeretned?
illetve ragaszkodsz a wildcard szabalyhoz? amennyiben nem, eleg egyszeru a dolgod:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.subdomain.example.com/$1 [R=301,L]ha ragaszkodsz, meg lehet probalni negativ look-ahead hasznalataval, pl igy:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?<!www\.)([a-z0-9-]+)\.([a-z0-9-]+)\.([a-z]{2,6})$ [NC]
RewriteRule ^(.*)$ http://www.%1.%2.%3/$1 [R=301,L](jol megszivattal: negyedoraja probalgattam, mire rajottem, hogy az aldomain-ben van egy kettes ^^)
-
DeltaPower
addikt
ha jól emlékszem, FF 3.6.4-ben jött be a külön szálas flash player futtatás. egyből jött is vele a szopás, az egyik oldalunkban a flashvars/get paramétereket ugyanis random nem adta át a flash movie-nak (!!!). ha kikapcsoltam a külön szálon futtatást, akkor viszont jó volt. azóta nem próbáltam még, hogy javították-e.
-
L3zl13
nagyúr
Nekem is kevésnek tűnik ez az idézőjelezés.
Ha ékezetek vannak benne (és az alapján ahogy a js függvény funkcióját értelmezem) gondolom előfordulhat space és egyéb spec. karakterek is.Ilyen esetre az escape() vagy a Tele von Zsinór által is javasolt encodeURI/EncodeURIcomponent függvény lehet inkább megfelelő. [link]
-
biker
nagyúr
-
Sk8erPeter
nagyúr
Hát nem tudom, ha tényleg nem kapcsolgatja ki a felhasználó a cookie-k fogadását a böngészőben, vagy nem törli azokat, akkor számomra nem igazán érthető a probléma.
(#5515) fordfairlane: OK, köszi, ez is egy szempont.
Akkor viszont az általános, valóban érzékelhető, eme bolygón született weblapkészítők számára hasznos gyakorlati jelentőségével még mindig nem vagyok tisztában. -
Sk8erPeter
nagyúr
Hát ez mondjuk elég furcsa, mert a böngészőnek tárolnia kellene a session cookie-t, akár új lapon/ablakban nyitod meg, akár nem.
Nincsenek ilyen gányolós ob_start jellegű hívások, valahol egy session_destroy, unset függvénybe bepakolt session változók, stb.? Más nem jut eszembe, mint áttúrni a kódot ilyenek miatt. Azért ennyire nem szar még az IE sem, hogy ilyen jellegű probléma legyen (legalábbis én még nem találkoztam ilyennel). Főleg, hogy FF-nál is előfordul.
De lehet, hogy valakinek lesz ennél konkrétabb ötlete, mindenesetre tény, hogy új ablak/fül nyitásától független a dolog.Amúgy nem target=blank, hanem target="_blank".
-----
(#5503) DeltaPower: köszi, közben nézegetek leírásokat a view-ról, ez egész jól összefoglalja, miért jó: [Introduction to SQL Views]
Ez elég jól hangzik, ezek szerint biztonsági szempontok is közrejátszhatnak abban, hogy view-t használjunk. -
L3zl13
nagyúr
Tulajdonképpen a dupla query egy formája, és fogalmam nincs, hogy van-e előnye vagy esetleg hátránya erőforrás szempontjából, de elvileg megtehetnéd, hogy csinálsz egy view-t a táblából order by id desc limit x paraméterekkel. (Ahol x>=10.)
Utána a php-ból már csak ezt a view-t kell lekérdezgetned növekvő sorrendben, és mivel tudod, hogy hány elemet tartalmaz a view (x), meg tudod adni a limitben, hogy x-10-től x-ig. -
cucka
addikt
Nem igazán értem, hogy mit szeretnél. Az array_reverse alapesetben meghívva eldobja a kulcsokat és 0-tól újraindexeli a tömböt. Ha a második, opcionális paraméterét true-ra állítod, akkor pedig megtartja a kulcsokat - neked szerintem az első változatra van szükséged.
Ha pedig tudod előre, hogy hány elemed lesz, akkor a ciklusban array_push() helyett simán rakd be a megfelelő helyre az aktuális elemet és nem kell fordítgatni a tömböt.
-
cucka
addikt
az a baj, az array_reverse a query eredményét nem rendezi vissza, vagy nem jól írom
Hát a kódodban nem írod sehol. Ha a kódod után beszúrsz egy
$vissza_tomb=array_reverse($vissza_tomb);
sort, akkor annak működnie kéne.tényleg nincs utolsó X sor fordított sorrendben?
Mysql-ben tényleg nincs.előbb kérjem le a sorok számát, és az -X legyen a start, vége X? ez nem túl elegáns
Ez is jó megoldás, vagy ott a dupla select, amit korábban írtam. Ez van. -
cucka
addikt
A problémára igazán értelmes megoldás nincs, a mysql-ben a limit pontosan annyit tud, ami elsőre is látszik.
Esetleg lehet próbálkozni nem túl elegáns és gyors dupla select-es megoldással:select * from (select * from tablanev order by mezonev desc limit 10) tbl_alias order by mezonev asc;
-
Sk8erPeter
nagyúr
Mit értesz azalatt, hogy "amit nem illik"?
Ez igencsak igényfüggő...
Amúgy ha automatikusan escape-el a magic_quotes_gpc miatt, az se jó (ne bírálja felül a döntésedet), arra fordfairlane írt korábban megoldást: [link]
---
(#5487) Tele von Zsinór: köszönöm, mindenképp átnézem.
-
cucka
addikt
Php-ban bele lehet futni hasonló furcsaságokba, köszönhetően a típusrendszern és az ellenőrző függvények furcsaságainak. Pár hasznos tudnivaló.
Először is: a php-ban minden változónak van valamilyen típusa.
A null az egy érték és egy speciális típus is, tehát ha egy változó értéke null, akkor a típusa is null lesz. A korábban nem deklarált változók értéke (és típusa is) null, ugyanez igaz akkor, ha egy tömb nemlétező indexére hivatkozol.
A == és a === közötti különbség, hogy az előbbinél a php a megfelelő típusúra cast-olja az operandusokat, utóbbinál nem cast-ol, hanem ellenőrzi az operandusok típusát. Ezért van az, hogy egy null értékű változó és egy nem deklarált változó egyenlő lesz mindkét egyenlőségvizsgálat esetén.
Az automata cast-olással szintén érdemes vigyázni, lásd a köv. kód, ami azt fogja kiírni, hogy 102:
print ('100 forintnak 50 a fele' +2);Az is_int (is_null, stb.) függvények a paraméterként adott kifejezés típusát ellenőrzik, semmi mást. Például lásd a köv. kifejezéseket, melléjük írtam a kif. eredményét.
(true==is_int(3)) //IGAZ
(true==is_int('3')) //HAMIS
(true==is_int('3'+0)) //IGAZ
A POST-olt adatok mindig stringként érkeznek, tehát az is_int nem igazán jó ellenőrzésnek. Helyette használható az is_numeric(), ami stringként megadott számokra is az elvárásoknak megfelelő eredményt adja. Az is_int(null) minden esetben false-al tér vissza (mivel a null típus és az int típus különbözőek).Az empty() függvény megint érdekes, először is azért, mert nem függvény, nem is viselkedik függvényként. Kizárólag változót lehet neki paraméterként megadni. Az empty igazzal fog visszatérni, ha a paraméterének értéke null, 0, '0', üres string vagy üres tömb. Ezek közül a problémát a '0' érték jelenti, ami egyértelműen egy nem üres string
A fentiek mellett használható még az isset() is, ami szintén nem függvény és csak változó paraméterrel működik. Az isset akkor ad vissza true értéket, ha a paraméterként kapott változó korábban deklarálva volt és az értéke nem null.
Php-ban nagyjából ezek az eszközök vannak erre a feladatra, remélem sikerült újat is mondanom.
-
Sk8erPeter
nagyúr
Az empty() függvény miért nem megfelelő?
-----------------
(#5469) Tele von Zsinór: köszi a választ, akkor itt az ideje, hogy én is írjak pár saját hibaosztályt, és ezeket dobáljam a megfelelő helyeken.
Példának okáért milyen esetekre írtál saját hibaosztályt? Csak a gondolkodásmódra vagyok kíváncsi. -
L3zl13
nagyúr
-
Speeedfire
félisten
Úgy néz ki valamit sejthettél, mert most hibát generált egy eddig ki nem próbált típussal.
Ugye a kérést az eng alapján keresi meg, majd a hozzá tartozó url-t szétvágja a & jelnél utána az első részét includolja a többit meg paraméterként értelmezi.
A hiba csak most jött elő az utolsó 3 sornál, az érdekes az egészben h egész végig jól írja ki az adatokat, viszont a legvégén valami miatt már csak egy paraméter marad a tömbben.
A bekuld/kepgaleria oldalra ezt dobja vissza:
bekuld/kepgaleria //kérés a böngészőből
./admin/bekuld.php&mi=2 //amit csinálnia kell
./admin/bekuld.php // amit be kell töltenie
mi=2 // ami a paraméter
2 // és itt a hiba, ezt akarja includolni holott fölötte tökéletesen kiírjaif (!empty($mi['url']) and isset($mi['url'])) {
//echo $uri.'<br />';
//echo $mi['url'].'<br />';
$mi = explode('&',$mi['url']);
$i= 0;
foreach ($mi as $ertek) {
if ($i != 0) {
parse_str($ertek);
}
$i++;
//echo $ertek.'<br />';
}
//print_r ($mi);
include $mi[0];
}A htaccesben benne van az értelmező előtt a lényeg:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?oldal=$1 [QSA,L] -
-
Tele von Zsinór
őstag
A . a stringösszefűzés-operátor, nem is működik más típusra.
A mysql_query hívás nem tömböt ad vissza, hanem egy erőforrás-mutatót, amivel szépen a mysql_fetch_* függvények segítségével tudod megkapni az eredményeket.
Először le kell kérned az összes kapott rekordot akár egy tömbbe (végülis minek a kettő), aztán a shuffle hívás összekeveri őket. Innentől meg egy foreach-csel egyszerű kiírni.
-
biker
nagyúr
kicsit részletesebben:
fizetett program:
előny: teljesen testreszabott (jó esetben), nem nyílt sw, nehezebb lehet feltörni
hátrány: drágaingyenes program:
előnye: olcsóbb, ha nem nézed a befektetett energiádat
hátránya: korlátozott sablonok, korlátozott testreszabhatóság, hibás lokalizáció, több tucat ugyanolyan webáruház a neten, ismert nyílt motor>könnyen törik hobbiból, lásd phpbb fórumok tördelése......ki mit szeret, azt kap
-
cucka
addikt
ez normális dolog?
Persze hogy normális, különben nem működnének a session-ök.
Ha két külön session-t szeretnél a két php-ban használni, akkor adj nekik egyedi nevet a session_name() függvénnyel.A legjobb lenne hackelés helyett átírni mindent $_POST, $_GET és $_SESSION verzióra, igaz?
Igen. -
DeltaPower
addikt
gd2 nagyon gyenge alpha dolgok terén. ha meg tudod oldani hogy egyszínű háttérre kerüljenek a képek, akkor átméretezés után tehetsz rá egy fix méretű képmaszkot copyresampleddel alphablendinggel, de normális, aliasingtól mentes szélű kivágást gd-vel csinálni kb lehetetlen (colortransparent vagy opcity:0 kitöltés felejtős). imagemagick tudja, az viszont kevés szolgáltatónál van, és cserébe még jó bonyolult is a paraméterezése.
-
cucka
addikt
Akkor az a feladatod, hogy rajzolsz egy fehér, lekerekített keretet, aminek a közepe lyukas. Van egy képed, egy kereted, ezeket kell összekombinálni imagecopyresampled vagy imagecopymerge függvénnyel.
Ugyanaz a feladat, mint ha vízjelezni szeretnéd a képet, csak itt a vízjel az az előre megrajzolt lekerekített keret. -
cucka
addikt
Image resize függvénnyel nem oldható meg, mert (ahogy a neve is mondja), az azt tudja, hogy a képet átméretezi.
Ha vízjel szerűen szeretnéd rárakni a képet, akkor nézd meg az imagecopyresampled függvényt. Ha rajzolgatni szeretnél rá, akkor arra is megvannak a megfelelő függvények, válogass. [link]A transzparens hátterű png alatt nem tudom, mit értesz, igazából ilyen fogalom nincs. A transzparens png úgy működik, hogy a 24 bitnyi rgb információ mellett minden képpontnak van egy 8 bites "alpha channel"-je, ami gyakorlatilag azt jelenti, hogy képpontonként 256-os skálán állíthatod be az áttetszőséget. Ha olyan képet szeretnél készíteni, ami lekerekített és a "kerete" áttetsző, akkor megoldható, lásd imagealphablenging() függvény.
-
cucka
addikt
Ezért alacsony a presztízse a php fejlesztésnek. Könnyen tanulható nyelv, nulla tudással össze lehet gányolni egy weboldalt, ezért ez a szoftverfejlesztő szakma pöcegödre
. (De komolyan, nem hiszem, hogy van még egy olyan programozási nyelv, amelyből ennyire sok fogalmatlan hülye képes megélni)
A #4007-es hozzászólásnál meg elfelejtettem odaírni, hogy a te megoldásodban rossz a szuperglobálok sorrendje, a linkelt kódban ott a helyes sorrendű és teljes lista. (Meg még egy hasznos kód, ahol a kikapcsolt register_globals-t emulálja)
-
cucka
addikt
Egyrészt a termék táblában ott a termék id mezője, tehát nem kell őrizgetni a hozzákapcsolt táblákból a termék_id mezőket.
Másrészt a lekérdezésben meg lehet mondani, hogy milyen mezőket szeretnél kiválasztani. Például:
select termek.*, termek_kep.url, from termek left join termek_kep on (termek.id=termek_kep.termek_id)Ha pedig névütközés van, akkor át tudod nevezni a mezőket. Például ha a termék és a termék_kép táblában is van egy név meződ, akkor az egyiket átnevezed:
select termek.*, termek_kep.url, termek_kep.nev kep_nev from termek left join termek_kep on (termek.id=termek_kep.termek_id) -
PazsitZ
addikt
Gondolom kategória mindenképp tartozik egy termékhez, tehát ott nem kell left join.
Nem tudom milyen időközönként van szükséged a listára, milyen sűrűn változnak az adatok, de én megpróbálnék estleg olyasmi megoldást, hogy a termék és kategória táblát egy view-ba kinyerni (ezt nem is mindig kellene frissíteni), és ehhez left join-olni a képek táblát.
-
Sk8erPeter
nagyúr
És amúgy indexelve vannak valamilyen szempont szerint az egyes mezők?
Pl. cucka írta pont a másik topicban, milyen durva előnyöket nyert ő is az indexeléssel.De majd Ő vagy valaki más biztos megírja a lehetséges megoldást neked.
-
biker
nagyúr
illetve a 10-12mp az a 2. lefutástól él a cacheelés miatt, első futás 65mp
és ezzel si próbáltam:
SELECT * FROM webshop_termekek LEFT JOIN webshop_kategoriak ON webshop_termekek.termek_kat=webshop_kategoriak.kat_ID LEFT JOIN webshop_kepek ON webshop_termekek.termek_ID=webshop_kepek.termek_IDde ugyanolyan lassú
-
Tele von Zsinór
őstag
phpmyadmin exportban így néznek ki (kicsit egyszerűsítettem):
CREATE TABLE IF NOT EXISTS `tibia_news` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) default NULL,
`created_at` datetime default NULL,
`category_id` int(11) default NULL,
PRIMARY KEY (`id`),
);
INSERT INTO `tibia_news` (`id`, `user_id`, `created_at`, `category_id`)
VALUES (1, 2, '2009-06-22 00:00:00', 1);a nyelvfüggő adatokat tartalmazó pedig:
CREATE TABLE IF NOT EXISTS `tibia_news_i18n` (
`id` int(11) NOT NULL,
`culture` varchar(7) collate utf8_hungarian_ci NOT NULL,
`title` varchar(255) collate utf8_hungarian_ci NOT NULL,
`slug` varchar(255) collate utf8_hungarian_ci NOT NULL,
`body` text collate utf8_hungarian_ci NOT NULL,
PRIMARY KEY (`id`,`culture`)
);
INSERT INTO `tibia_news_i18n` (`id`, `culture`, `title`, `slug`, `body`)
VALUES (1, 'en', 'New newsticker item', 'new_newsticker_item', 'angol tartalom');
INSERT INTO `tibia_news_i18n` (`id`, `culture`, `title`, `slug`, `body`)
VALUES (1, 'hu', 'Új rövidhír', 'uj_rovidhir', 'magyar tartalom'); -
Tele von Zsinór
őstag
-
cucka
addikt
A $termekek értéke "ResourceID" lesz, de nem ismeri meg a mysql_fetch array
Igen, mert a $termekek változóba az $egy_id értékét pakolod, ami a mysql_query eredményét tartalmazza. A mysql_query pedig egy resource típusú értékkel tér vissza.Jobban járnék, ha inner join-os lekérdezést tennék bele?
Inkább left join. Általában véve kerüld azt a megoldást, hogy egy query minden sorára lefuttatsz még egy query-t, erre találták ki a join-okat, amelyek lényegesen gyorsabbak, mint a két külön lekérdezéses megoldás.Például ez jó lesz neked szerintem. Az ne zavarjon be, hogy a tábláknak adtam egy rövidebb nevet.
select wt.* from
webshop_user_termekek wut left join webshop_termekek wt
on (wut.termek_id=wt.id)
where wut.user_id='{$_SESSION['user_id']}' -
Tele von Zsinór
őstag
Nem
maradhat úgy, ahogy van, de a select querydben például úgy legyen, hogy
SELECT UNIX_TIMESTAMP(`mezonev') AS `asdf`;
És ezután nyugodtan átadhatod a date-nek. Hasonló módon kell használni a másik függvényt is, csak annak kell egy másik paraméter is, analóg módon a php date függvényével.
-
Tele von Zsinór
őstag
Ha timestampként kell, akkor UNIX_TIMESTAMP(), ha formázott dátumként kell, akkor DATE_FORMAT().
-
PazsitZ
addikt
Ha nem adsz meg oszlopot (ahogy írtam is), akkor tábla teljes tartalmából fog válogatni.
Azaz az összes sort randomba fogja rendezgetni.De ha arra gondolsz, hogy a 15., 137. 1456. 8765. 15.324. általad meghatározott sorok közül dobjon ki egyet, akkor php-ban sorsolj egyet közülük és azt az egyet kérd le...
-
cucka
addikt
Ez egy teljesen jó kreatív feladat, kis gondolkozással te is meg tudod oldani
Én így csinálnám: a cimkék előfordulása legyen m és n között, a lehetséges betűméretek pedig a és b között. Az [m..n] intervallumot kell áttranszformálni a [a..b] intervallumra, mondjuk lineárisan, hogy egyszerűbb legyen.
Ha nem jutsz előre, segítek, de amúgy ez tök jó feladat, simán menni fog szerintem
-
cucka
addikt
Namost a magic quotes az arra jó, hogy a scripted bemeneti adataiban az idézőjeleket lezárja egy \ karakterrel. A beérkező adat alatt a _GET, _POST és _COOKIE tömböket értsd.
A magic quotes beállítás alapból off, a 6-os php-ból ki is fogják szedni, ezért használata nem javasolt. Amennyiben a rendszergazdád nem hajlandó kikapcsolni, akkor a legjobb megoldás, ha írsz egy függvényt, ami az adatokat a magic_quotes_gpc beállítás alapján rendberakja/visszaadja változás nélkül. Ezáltal a magic quotes beállítástól függetlenül működni fog a programod minden szerveren.
A magic_quotes_sybase beállítás pedig csak és kizárólag sybase adatbázis esetén él, gyanítom, hogy nem olyat használsz.
-
Drizzt
nagyúr
Értem, most a href="#" miatt mindig az oldal tetjére ugrik. Lehet valami olyat megadni hrefnek, ami mellett nem változik a pozíció az ablakon belül, ha ráklikkelsz? Bár ez html kérdés persze. Csak így szép, hogy van egy link, s ráklikkelsz. Viszont ha href nincsen neki adva, akkor meg nem lesz link kinézete, hanem sima betű.
Esetleg van valami ilyen css style?
-
Drizzt
nagyúr
Az nem kéne, hogy gond legyen, Ajax-szal van megvalósítva, szóval az a tagnek van egy onClick attribja. Nálam megy. FF-ben nézted?
Klikk rá, aztán elvileg a link helyére teszi be a kommenteket.Viszont arra van valami ötlet, hogy hova rakjak egy olyan függvényt, amivel időzítve frissíteni akarom azt, hogy jobb felül be vagy-e jelentkezve, vagy mi a helyzet?
body onChange, meg onLoad se volt jó valamiért.Szóval konkrétan: jobb felül egy div van, s azt szeretném frissíteni, erre gondoltam, hogy settimeouttal meghívom a frissítő függvényt a body onloadban(index.php-n belüli bodyról van szó), de ez valamiért mégse jó így. Mi a gond? Hova kéne rakni, hogy működjön?
Új hozzászólás Aktív témák
Hirdetés
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook Laptop 14" -80% i7-10610U 16/512 FHD IPS MATT
- Eladó Lian Li O11D MINI-X gépház
- Lenovo ThinkPad P17 Tervező Vágó Laptop -50% 17,3" i7-10750H 32/512 QUADRO T1000 4GB
- FSP DAGGER PRO ATX3.0(PCIe5.0) 850W Sfx tápegység
- Eladó PNY GeForce RTX 4070 Ti SUPER 16GB OC XLR8
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- 124 - Lenovo Yoga Pro 7 (14IMH9) - Intel Core Ultra 9 185H, RTX 4060 (48 hónap garancia!) (ELKELT)
- Bomba ár! Dell Latitude E7240 - i7-4GEN I 16GB I 256SSD I 12,5" HD I HDMI I Cam I W10 I Garancia!
- AKCIÓ! nVidia Quadro P4000 8GB GDDR5 videokártya garanciával hibátlan működéssel
- AKCIÓ! Dell Precision 5820 XL Tower PC - Xeon W-2123 112GB RAM 512GB SSD 1TB RX 580 8GB Win 11
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest