- Redmi Watch 5 - formás, de egyszerű
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Google Pixel topik
- Apple Watch Sport - ez is csak egy okosóra
- Nem várt platformon a OnePlus Nord 5
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Megérkezett a Google Pixel 7 és 7 Pro
- Samsung Galaxy Watch6 Classic - tekerd!
- Garmin Instinct – küldetés teljesítve
- Google Pixel 9 Pro XL - hét szűk esztendő
Új hozzászólás Aktív témák
-
Speeedfire
félisten
válasz
Peter Kiss #11299 üzenetére
Hát, én nem is találom ennek a forrását.
Ezt találtam, ez működik is legalább. -
Peter Kiss
őstag
válasz
Speeedfire #11298 üzenetére
Itt a timespan() függvényt bányásznám elő.
-
Speeedfire
félisten
Relatív időt szeretnék kinyerni egy dátumból. Ezt találtam rá, de nem működik. Esetleg valakinek más forrása nincs?
példa
$id = "2012-08-17 19:20:35";
echo valami($id); //1 hónapja -
Sk8erPeter
nagyúr
válasz
fordfairlane #11295 üzenetére
Ha megnézed, kapott válaszokat, csak furán reagált, ha mondta volna, hogy "de nem ezt értem 'technikai hátrányok' alatt, hanem azt, hogy...", akkor no para. Amúgy tényleg elharapózott mostanság egy kis feszkó itt a fórumon, oké, mondd ki, hogy én is tehetek róla.
(de asszem nem csak az én saram, ha visszanézel
)
-
fordfairlane
veterán
válasz
Speeedfire #11294 üzenetére
Hát én már ritkán használom, mert gusztustalan, ami itt folyik.
-
Speeedfire
félisten
válasz
fordfairlane #11293 üzenetére
Olyan a fórum, ahogy a felhasználók használják.
-
fordfairlane
veterán
válasz
Speeedfire #11292 üzenetére
Ez egy ilyen fórum. Hányás.
-
Speeedfire
félisten
Feltett egy egyszerű kérdést, erre mindenki nekiesik...
-
Sk8erPeter
nagyúr
válasz
DelArco #11287 üzenetére
Még egy az előzőn kívül: már meg lett válaszolva a kérdésed, csak úgy tűnik, neked nem sikerült felfogni.
(ne a válaszadók szellemi képességeit vond kétségbe plíz)
Az általad "technikai hátránynak" nevezett valami épp az UTF-8-karakterek támogatottságának esetleges hiánya.
Ha ez sem elég az előzőeken kívül, akkor tényleg jobb, ha befejezzük a témát. -
PazsitZ
addikt
válasz
DelArco #11287 üzenetére
Nem tudom mit vársz, felteszel egy kérdést, amit önmagad egy linkkel megválaszolsz.
Erre írjuk, hogy ott van a linkben a válasz, felmerült itt leírt példa is.
Mit vársz még? Tovább megyek, ha nem akarod használni, minek érdekel egy ilyen szélsőséges érdektelen probléma/kérdés? -
válasz
Sk8erPeter #11286 üzenetére
Bocs befejezem inkább úgy látszik túlságosan bonyolult vagy értelmezhetetlen kérdést tettem fel.
-
Sk8erPeter
nagyúr
válasz
DelArco #11282 üzenetére
Lehet ékezetes változókat használni. De tényleg nem értelek. Már pont elkezdtem volna leírni jópár szempontot, ami miatt kifejezetten kerülendő az ékezetes változónevek használata, de most látom, hogy a szempontok pont az általad linkelt cikkben van leírva. Akkor mi a kérdésed?
Na mindegy, ha már leírtam (de nem folytatom akkor a sort, mert ott van minden egyéb szempont is a linkednél):
Pl. ha kiadod egy amerikai ügyfélnek az ékezetekkel teleb@szott kódodat, akkor az szerinted melyik éghajlatra fog küldeni, és miket fog mondani a szüleidről?Mit csinálsz, ha olyan billentyűzet-kiosztás előtt vagy, ahol nincsenek ékezetek? Mit csinálsz, ha épp olyan konzolról (pl. SSH-n bejelentkezel vhova) kell kódot megírni vagy változtatni, ahol az ékezetek nem támogatottak, vagy helytelenül jelennek meg? Vagy ha van olyan asztali kliens kódszerkesztőd, ahol ugyanez a helyzet? Ez csak egy pár darab szempont a rengeteg közül, de első körben ennyi elég lesz.
-
Speeedfire
félisten
.
-
PazsitZ
addikt
válasz
DelArco #11282 üzenetére
Lehetni lehet.
De a szabványok nem viccből vannak kitalálva. Ettől függetlenül elvileg lehet ciril betűs kódot is írni, meg magyar ékezetest is, csak nem érdemes.Egyébként már pont a linked első hozzászólásában van 1-2 példa miért nem biztos, hogy ez jó ötlet.
Az az érv, hogy te magyar vagy és nem tudsz angolul, meg szebb a magyar ékezetes szöveg, hát hogy is mondjam..., inkább nem mondom
.
-
válasz
Peter Kiss #11281 üzenetére
En ugy tudtam lehet.
[link]És általában, ha programozol, érdemes mindent angolul elnevezni, hogy gyakorlatilag bárki megértse?
Jo valasz csak nem ez lenne a kerdes. Olyan problemak erdekelnenek amik azon tul elojonnek hogy valaki nem erti meg egy ekezetes valtozo nevet. -
Hello
Lenne egy olyan kérdésem hogy milyen technikai hátránya van az ékezetes változónevek használatának?
Nem akarok ilyesmit csinálni mielött valaki belekezdene de mindenki úgy fél tőle mint ördög a tömjéntől de nem találtam konkrét infót arról hogy miért rossz ez.
Köszi előre is a válaszokat! -
vakondka
őstag
Sziasztok,
Ismeri valaki a Google Rich snippets-et?
Próbáltam beilleszteni egy webshopban a termék részleteinél a szükséges adatokat,
de az árat nem akarja mutatni, pedig elvileg megtalálja a weboldalonEzt írja a teszt végén:
Figyelmeztetés: In order to generate a preview with rich snippets, either price or review or availability needs to be present.
Pedig ott van a price is, meg az availability is...szóval nem értem mi a gond...Ez a link az adott oldal teszteléséhez: [link]
Bármi ötlet?
-
KKope
tag
válasz
Sk8erPeter #11275 üzenetére
OK, működik!
Szintaktikai hiba volt
MÁS KÉRDÉS:
PHPMYADMIN FELÜLETLEN HOGY ÁLLÍTOK BE EGY-SOK KAPCSOLATOKAT A TÁBLÁK KÖZÖTT?
KKope
-
KKope
tag
válasz
Sk8erPeter #11275 üzenetére
Persze
Amit Lacces kolléga írt azt bemásoltam a MYSQL cmd-be és ott sem fut le.
-
Sk8erPeter
nagyúr
Csatlakoztál egyáltalán az adatbázishoz előtte?
Egyébként az egyértelműség érdekében javítsd mysql_fetch_assoc()-ra, ÉS stringszerűen használd, ne úgy, ahogy most csinálod:
echo $row[szallitonev];
HELYETT
echo $row['szallitonev']; -
KKope
tag
válasz
Lacces #11273 üzenetére
Igen, valószínűleg erre lesz szükségem.
$list = mysql_query ("SELECT sz.szallitonev, t.telephelynev, th.telephelynev, mt.cikkszam, j.jellegnev, m.datum
FROM mozgas_fej as m
LEFT JOIN szallito as sz ON sz.szallito_id=m.szallito_id
LEFT JOIN telephely as t ON t.telephely_id = m.honnan
LEFT JOIN telephely as th ON th.telephely_id = m.hova
LEFT JOIN mozgas_tetel as mt ON mt.bizonylatszam = m.bizonylatszam
LEFT JOIN jelleg as j ON j.jelleg_id = m.jelleg_id)");
while ( $row = mysql_fetch_array ($list))
pl: echo $row[szallitonev]Sajnos a lekérdezés nem ad semmi eredményt.
Hol rontottam el?
-
Lacces
őstag
Valami ilyemsi lekérdezés kell neked:
SELECT sz.szallitonev, t.telephelynev, th.telephelynev, mt.cikkszam, j.jellegnev, m.datum
FROM mozgas_fej as m
LEFT JOIN szallito as sz ON sz.szallito_id=m.szallito_id
LEFT JOIN telephely as t ON t.telephely_id = m.honnan
LEFT JOIN telephely as th ON th.telephely_id = m.hova
LEFT JOIN mozgas_tetel as mt ON mt.bizonylatszam = m.bizonylatszam
LEFT JOIN jelleg as j ON j.jelleg_id = m.jelleg_idHa így nézz ki a táblád, frissítsd, én a honnan, hova mezőket átírnám: kezdohely, veghely vagy valami ehhez hasonló. Ha a lekérdezésben rövidítést szeretnék használni, akkor ott erősen bekavarhat. Plusz a külön tábláknál, mint a szallito, jelleg, stb. lehetne sima 'id' mezők is... Egy ennyire szétszedett adatbázis szerkezetnél felesleges
-
Soak
veterán
Ez inkább adatbázis kérdés, de van több megoldás is, az egyik az, ha listázod (gondolom foreachel probálkozol) akkor a $mozgas_fej->id; nem lesz kiírva vagy eleve úgy kéred le adatbázisból, hogy pl SELECT honnan,hova,szallito_id,jelleg_id,datum FROM mozgas_fej (ez MySQL kód).
Szerk: Most ujra elolvasva a kérdésedet rájöttem, hogy félreértettelek, akkor ezt egy JOIN-al kell megoldanod .
-
KKope
tag
Sziasztok!
Szeretnék kérni egy kis segítséget azzal kapcsolatban, hogy egy raktárprogramban adatbázisában szeretném megcsinálni az eszközmozgást.
A táblákat csatoltam.
Én igy gonodltam a táblákat. A mozgasfej tába tartalmazná maga a mozgás tulajdonságait.
A mozgas tét pedig a bizonylatszám alatti téteteleket (cikkszámokat) Ezt azért csináltam így mert ugye egy bizonylatszám alatt több tételt is mozgathatunk.A mozgasfej táblába ID-kat töltünk.
A kérdésem, ha PHPben szeretném kilistázni a mozgásfej tartamát akkor azt hogy tudom megcsinálni. Ha csak simán kilistázom a tábla tartalmát az ugye nem jó mert ott ID-k szerepelnek. Igazából én az ID-hoz tartozó megnevezéseket szeretném kiíratni.
Ehhez milyen lekérdezést/php kódot kell alkalmaznom az űrlapon? -
Sk8erPeter
nagyúr
válasz
Peter Kiss #11263 üzenetére
"fokozatosan jövök le a cuccról"
Kitartás, minden csak akaraterő kérdése!
-
Lacces
őstag
válasz
Tele von Zsinór #11267 üzenetére
Fúúú, ez nagyon állat! Nagyon tetszik ahogy elmagyarázza, milyen problémákba ütközhetünk a jövőben (adatb, memóriában tárolás) stb. Köszönöm!
és Athlon64+ Neked is köszönöm a magyarázatot, így már értem.
A két írás sokat segített
Akkor így összeségében ez a tervezési minta a legalkalmasabb egy adatbázis kapcsolat felépítésére?
-
Tele von Zsinór
őstag
válasz
Lacces #11264 üzenetére
Ezt a cikksorozatot ajánlom, Fabien Potencier írta, aki például a symfony keretrendszer eredeti szerzője. What is Dependency Injection?
-
Peter Kiss
őstag
válasz
Lacces #11264 üzenetére
A dependency injection-ben semmi sötét mágia nincs, annyiról szól, hogy egyértelműen megmondod, mi kell az adott objektumot létrejöttéhez/működéséhez, vagy épp egy metódus működéséhez ahelyett, hogy valami kiskaput válassz: ez lehet a new operátor (pfuj
) vagy épp az említett singleton vagy singleton-jellegű global object. Constructor-okban lehet sokszor olyat látni, hogy a paraméterlistája tök üres, de van benne vagy 5-ször valamilyen példányosítás new-val vagy mással (ez egyébként amiatt is bukta megoldás, hogy a ctor-okban nem végzünk semmilyen műveletet gyakorlatilag [példányosítás, adatbázishoz kapcsolódás, bármi ilyesmi]).
A container ezen csak annyit segít, hogy ne kelljen annyit írnod, hogy egészen egyszerű legyek. Ha lenne egy olyan osztályod, aminek a ctor-a kérnek másik 3 objektumot, akkor nem szívesen írnál ilyeneket mindenhol, ahol kellene:
new (new (), new (), new ())
A container-ek ezen tudnak segíteni: az adott megoldás leírását használva felépíted, hogy, ha valaki X objektumot kér, akkor annak a függőségeit hogyan oldja fel, és utána csak ennyit kell írnod:
container.GetService(type)
Általában a container-ekhez járnak különböző lifetime service-ek (vagy írhatsz sajátot), ilyennel tudsz singleton-féle működést előidézni.
---
Az a final indoklás nem győzött meg, teljes osztályt szerintem a legritkább esetben kell lezárni. Ha azt szeretnéd, hogy valami az öröklődés ellenére is változatlan maradjon, azt rakd private-re vagy final-re, és kész.
-
biker
nagyúr
facebook login más oldalon keresztül --- kapcsolatosan kérdezhetek, vagy túl offline lenne?
-
Lacces
őstag
válasz
Peter Kiss #11263 üzenetére
Öhm, a DIC-hez tudnál adni tutorial anyagot? Megleltem a te írásodat is, de úgy igazából nem bírtam felfogni...
Lehet, kell egy kis idő.
Amúgy van különbség a sima dependency injection és dependency injection container között?A final-t pedig én azért tartom jónak (most kis mongodbs kitérővel ugyan, de Java-t rágom át újból) mert a Java-nál volt erről szó, hogy minden osztályból, amiből nem képzünk további alosztályt, azt érdemes final-ba rakni, hogy ne képezzenek belőle alosztályokat/alpéldányoka. Így megakadályozható, hogy futási időben a hierarchiában felette lévő osztályokhoz hozzáférjén...
Bár eddig még Yii-nél csináltam pár ilyen kis alkalmazást, ott még nem jelzett hibát, de majd meglátom, mit hozz a jövő ez ügyben.
-
Peter Kiss
őstag
válasz
Lacces #11262 üzenetére
Azt, hogy mit zársz le, és mit nem, nehéz kérdés, általában érdemes arra törekedni, hogy kiterjeszthető legyen majdnem minden osztály, de a kötelező dolgokat ne ronthassa el senki sem.
A singleton faszság, azért.
Ha singleton-szerű működést akarsz, akkor használj dependency injection container-t (de egyébként is érdemes).
---
Egyébként a válaszoló is csinál érdekeset, a beállítások betolásának biztosan nem így kellene lennie (parse_ini_file-os történetre gondolok), illetve szerintem ctor-ban nem szabad kapcsolódni az adatbázishoz (én is csinálok ilyeneket, de fokozatosan jövök le a cuccról).
-
Lacces
őstag
válasz
Peter Kiss #11261 üzenetére
Hm, érdekes.
Lenne pár kérdésemAmúgy egy Auth osztálynál, amit valszeg már nem fog tovább kiterjeszteni ( alosztályt létrehozni belőle), azt miért nem zárja le final kulcsszóval?
Másik kérdésem, adatbázis kapcsolódásnál, miért nem használja a singleton minta implementálását?
-
Peter Kiss
őstag
Bárkinek érdekes lehet: PHP Authentication Class
A kérdés megválaszolója mondhatom, hogy a szívemből szólt.
-
Brown ügynök
senior tag
válasz
Peter Kiss #11258 üzenetére
"Adott felhasználó bejelentkezve tartása" - igen, erről beszéltünk. E területen a megoldási elveink egyeznek pl.: sütibe csak session kulcs.
-
Peter Kiss
őstag
válasz
Brown ügynök #11256 üzenetére
Adatbázist használva is van serialization, disk művelet, de még a remote call is befigyel, szóval gyorsabb nem lesz.
---
A session-kezelést illene szétválasztani:
"Adott felhasználó bejelentkezve tartása"
AdattárolásAz elsőhöz először az kell, hogy párhuzamosan menjen adatbázisban és cookie-ban is a session-kulcs kezelése:
Adatbázisban: session-kulcs, user ID, valamilyen gépazonosító (IP, user agent), létrehozás dátuma, lejárat dátuma, perzisztens-e
Sütibe: egyedül a kulcsot kell leküldeni (megfelelő lejárati dátummal, HTTP only, miegymás)Kulcsnak teljesen mindegy, ki mit használ, annyit kell csak figyelembe venni, hogy az adott környezetben lehetőleg egyedi legyen, pl. egy V4-es GUID teljesen jó.
Ennek cseréjét mindenképpen meg kell oldani, hiszen van 2 pont, ahol mindenképp kell: bejelentkezés és a kijelentkezés.Az adatbázisban a session lejárati idejét változtatni kell, amennyiben a session nem perzisztens: mindig ki kell tolni annyival a lejárati időt, amennyivel akarjuk (mondjuk 20 perc), minél hosszabb ez az idő, annál nagyobb a biztonsági kockázat (esetleg pl. akkor, mikor úgy jön a kérés, hogy már csak 1 perc van hátra a lejáratból, akkor cserélünk egy session id-t is).
Az adatok mentése már egy más dolog, ott annyit kell tennünk, hogy meg kell felelni az adott PHP elvárásainak (5.4-ben megjelent interface már említve lett), ez pl. adatbázisba mentés esetén azt jelenti, hogy meg kell oldanunk az adatok serialization-jét és az adatbázisba való benyomását (pl. egy TEXT típusú mezőbe a session id-hoz kötve).
Ha valaki ki akarja védeni a man-in-the-middle támadást, akkor használjon SSL-t.
-
-
Brown ügynök
senior tag
válasz
CSorBA #11253 üzenetére
Én is adatbázist használok, mert olvastam, hogy a $_SESSION tömb tartalmának előállítása fájlműveleteken alapul és sok adat esetén belassulhat. Adatbázist használva szerintem, strukturáltabb is lesz a kód.
Egy tapasztaltabb embert én is szívesen meghallgatnék ez ügyben.
-
CSorBA
őstag
Ezzel nem teljesen értek egyet, bár az is lehet, hogy én gondolom rosszul.
Szerintem a SESSION biztonságosabb, mint az adatbázis, de csak abban az esetben, ha védjük a SESSION id lopásától. (most tételezzük fel, hogy a szerveren teljesen védve van a sessiont tároló fájlrendszer)
Itt eleve pont ettől védem. Nézzük mi van a sessionunkban:
- ugye alapból van neki egy id-je
- userid (ha ez létezik, akkor be van lépve, illetve tudom, hogy kiről van szó)
- security_token - md5(IP-USERAGENT)Minden oldalletöltésnél legenerálom a felhasználóm (vagy támadóm) md5(IP-USERAGENT) hashét, és összehasonlítom a jelenlegi SESSION-ban security_tokenjével. Ha nem egyeznek, kidobom.
Ha ellopja a session id-t, akkor jó esetben el fog térni ez a security_token. És kidobom.
Emellett csinálhatom azt, amit Brown Ügynöknek írtam, hogy folyamatosan változtatom a SESSION id-t.
Most nem értem, miért kellene adatbázisban tárolnom? Ha ellopja az id-t, és még sikerült ugyanazon ip-t, user agentet is előállítania, akkor már olyan mindegy, hogy db-ből nézem, vagy sessionból. (de pont ezt fogom megakadályozni a folyamatos id váltással) Feleslegesnek érzem a táblás tárolást.
Az már más kérdés, hogy mi van akkor, ha folyamatosan váltom az id-t, és a támadom ÉPPEN elkapja a jót, épp belép, épp oldalt tölt le, és Ő fogja megkapni onnantól a valid id-t, és a felhasználómat vágja ki... Bár valljuk be, ennek nagyon kevés esélye van. Az alábbiaknak kellene teljesülni:
- Hálózati forgalom figyelésével, két oldalletöltés között elkapni a session id-t.
- Egy ip-ről lenni.
- Eltalálni a User agentet. -
válasz
CSorBA #11253 üzenetére
Szia!
Konkrétan csinálsz egy tokent és azt tárolod az adatbázisban. Minden információval. Szerintem így a legmegbízhatóbb. Ha változik a token, bejelentkezik újra akkor frissíted. Adatbázis pont a hackelések kikerülése végett lenne! (Ha rosszul gondolom légyszíves javítsatok ki!)
mobal,
-
CSorBA
őstag
Brown ügynök:
Szóval kb annyit csinálok, hogy:1, Berakom a sessiont tartalmát egy változóba.
2, Változtatok sessionid-t.
3, Visszarakom a változóból a tartalmat az új sessionba.mobal:
Ok, ezt berakom. Végül is elég valószínűtlen, hogy valaki folyamatos IP-t váltogató mobileszköztől akarna belépni.
De nem elég ezt is a sessionban tárolni? Miért rakjam adatbázisba?
Ha ellopja a támadó még is a sessionid-t, akkor összehasonlításkor a sessionban tárolt md5 hashelt useragent és ip úgysem fog stimmelni. Miért queryzzek még db-ből? -
CSorBA
őstag
válasz
Brown ügynök #11249 üzenetére
A gyakori mit takar? Minden oldaltöltés, vagy x időnként?
-
Brown ügynök
senior tag
válasz
CSorBA #11247 üzenetére
Igen, cookie-ban érdemes tárolni a session id-t.
Egy cookie-t sokféleképpen meg lehet szerezni, de úgy gondolom a hálózati forgalom figyelés nem éppen a legegyszerűbb módszerek közé tartozik. (Ha nem így lenne, valaki felvilágosíthat). Egyébként ez ellen jó védekezési forma a TLS (SSL).
A User-Agent figyelni mindenképpen hasznos. Szerintem ezt sem olyan egyszerű kitalálni, hiszen van x darab op rendszer, y darab böngésző z darab verziószámmal. Mindezt egy munkameneten belül kell kitalálnia a támadónak! Ip címet figyelni tényleg nem a legjobb megoldás.
Itt van egy nagyon jó összefoglaló a lehetséges támadásokról és ellenintézkedésekről: [link]
Összefoglalva:
- Gyakori session_id újragenerálás
- munkamenet lejárati idő beállítása
- User-Agent figyelése
- HTTP_REFERER figyelése
- kijelentkezés lehetőségét biztosítani
- érzékeny adatok előtt ismételt azonosítás
- titkosított kapcsolat -
trisztan94
őstag
válasz
trisztan94 #11241 üzenetére
Köszönöm a válaszokat, majd próbálok valamit alkotni
-
CSorBA
őstag
válasz
Brown ügynök #11244 üzenetére
Még a sima, alap sessionnal lenne pár kérdésem.
Ugye arról van szó, hogy a gépen a PHP SESSION id-jét egy sima Cookie-ban tárolja, pl:
PHPSESSID=valamimd5számÉs ugye a fő probléma, ha valaki megszerezné ezt az ID-t, akkor a támadó a belépett felhasználónak tudná magát mutatni. Jól értem, hogy ez az ID megszerezhető csupán a hálózati forgalom figyelésével? Vagy mindenképpen találgatós módszer van? (Lenne még több kérdésem, csak ezt tisztázni szeretném.)
Mindenesetre a támadó dolgának megnehezítése az lenne, hogy a SESSION id-n kívül figyelem mondjuk az alábbiakat:
- Figyelem a felhasználó UserAgentét.
Ezzel csak az a bajom, hogy ezt sem túl nehéz kitalálni. Mondjuk legyen win7 vagy xp alatt legfrissebb Chrome vagy Firefox. Gondolom ebben semmi egyedi nincs, csak kb ennyi adatot tárol. Igaz? Pl.: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1 Itt kapásból itt vannak a legelterjedtebbek: [link]- A következő lehetőség, hogy figyelem a felhasználó IP címét.
Ez egyértelmű, azonban még sem teljesen jó.: Mi van, ha mondjuk egy létesítményen belül van a támadó és a felhasználó, és a külső IP címük ugyan az.
Illetve mi van, ha a felhasználó mobil eszközről van, és esetlegesen felváltva használ több hálózatot, így váltakozik az IP címe. -
válasz
Speeedfire #11245 üzenetére
[link] inkább ezt javasold egyéni salt -tal...
-
Speeedfire
félisten
válasz
trisztan94 #11241 üzenetére
-
Brown ügynök
senior tag
válasz
CSorBA #11243 üzenetére
De, javítottak már. 5.4-től elérhető a SessionHandlerInterface.Ezt a cikket csak iránymutatónak szántam a lehetséges veszélyekről és megoldási elvekről (pl. hogyan generáljunk session id-t).
-
CSorBA
őstag
válasz
Brown ügynök #11239 üzenetére
Ez jó kis összefoglaló, de a php Session kezelésén azóta nem javítottak már? (Nem tudom, ezért kérdezem.)
-
Lacces
őstag
válasz
trisztan94 #11241 üzenetére
Keres az elemi algoritmusok között
és találsz rá példát, azt tovább fejleszted és már meg is van. Szóval ilyen egyszerű... többet nem mondok.
-
Soak
veterán
válasz
trisztan94 #11238 üzenetére
Hehh, ha végig gondolod ... van 1000 user ... meddig tartana a 10000 számot ráprobálni, hogy mindegyik accjával bejelntkezz ?
..... Én minimum 32 jegyű szám és betű kombinációt ajánlok.
-
Brown ügynök
senior tag
-
CSorBA
őstag
válasz
CSorBA #11234 üzenetére
Most őrülök meg.
nem kell a plusz aposztróf a headerben a charsethez. Szóval így a jó:
header("Content-Type: text/html; charset=UTF-8");És most már a W3C Internationalization Checker is hibátlanul fut le.
Akkor egy kis összegzés UTF-8-ból, hátha másnak is jól jön:
1,
Minden fájlt lehetőleg UTF8 BOM nélkül mentünk2,
xHTML esetén a html head részben a karakterkódolás megadása:<meta http-equiv="Content-Type" content="application/xhtml; charset=UTF-8" />
HTML5 esetén a html head részben a karakterkódolás megadása:
<meta charset="UTF-8" />
3,
PHP fájl elejére a header beállítás:
header("Content-Type: text/html; charset=UTF-8");4,
MySQL kapcsolódásnál a set names:
mysql_query("SET NAMES 'UTF8'"); -
Soak
veterán
válasz
trisztan94 #11235 üzenetére
Generálj egy viszonylag bonyolult random számsort, azt mentsd le adatbázisban a userhez, majd amikor bepipálja a jegyezz meg gombot akkor mentsd el cookieba . Nyilván így mindenkinek meg kell nézned a cookieját, hogy van-e beállitva "jegyezz meg" cookie és ha igen akkor valid-e a benne tárold kód.
Arra figyelj, hogy mikor valaki a kilépéssel kilép akkor töröld a cookiet.
Szerk: Természetesen csak akkor generálj és ments le kódot ha bepipálta.
-
trisztan94
őstag
Sziasztok!
Hogy tudok bejelentkezve tartani felhasználót? Értem úgy, hogy ugye loginnál van ugye a "jegyezzen meg" gomb. Én úgy gondoltam, hogy if-fel megnézem, hogy bevan-e pipálva, ha igen akkor adatbázisban van egy olyan oszlop, hogy remember, annak az értéke 1-re változik. Na most ezzel az a bibi, hogy session alapú a bejelentkezés, ami ugye törlődik minden böngészőzáráskor (nem?). Cookie-val próbáljam? Azzal hogy? Kb hogy néz ki? Vagy így elméletben is elég, nem kell konkrét kódot, csak, hogy legyen egy kiindulási pont.
Köszi!
-
CSorBA
őstag
válasz
Brown ügynök #11233 üzenetére
Ahh. Tényleg jó leírás, de akkor az alábbi miért van:
Minden fájl UTF-8 Without BOM-al mentve.
fájlok elején:
header("Content-Type: text/html; charset='UTF-8'");
HTML elején:
<meta charset="UTF-8" />Szép és jó a karakterkódolás.
Ajax-os hívás történik.
Egy olyan fájlt töltök be, ami:
- UTF-8 Without BOM-al mentve.
- van header az elején.Mindenhol betöltődik, kivéve Safari. Ott rossz a kódolás.
Viszont ha kiszedem a headert, jó a kódolás. -
CSorBA
őstag
válasz
Brown ügynök #11148 üzenetére
Ok, nem biztosabb a header:
Safari, ajaxos selectbox feltöltés, db-ből lekérdezés. Ha bent volt a header, hiába minden utf8, fájl utf8, db utf8, valami miatt mégis elrontotta a kódolást. Kiszedtem, a headeres állítást. És jó most minden. Nem értem.
-
Sk8erPeter
nagyúr
válasz
19.Norbika #11230 üzenetére
Bizony.
-
19.Norbika
tag
válasz
Sk8erPeter #11229 üzenetére
Tovább megyek. Tessék ORM-et használni
-
biker
nagyúr
válasz
19.Norbika #11223 üzenetére
kapcsos nem feltétlen kell, csak ha tömbre hivatkozik, nem hiba kitenni, de felesleges
-
19.Norbika
tag
válasz
[pod]Diablo #11218 üzenetére
re-write - szép url.
Tessék:
[link] -
SureStudio
tag
Ohh azt hittem "-t kell írni, de akkor csillag...
Köszönöm a válaszokat! -
19.Norbika
tag
válasz
Forrest Tome #11219 üzenetére
A div amiben a tábla van véletlenül nem tartalmaz egy fix magasságot? height, max-height...
Ebben az esetben a tábla nagyobb mint a div ezért a scroll kikerül. Amúgy a scroll eltüntetésére alkalmas az overflow:hidden, csak akkor a kilógó részeket nem fogod látni. -
19.Norbika
tag
válasz
SureStudio #11220 üzenetére
$sql = " select " from userek WHERE username='$username'";
SELECT * FROM userek WHERE username = '{$username}';
-
biker
nagyúr
válasz
SureStudio #11220 üzenetére
$sql = " select " from userek WHERE username='$username'";
select után " ?????
* akart kenni nem? -
Sk8erPeter
nagyúr
válasz
SureStudio #11220 üzenetére
select " from
A hibás részt aláhúztam. Helyettesítsd az idézőjelet egy csillaggal vagy egy/több meghatározott mezőnévvel.(#11219) Forrest Tome :
A cellán belülre rakj egy divet, annak korlátozd a szélességét.(#11218) [pod]Diablo :
keresőbarát URL-ek kialakításával tudod eltüntetni a kérdőjelet, ez viszont nem kezdő kérdés, nézz utána a .htaccess-es módosításoknak, ha tényleg fontos. Sok megvalósítási lehetőség van rá, hátha majd lesz valakinek itt ideje leírni neked, hogy s miként. -
SureStudio
tag
Hellosztok!
A php-vel van egy kis bajom...
Azt írja ki, hogy "Parse error: syntax error, unexpected T_STRING in blaablaa on line 8"
A kódom: $sql = " select " from userek WHERE username='$username'";
Már mindent próbáltam, de nem sikerült megoldani.
Kérlek segítsetek! -
Forrest Tome
csendes tag
Sziasztok!
Segítséget szeretnék kérni, most ismerkedem a php-val és egy barátom kért egy weboldalt, amit meg is csináltam, de egy dolog elég csúnya és nem találom a megoldást.
Az egyik oldalról adatok mennek be egy myql adatbázisba (text) és egy másik oldalon ezzel a paranccsal kiíratom őket egy táblába:
echo '<table cellpadding="20" cellspacing="1" width="100%">
<tr>
<td><strong>Name ideas</strong></td></tr>';
while ($egy_sor = mysql_fetch_object($eredmeny))
{
echo '
<tr>
<td> '.$egy_sor->ntext.'</td>
</tr>';
};
echo '</table>';A tábla egy divbe van benne, ami csak fél oldalas mert az oldal másik felén egy másik div van és az a bajom, hogy a hosszú sorokat nem tördeli be a kiíratás hanem vízszintesen is berak egy görgetősávot. Pedig a táblát tartó div szélessége meg van határozva. Próbáltam a táblához css osztály rendelni, de azt is figyelmen kívül hagyja. Itt a kép, hogy néz ki. Van valakinek ötlete, hogy tudnám kiíratni hogy nem legyen ilyen kereszbe görgetés?
köszönöm előre is
-
[pod]Diablo
őstag
Üdv!
van egy linkem ezzel a href-el:href="?home"
van egy ehhez tartozó div-em,ezzel a php kóddal:
<?php
if(isset($_GET['home']))
{
include('home.php');
}
?>ez ugye a bongeszoba igy jelenik : www.oldal.hu/?home.
Valaki tudna nekem segiteni abba hogy ez siman kerdojel nekul jelenjen meg az url-be www.oldal.hu/home formaba?
Tovabba annak a megoldasahoz kernek meg egy kis segitseget hogy a kezdolap ez a www.oldal.hu/home legyen.
Elore is koszonom a segitseget!
-
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.
-
pvt.peter
őstag
Egy érdekes anomáliába futottam.
Adott 2 táblázatom amiben minden ugyanaz, kivéve az azonosítók.
Ugyanis ezekkel van megvalósítva, hogy JS -tel szerkeszthető, illetve törölhető legyen az adott textfieldbe bevitt tartalom.
A kettő között a különbség még az, hogy az egyik formban van, a másik meg nincs.
Használati útmutató:
Szerkeszt gombra kattintva megjelenik egy textfield amibe írhatunk.
Majd ha az Elrejt -re megyünk, az adott címkét átírja arra amit előbb írtunk be a textfield és a textfieldet eltünteti.
A következő elem egy textfield.
Majd egy töröl és egy javít gomb.
A javít gombal tudjuk be/ki kapcsolni ezt a textfieldet.
Azt szeretném, hogy csak akkor tudjuk törölni a textfield tartalmát, ha az aktív, tehát amennyiben írunk bele vmit majd a Javít -ra megyünk, utána pedig a Töröl gombra, akkor ne törölje a beírt tartalmat.
Ezt az elképzelésemet az alsó táblázat szépen meg is valósítja, míg a fölső nem.
Nagy nehezen sikerült kitalálnom, hogy azért mert formban van...
Hogyan tudnám átírni úgy a JS -s függvényeket, hogy a felső táblázat is ugyanúgy működjön mint az alsó?itt a forráskód: [link]
illetve ahol meglehet nézni a működését is: [link] -
Soak
veterán
válasz
trisztan94 #11210 üzenetére
Magyarul a connect.php-ben van egy ilyen , hogy new PDO(); ? Utána pedig az oldalon (pl index) definiálod a functionokat ?
Ha igen akkor ez nagyon nem jó, MVC-ről olvasgass ,meg amit pár hsz.-el ezelött linkelgettünk nézd meg, nem feltétlenül kell design pattern-t használni csak azért, hogy elmondhasd magadról, de ( saját tapasztalat ) ne hagyd, hogy a jelenlegi kódod a fejlődésed útjába álljon.
Magyarul ha a jelenlegi kódodba rosszul csinálod a dolgokat és ráadásul tudod is, akkor inkább írd újra az egészet vagy kezd el jól csinálni (és a többit majd ha elkészült átírod) , mert a jó megoldások beidegződését megakadályozza a folyamatos hibás kódólás és meg fogsz rekedni egy olyan szinten ahol a tudásod gyakorlatilag haszontalan.
-
trisztan94
őstag
Hát van egy connect.php fájlom. Abban van a kapcsolódás. Na most amikor használnom kell adatbázist, pl terméklistázás, login, stb, akkor include-olom azt a connect.php fájlt, hogy csatlakozzon és utána mehetnek a query-k. Vagy ez így f*szság?
Én így tanultam be, lehet, hogy hülyén
-
Soak
veterán
válasz
trisztan94 #11208 üzenetére
Ha jól értem, hogy mit mondasz akkor úgy kapcsolódsz az adatbázishoz, hogy includeolsz egy filet ?
-
trisztan94
őstag
Sziasztok!
Egy kis elméleti kérdésem lenne PDO-val kapcsolatban. Ezen leírást követve van egy olyan rész, ahol az adatbázishoz való kapcsolódás lezárását írja. Na most ezt a lezárást mikor kell használni? Én konkrétan a mysql_x fügvénnyel mindig is úgy csináltam, hogy volt egy connect.php fájlom és amikor olyan dologhoz értem, ahhol kell az adatbázis, csak include-oltam azt a fájlt. Igazából sosem zártam le a kapcsolatot. Itt rakjam bele abba a fájlba a zárást is? Vagy hogyha include-olom valami másik fájlba (pl. loginba) akkor mielőtt átirányít, akkor zárjam le és ezt így minden használatkor végezzem el? Vagy csak logoutkor zárjam le?
Köszi
-
pvt.peter
őstag
válasz
Speeedfire #11200 üzenetére
Nálam így szerepel a html részében:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
majd pedig <body> tagban a php
Új hozzászólás Aktív témák
Hirdetés
- BestBuy topik
- Fujifilm X
- Xbox tulajok OFF topicja
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Formula-1
- Nvidia GPU-k jövője - amit tudni vélünk
- Kínai és egyéb olcsó órák topikja
- Honda topik
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Kertészet, mezőgazdaság topik
- További aktív témák...
- HP 15-af105nh laptop (15,6FHD/AmdQuad/4GB/128SSD/Magyar) - Akku X
- JOYOR S5 Pro 10" Elektromos Roller 26Ah Akkumulátorral Moddolt!
- XPS 13 9310 13.4" FHD+ IPS i7-1185G7 16GB 512GB NVMe ujjlolv IR kam gar
- Megkimélt Apple iPhone 8 Plus 64GB Fekete szinben, 100% akkuval, kártyafüggetlen, garanciával
- Megkimélt Apple iPhone SE 2020 128GB kártyafüggetlen, fekete és fehér színben garanciával!
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- DELL T40 EMC Szerver
- AKCIÓ! Dell Alienware M17 R3 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2070 8GB WIN10
- Akciós Windows 10 / 11 Pro OEM Licenc Kulcs 100% eredeti, jogtiszta!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest