- Biztonsági aggályok miatt késik a Microsoft hatalmas AI-újítása
- Kíváncsi az EU, milyen online védelmet adnak a pornóplatformok a kiskorúaknak
- Panaszt tettek a Google ellen, mert követi a felhasználókat a böngészője
- Rengeteg áram kell az adatközpontoknak, erre válasz a geotermikus energia
- Az AI megmondja, hogy van-e fájdalma a macskának
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
"Neked nem mindig könnyen emészthető a stílusod viszont a kritikák egyértelműek és építőek."
Akkor ezt bóknak veszem, kösz!">>sztanozs korábban linkelt neked egy stackoverflow-s topicot, annak az alkalmazásával mi a helyzet? Nem látom a kódodban.<<
Ha erre gondoltál akkor nem értem hogy hogy nem látod mert benne van :
$db->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );"Én erre gondoltam.
Sk8erPeter
-
Sk8erPeter
nagyúr
Hogy érted azt, hogy "aloldalt"? Ez egy alias, tehát nem fizikailag különálló könyvtár, vagy hasonló... egyszerűen egy leképezés.
Mondjuk van a
http://example.com/users/kisjozsi
ez egy alias erre:
http://example.com/user/231Utóbbira meg van egy .htaccess-szabály, vagy akár másik megoldással ez is egy alias pl. erre:
http://example.com/index.php?user_id=231
Ez csak egy példa a végtelen lehetőség közül.Igen, 10000 felhasználónál ugyanennyi alias lesz. (De nem "aloldal".)
Szerk.: most jövök rá, hogy szerintem félreérted az "alias" szót ebben az esetben. Ennek totál semmi köze a webszerver aliashoz (pl. Apache-ban van Alias kulcsszó). Ez egy URL alias, ami az alkalmazásodhoz kötődik.
Ilyet alkalmaznak a CMS-ek is (pl. Drupal), meg frameworköknél is lehet használni.Szerk. 2.: na várj, akkor most userhez tartozó könyvtárakról beszélünk? Mert akkor meg én is félreértettelek. Attól még, mert a userhez tartoznak könyvtárak, ahova mondjuk gyűjtögeti a fájljait (pl. a profiljához tartozó kép, vagy hasonló, ha nincs ömlesztve), attól még nem kell "aloldal", miért kellene? Egyszerűen a hozzá tartozó könyvtárba pakolod a hozzá tartozó fájlokat, és onnan húzod elő, ha szükséged van rá, azt' kész.
De ahogy már sztanozs is említette, léteznek alternatív megoldások, pl. a fájlokat gyűjtheted dátum szerint rendezve is, ez már kb. tök mindegy, csak tartsd nyilván, hol van.[ Szerkesztve ]
Sk8erPeter
-
sztanozs
veterán
Ha nem akarsz sok alkönyvtárat egy könyvtárba, partícionálhatod is:
10234-es felhasználót pl a /01/02/34/ alkönyvtárba. így csak szintenként 100 foldered lesz...JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
cucka
addikt
Nem. Egy ilyen url routing szabály úgy néz ki, hogy mondjuk a
/users/{username}
útvonalat átírja úgy, hogy
/users.php?username={username}
Ez persze pszeudokódban van, a routing-ot sokféleképpen lehet intézni. Egy jól megoldott rendszeren jellemzően a php alkalmazás dönti el, hogy egy URI-hoz milyen kontrollert kell meghívni. A webszerver dolga ilyenkor csak annyi, hogy eldönti, ki tudja-e saját maga szolgálni az erőforrást (mondjuk statikus képeknél) vagy sem. Utóbbi esetben a php alkalmazás megoldja saját maga. Ez azért jó így, mert a programod viselkedése a programban lesz leírva, nem pedig egy külső program konfigurációs file-jában.Egyébként olvasgatom az utóbbi hozzászólásokat, ti tényleg ezt a PDO-t használjátok? Olyan ocsmány az egész, szívem szerint bottal sem piszkálnám.
-
fordfairlane
veterán
Ha nem akarsz annyi mappát létrehozni a fájlrendszerben, mint amennyi usernek akarsz külön urlt, akkor az url értelmezését a webszervertől át kell tenni az alkalmazásodba. A http requesteket át kell irányítani egy fájlba, majd ezen fájlban kell feldolgoznod a kapott url fragmentet, a saját értelmezésednek megfelelően.
x gon' give it to ya
-
-
trisztan94
őstag
Igazából egy egy szakdoga, egy csajszinak segítek, elvileg ingyenes okj lett volna ahol mindent megtanulnak, hát kb 500k-val húzták le.. a lényeg az, hogy semmit sem tud kb és hnaputánra kéne kész lennie
Meg lekell mondani a weboldal tulajdonosi jogokról a suli számára.. szóval így elég offos a történet és hát meglettem kérve, hogy segítsek.
De magamnak is csinálnék egyet majd később ha jobban értek már ehhez, majd akkor nyilván nagyon figyelek ezekre.
Köszönöm szépen a tanácsokat, imádom ezt a fórumot!
https://heureka-kreativ.hu
-
Speeedfire
nagyúr
Létrehozol egy tag táblát, amiben lesz egy id, egy képid, meg a tag neve. Amikor a képet megjeleníted, akkor pedig azokat a tag-eket kéred le, ahol a képid megegyezik.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
-
trisztan94
őstag
Rendes chatet szeretnék.
Tehát akkor lehet eseményt kezelni vele. Hogy néz az ki kb?
Ajaxxal úgy kéne, hogy újratöltse azt a divet minden x mp-ben, nem?A naplózást úgy megoldhatom, hogy egy txt fájlba mentem? Esetleg csak jQueryvel? Lehet egyáltalán menteni fájlba azzal?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
cucka
addikt
Vagy létezhet olyan, hogy pont úgy tölt fel két user képet , ami időben olyan közel lesz, hogy nem a megfelelőt kapom vissza?
Két júzer egy időben az két adatbázis kapcsolatot jelent, a last_insert_id ezt figyelembe véve működik, tehát nem fog előfordulni az eset, amiről írsz.
Permanens kapcsolatok esetén viszont jó kérdés, hogy meg van-e ez ugyanígy oldva, valaki felvilágosíthatna engem is.
[ Szerkesztve ]
-
trisztan94
őstag
Tudom, tudom, majd átírom PDO-ra, meg nyílván vigyázok ilyenekre csak (mivel amúgy sincs publikálva az oldal) mivel még az elején tartok, előbb megírom az alapját, aztán ha minden kész csinálom a security-t. Vagy ez így hülyeség?
Vissza a témához:
Szóval így mennie kéne a $_GET-nek? Mert adtam ugye valamilyen változónak a $_GET['torol'] értéket, kiprinteltem és semmit sem mutatott
Így volt a hívás:
<a href='?torol=$user'>Törlés</a>
Ez egy Ajaxolt oldalon volt, szóval az index.php kapja azt, hogy index.php?torol=admin most pl.
És a php az akkor ugye oda van írva, az meg most jelen pillanatban így néz ki:
$valtozo = $_GET['torol'];
print ($valtozo);De semmit nem ír ki.
Szerk:
Beraktam a mysql törlést is, de nem törli:
$torlesnev = $_GET['torol'];
$torles = mysql_query("DELETE FROM `members` WHERE username='$torlesnev'");[ Szerkesztve ]
https://heureka-kreativ.hu
-
trisztan94
őstag
De a többi GET az megy, de csak ?p=valami-vel. Adminjog adás, Terméktörlés, mind ugyanígy van (?p=valami-vel) és ezek is ugyanúgy ajaxolva vannak és ugyanúgy az index.php-ben vannak a php-k.
így van az <a>
echo "<center>";
echo "<table border='1' style='margin-bottom: 10px;'";
echo "<tr><th width='25'>Id</th><th width='200'>Felhasználónév</th><th width='100'>Admin Jog</th><th width='150' align='center'>Változtatás</th><th width='100' align='center'>Törlés</th></tr>";
echo "<tr><td align='center' width='25'>$id</td><td width='200' align='center'>$user</td><td width='100' align='center'>$adminnev<br/>
</td>". $adjadmin . "<td width='100' align='center'><a class='torles' href='?torol=$user'>Törlés</a></td></tr>";
echo "</table></center>";A legalja, de azért beraktam az egészet
Szerk:
Megjelenik az index.php-ben amúgy az a-nak a cucca.
Szóval, most ha rákattintok arra a felhasználónak a törlésére, hogy pl: eveke, akkor kidobja azt, hogy: index.php?torol=eveke, szóval mindenképp a php nem jó. De, mint feljebb is írtam ?p=eveke-vel pl az adminjog adás megy. Az első kérdésemben benne van, hogy az hogy van megoldva.Akkor majd erre figyelek, ez igazából csak gyakorlás, de majd ha legközelebb nekikezdek valaminek, mindenképp max security-s lesz, hogy megszokjam
[ Szerkesztve ]
https://heureka-kreativ.hu
-
bobace
őstag
Az egyszerűbb részt megcsináltam, hogy ha ugyanannyi a befizetés, mint az összterhelés, akkor updatelek minden sort. Nyilván ez sem túl elegáns, mert egy lekérdezéssel mindent le lehetne tudni, csak hogy érezzek egy kis sikerélményt, ezt megcsináltam
Else-ben addig jutottam, hogy lekérem SQL-ból az összegeket. Mondjuk ez 5 érték. De itt megállt a tudomány, ez a rész nem megy: "Majd szépen egyenként összeadogatod őket. Egy array-ban eltárolod azok id-ját amiket összeadsz . Nyilván akkor írod bele amikor már biztos, hogy 100alatt van az össz érték (és mész a következőre)." Foreachet már használtam egyszer-kétszer, de nem tudom, ezt hogyan lehetne összerakni..Hogyan adogatom össze őket úgy, hogy figyeljen egy értékhatárt?Nem az a szabadság, hogy azt teheted, amit akarsz, hanem, hogy nem kell megtenned, amit nem akarsz.
-
Alex91
félisten
QuiXplorer nevu prg-t raknam fel egy NAS-ra. Egy regebbi verziot mar szepen megcsinaltam, de ez egy ujabb. Itt meg a letoltheto allomanybol kifelejtettek par dolgot. Amiben meg benne van, azt nem tolti le, bar a forras ott van, tehat ha nagyon akarom megcsinalom.
Szoval inkabb csak az volt, hogy nem tudtam, hogy ez a qx.php valami standard cucc, ennyire nem vagyok benne
. Csak utana lattam, hogy masik verzional ott van a file, csak amit letolteni tudok, abban nincs...
Dicsõséges nagyurak, hát Hogy vagytok? Viszket-e ugy egy kicsit a Nyakatok? Uj divatu nyakravaló Készül most Számotokra... nem cifra, de Jó szoros.
-
Sk8erPeter
nagyúr
"Ha valaki nincs bejelentkezve akkor bizonyos funkciók nyilván nem jelennek meg"
Igen, de attól még az oldal struktúrája nagyjából ugyanaz. Legalábbis ha pl. arra gondolunk, hogy van egy oldalad, és ha be vagy jelentkezve, és admin is vagy, akkor egy adott tartalomnál megjelenik egy "Edit" link a szerkesztéshez...
Szerintem az, hogy teljesen különválasztasz mindent, nem túl praktikus, mert csak nehézkesebbé teszed a kódod kezelését: az esetek többségében van egy csomó tartalom, amit bejelentkezett és "anonim" felhasználónak is szeretnél megmutatni, de a bejelentkezetteknek csak több/más tartalmat adsz, attól még a megjelenés hasonló.
Persze megint másik kérdés, hogy teljesen különálló admin-felületed van, ami nincs "összekötve" az alapvető megjelenéssel, hanem full máshogy néz ki, de akkor meg azt érdemes valami alkönyvtárba rakni (pl. fantáziadúsan /admin), és ott engedni a bejelentkezést, meg minden egyebet.
Mondjuk megint egy szempont: a theme elvileg egy külön "réteg", tehát elvileg a theme-nek akár váltogathatónak is kéne lennie."plusz jobban átláthatóbb, ha nem egy oldalon van minden"
Itt most nem tudom, mire gondoltál pontosan.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Dehogy színeket értek
Inkább "sminkekre" gondolok, amiket le tudsz tölteni netről, vagy kreálni tudsz pl. CMS-ekhez. Csak lazán kapcsolt elemek, ezért cserélhetők, mivel csak a kinézetet befolyásolják (legalábbis jó esetben nem nyúlnak hozzá az adatokhoz - bár van rá lehetőség, ha nagyon akarom - hanem csak a megjelenítéshez nyúlnak).Sk8erPeter
-
Sk8erPeter
nagyúr
Nem hallottam még ilyen definíciót.
Amúgy ha neked van igazad, akkor biztos a Drupal kitalálója, fejlesztői, a hozzájárulók olyan hülyék, hogy rossz elnevezést adtak:
Drupal Themes
...Szerk.: látom közben frissítetted a hsz.-t.
Nemcsak a WordPress-nél meg CMS-eknél hívják így, hanem még számtalan helyen.[ Szerkesztve ]
Sk8erPeter
-
SektorFlop
aktív tag
én megoldásom erre a célre az szokot lenni, hogy csinálok egy úgynevezett sablon.php-t. Ez a fálj tartalmaza a html fő részeit, az oldal szerkezetét, és az állandó php elemeket. és különféle változókat íratok ki div-enkét amiknek az aktuális oldalon adok értéket, és ezek után már csak be includ-olom a sablon fájlomat. Ezek után ha a szerkezetbe építed az admin részét, még akkor is teljesen átlátható az egész.
Már korában is kérdezni akartam, mivel kevés tapasztalattal rendelkezem, és nem tudom a komolyabb helyeken hogy működnek ezek a dolgok? Pl. ez a megoldás mennyire elfogadott? Vannak-e hátrányai? Lenne egy pár szakmai kérdésem igazából, ha már egyszer eljutok egy olyan szintre és elhelyezkednék ezzel a dologgal, mire számítsak? Miket kellene igazán tudnom? Szóval szívesen elbeszélgetnék ezekről valakivel, akinek már nagyobb tapasztalata van ebbe, sajnos suliba ilyenket nem mondtak el az embernek
[ Szerkesztve ]
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
Sk8erPeter
nagyúr
Szerintem úgy kéne, hogy ez csak akkor igaz, ha a /users/valaki címet nyitják meg.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^users/(.*)$ profile.php?username=$1 [QSA,L]Nem próbáltam, de sztem így nézne ki.
Vagy egyszerűen futtass rá minden kérést az index.php-ra, és PHP-vel intézd el a kiszolgálást: keress URL aliast adatbázisban, stb.
(#10889) Speeedfire :
"Ha van egy objektumhalmazom, akkor hogyan tudok hivatkozni az xyz.-edik elemére?"
Nem értem a kérdést. Milyen "objektumhalmazról" van szó? (Egyáltalán mi az az "objektumhalmaz"? Objektumok tömbje, vagy mire gondolsz?!)[ Szerkesztve ]
Sk8erPeter
-
Soak
veterán
Újra írtam ezt, annak idején elég sokat szenvedtem vele, most jobb lett, csak azért írom ide, hátha valakinek lesz hasonló projektje:
public static function find_3_by_id($p_id,$users_id) {
global $db;
$stmt= $db->prepare("(SELECT *, 'next' FROM photographs WHERE id > :id AND users_id = :users_id ORDER BY id ASC LIMIT 1) UNION (SELECT *, 'current' FROM photographs WHERE id = :id AND users_id = :users_id LIMIT 1)UNION (SELECT *, 'previous' FROM photographs WHERE id < :id AND users_id = :users_id ORDER BY id DESC LIMIT 1)");
$result_set = $stmt->execute(array(':id' => $p_id,':users_id' => $users_id));
$object_array = array();
while ($row = $stmt->fetch($result_set)) {
$object_array[] = self::instantiate($row);
}
return $object_array;
}
$photos = Photograph::find_3_by_id($_GET['p'],$user->id);
$next_photo = array_shift($photos);
$current_photo = array_shift($photos);
$previous_photo = array_shift($photos);Így 3 helyett csak 1szer kérem le az adatbázist és utána nem foreachezek, hanem csak szétszedem az Object array-t .
-
Peter Kiss
senior tag
Elvileg OO módon akarsz programozni, de azon túl, hogy osztályokba rendezed a kódod, nem sok mindent teszel az ügy érdekében, inkább ellene dolgozol. Ha van olyan része a kódodnak, ami nem gáz, ha kimegy publicra, akkor küldd el nekem, és megmutatom (Logout bejegyzés formájában), mit hogyan lehetne szebben, értelmesebb csinálni.
-
Peter Kiss
senior tag
Azért nem jó, mert a levegőbe lóg mindened, csak azt nehéz lehet meglátni, ha van ilyen könnyű megoldás is, ezért lenne érdemes a saját feladatodon bemutatni (pl. nem is írnék teljes megvalósítást mindenhová).
Mutatok egy kicsi példát:
class PhotoRepository {
public function __construct(DbContext $db) {//akár egy \PDO is lehet, de még kevés lenne
}
public function FindThreeById($pictureId, $userId) {
}
}
Nem beszélve a visszatérési értékekről, sok más objektumról, pl. ahol a PDO dolgot írtam, ott nálam a teljesség igénye nélkül ilyen objektumok játszanak: DataContext, Query, ColumnAttribute, SqlParameter, ObjectFetcher, PDO
-
Brown ügynök
senior tag
Az is segíthet, hogy jobban megértsd miről beszél a kolléga, ha elmélyülnél a PHP manualban (jelen esetben mondjuk az osztályok működésébe [link]) majd, ha minden világos egy keretrendszerben. Egy keretrendszer megismerése sokat segíthet a saját kódod megírásánál. Ehhez persze idő és türelem kell.
"hacsak nem jön a jó tündér break utasítás képében..."
-
Peter Kiss
senior tag
Az ObjectFetcher-rel tudok egy \PDOStatement eredményhalmazából konkrét objektumokat csinálni. Az eredmény kétféle lehet: vagy egy tök semmilyen névtelen objektum lesz minden egyes sor, vagy egy sokkal combosabb variáns: egy base EntityObject-ből származó objektum, aminek ismerem minden property-jét, és mindezt felhasználva azon ColumnAttribute-ok segítségével, amelyek implementálják az IValueProviderColumn interface-t, képes vagyok a raw SQL típusból pl. PHP objektumokat készíteni, hogy csak egyet mondjak: SQL DateTime oszloptípusból PHP DateTime objektumot (alapból string-ként jön vissza). Az eredményhalmaz minden esetben \SplFixedArray lesz függetlenül attól, hogy néhány adatbázisnál kénytelen lehetek előbb siman array-t használni (ezt az aktuális IDbProvider mondja meg).
És az mindenképp baj, hogy már most bonyolultabb megoldásként gondolsz a valódi OO kódokra.
-
Peter Kiss
senior tag
A következő újraírás lehetne már olyan, mintha tizedjére csinálnád.
A te megoldásodból akartam épp példát hegeszteni a Logout-ra, de leszavaztad.
Egyébként challenge accepted, ha valakinek nem megy valami, vagy esetleg szeretne más megoldást látni, írjon bátran (úgyse fog senki), hátha tudok valami érdekeset mutatni (saját cuccokból nehéz meríteni, mert design szempontjából tűrhető, amit csinálok, megoldásilag meg úgyis publikus lesz, amint elkészülök egy olyan verzióval, amit kb. bárki használhat).
-
SektorFlop
aktív tag
az üres formot ellenörzöm szerver oldalon és klinens oldalon is egyaránt, a kliensoldali esetén még submitra se enged nyomni ha valami nem klaffol. szerveroldalon pedig vissza dob üres mező esetén a regisztrációs oldalra
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
Soak
veterán
A kérdésed első része eddig fel sem tünt
.
$myusername = $_GET['username'];
mysql_query("UPDATE user SET status = 0 WHERE username='$myusername'");Akkor nem csak ajánlom a prepared statementet hanem muszáj !!!
Amúgy a session kérdésedhez, a php.net-en le van írva, hogy a session_destroy() nem elég,
In order to kill the session altogether, like to log the user out, the session id must also be unset.
Új hozzászólás Aktív témák
- Robogó, kismotor
- Olasz autó topik (Fiat, Lancia, Alfa)
- Vicces képek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Vodafone mobilszolgáltatások
- EAFC 24
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Villanyszerelés
- M0ng00se: Northwood vs Prescott + tuning: a tesztek
- További aktív témák...
- Xbox series X+2kontroller+akku
- Samsung G9 Super Ultrawide Gamer monitor! 49"/5120x1440/240hz/1ms/G-sync-Freesync/HDR1000/Beszámítás
- ThinkPad 10.gen.core i5(8x4,2Ghz) FullHd IPS,Vil.bill.8GBDDR4,512GB SSD,Jó akku
- Slim Lenovo,15,6"HD,Intel Silver n5000,4mag!4x2,7Ghz,8GB DDR4 RAM,SSD,jó akku,jó állapot
- Asus játékra is,7.gen.A9 (3,6Ghz),R5+AMD 8500m 2GB videokártyák, 8GB DDR4 RAM,SSD,jó akku,jó állapot