- iPhone 16e - ellenvetésem lenne
- Xiaomi 15 - kicsi telefon nagy energiával
- Mobil flották
- Prohardver app (nem hivatalos)
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Poco F6 5G - Turbó Rudi
- Magisk
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Azonnali mobilos kérdések órája
Aktív témák
-
Protezis
őstag
válasz
marcias #4830 üzenetére
Akkor vagy en nem ertem, vagy te, vagy mindketten csak beszelunk ki a fejunkbol
Azt gondoltam, hogy egy urlap adatait akarod elkuldeni a szervernek, ahol php-vel feldolgozod, es a szerver a megadott cimre elkuldi.
Persze ha csak! egy rakat checkboxot akarsz elkuldeni, es ragaszkodsz az a taghez, akkor a checkboxokat rakd egy kulon formba, es
<a href=''javascript: document.formneve.submit()''>link</a>
A szerveroldali feldolgozasa meg ugy megy, ahogy a linkelt oldalon. -
tkazmer
addikt
válasz
marcias #4830 üzenetére
Esetleg megpróbálhatod, hogy a tömb minden elemét külön viszed át. Tehát mondjuk <a href=''...tomb=<?= $tomb[0]?>(ide teszel valamilyen karaktert, ami alapján majd később feldarabolod)<?= $tomb[1]?>....''> és az átvitt adatokat pedig az alapján a karakter alapján egy sima explode-el feldarabolod, és visszakapod a tömböt.
-
-
tbs
addikt
válasz
marcias #4788 üzenetére
Az urlt összerakhatod jáva/vb szkriptben, és a document.locationba töltve navigálódik jó paraméterrel... De ha elfogadsz 1 jó tanácsot: az ilyesmit NAGYON NEM ÍGY KELL megoldani.
A tuti megoldás, ha nem érdeklődsz a kliensfelbontás után. Ha mégis, akkor egy szkriptelt callback kell neked hozzá...
-
tbs
addikt
válasz
marcias #2185 üzenetére
Ha IE alatt nézegeted a fejlesztett oldalt, akkor érhet pár meglepetés a szabályozhatatlan cache kezelése miatt. Ilyenkor javaslom a ''force reload''-ot -> Ctrl+Shift+egérrel a reload gomb.
Jobban jársz, ha valami kevésbé okos brózerrel nézelődsz (pl. Opera), és a végső dizájnt szívod végig az IE-vel...
A legritkább esetben a php a hülye. -
Tele von Zsinór
őstag
válasz
marcias #2176 üzenetére
$parancs = ''SELECT filmek.id,filmek.mcim,acim,qu,mlc,hang,kat,filmek.imdb,ertekel.ertek,source, AVG(ertekel.ertek) as jo from filmek join ertekel where filmek.mcim=ertekel.mcim group by mcim order by mlc,mcim'';
$eredmeny = mysql_query($parancs);
while ($sor = mysql_fetch_array($eredmeny)) {
helyett
$parancs = ''SELECT filmek.id,filmek.mcim,filmek.acim,filmek.qu,filmek.mlc,filmek.hang,filmekkat,filmek.imdb,ertekel.ertek,filmek.source, AVG(ertekel.ertek) as jo from filmek join ertekel where filmek.mcim=ertekel.mcim group by filmek.mcim order by filmek.mlc,filmek.mcim'';
$eredmeny = mysql_query($parancs);
while ($sor = mysql_fetch_array($eredmeny)) {
annyi h pár helyen beleraktam a tábla nevét, bár ha néha jó, akkor lehet nem ez a megoldás.
adatbázisban a mező (gondolom varchar) hossza elég? -
Tele von Zsinór
őstag
válasz
marcias #2169 üzenetére
A sessionökhöz hozzá van rendelve egy 32 karakteres hexa sessionid, csak ez van sütiben tárolva, minden más a szerveren. Ezzel egy hozzáértő felhasználó sem igazán tud vele mit kezdeni, ha lemódosítja másra, nagyon-nagyon kicsi esélye van, hogy talál egy éppen élő admin sessiont.
-
Tele von Zsinór
őstag
válasz
marcias #2165 üzenetére
Egyetértek az előttem szóló kollegával, a session kezelés egyszerűbb, mint bármi más, ezt megközelítő funkciójú eljárás, tulajdonképpen a php a legnagyobb terhet leveszi a válladról. Annyi a lényeg, hogy minden oldal elején a <?php után az első parancs a session_start() legyen, volt már hogy szívtam vele sokat, hogy elvelejtettem
, ezután csak a $_SESSION tömböt kell használni. Szerintem a session_register() is felesleges, ha a $_SESSION-ben létrehozol egy új elemet, akkor azt is elmenti.
A php 24 óra alatt egyszerűen elmagyarázza, hogyan is működik, ha jól emlékszem, korábban is azt ajánlották, egy egész fejezet van benne erről, én is azzal kezdtem. -
tbs
addikt
válasz
marcias #2165 üzenetére
Helyes, csak így lehet megtanulni egy nyelv alkalmazását!
Ha megfogadod a session_start()-os hsz-eket, akkor rájössz, hogy könnyű.
Rajzold le egy papírra, hogy mit csinál a kliens, a szerver, és gondold át hogy a független lekérések között hogy lehet állandó információkat hozni/vinni. -
faster
nagyúr
válasz
marcias #2158 üzenetére
Bemásolok egy teljes kódot, ami elintézi az autentikálást, beléptetést, auth.php a neve, és csak be kell include-olni a programok elejébe:
<?
session_start();
require_once(''include.php'');
if($_REQUEST[''login'']) {
if($_REQUEST[''username'']) {
sql_connect();
$res = sql_query(''SELECT * FROM admin WHERE username='''.$_REQUEST[''username''].''' AND pass='''.$_REQUEST[''pass''].''''');
if(mysql_num_rows($res)) {
$row = mysql_fetch_array($res);
$_SESSION[''auth''] = true;
$_SESSION[''userid''] = $row[''id''];
$_SESSION[''username''] = $row[''username''];
$_SESSION[''supervisor''] = $row[''supervisor''];
header(''location: admin_muvek.php'');
exit;
}
else {
header(''location:login.php?l=1&n=''.rawurlencode($_REQUEST[''username'']));
exit;
}
}
else {
header(''location:login.php'');
exit;
}
}
if(!$_SESSION[''auth'']) {
header(''location:login.php?l=1'');
exit;
}
?> -
faster
nagyúr
válasz
marcias #2156 üzenetére
A programok elején azt mondod:
session_start();
Ezzel kapsz egy $_SESSION nevű tömböt, ami bármelyik oldalon is vagy, megőrzi a korábban kapott értékeket (a háttérben egyébként alaphelyzetben cookie-val + szerveroldali fájllal oldja ezt meg a session kezelő, de ez most nem érdekes.)
Ha a felhasználó begépelte a megfelelő username - password párost, és ekkor ezt végrehajtod:
$_SESSION['auth'] = true;
akkor minden oldalon, ahol vizsgálni akarod, autentikált felhasználóról van-e szó, vagy sem, elég megnézned a session_start() után, hogy a $_SESSION['auth'] be van-e állítva vagy sem.
Természetesen a $_SESSION tömbbe még sok egyéb adatot is berakhatsz. Tehát a védeni kívánt oldalak elejére elég ennyi:
<?
session_start();
if(!$_SESSION['auth'] {
header('location: login.php');
exit;
}
...
?>
A session_registert felejtsd el szerintem.
[Szerkesztve] -
cucka
addikt
válasz
marcias #2147 üzenetére
1. adatfeldolgozás előtt ellenőrzöd, ha null, akkor visszadobod a login oldalra. esetleg elmentheted a beírt adatokat, hogy ne kelljen újra kitölteni az összes mezőt.
2. a védett oldal elején megnézed a session tömbben, hogy bejelentkezett-e (isset()-el). ezt az értéket sikeres bejelentkezés esetén beállítod a session tömbben. bizonyos esetben másféleképpen is megoldható. -
tbs
addikt
válasz
marcias #2147 üzenetére
2. kérdésedre a válasz: session kezelés. Komoly téma, irányjelző: session_start()...
1. kérdésre Leslie egy olyan megoldást javasolt, ami lehet hogy elegáns, de van 2 súlyos ellenérvem.
-Roppant kellemetlen dolog egy kézzel kendácsolt félig kliensoldali vb/js/akármi, félig szerveroldali php/j/asp/akármi logikát karbantartani a távoli jövőben.
-Ha nincs a szerveroldalon ellenőrzés, akkor egy wget segítségével shellszkriptből is könnyen DoS-olható a rendszer, biztonságtechnikailag szar.
Logikát centralizáljuk egy helyre. -
L3zl13
nagyúr
válasz
marcias #2147 üzenetére
Szvsz legelegánsabb, ha még küldés előtt vizsgálod JS-sel a beírt adatokat. Megspórolsz egy újratöltést.
De természetesen vizsgálhatod PHP-ben is elküldés után. Csak ekkor illik megoldani, hogy a meglévő adatokat visszaírd a megfelelő mezőkbe, hogy ne kelljen mindent újra kitölteni.
Megkerülés kivédésére pedig talán legjobb, ha sikeres belépés esetén létrehozol egy session változót, és minden oldal elején viszgálod a session változó meglétét és érvényességét. És ha ez nincs rendben, akkor headerrel átirányítod.
Korábban már leírták a szükséges kellékeket (session_start(), $_SESSION[]...).
[Szerkesztve] -
tbs
addikt
válasz
marcias #2126 üzenetére
Szerintem de direkt szivatod magad a hátulról mellbe módszerekkel...
Aszongya:
$res = query ( ''select null from izébizé where user='$user' and pass='$pass limit 2' );
if (( $c = mysql_num_rows ( $res )) > 0 )
// beléphet
elseif ( $c > 1 )
// db integritás gond
else
// nem valid user...
Erre a témára felejtsd el a countot... -
L3zl13
nagyúr
válasz
marcias #2114 üzenetére
Szemmel láthatóan az adatbázis kezelés alapjai hiányoznak nálad.
Esetleg ennek kéne utánnanézned.
mysql_query -> lefuttatja a lekérdezést, visszad egy azonosítót, amely az eredményül kapott result setet azonosítja.
Ebből a result setből kell kinyerni az adatokat különböző függvényekkel.
Mint pl mysql_fetch_row, mysql_fetch_array, mysql_fetch_object, mysql_result -
cucka
addikt
válasz
marcias #2104 üzenetére
először is kell egy felhasználónév/jelszó mezőket tartalmazó űrlap (küldés POST-al) és egy adatbázis tábla a regisztrált felhasználókkal.
a feldolgozás menete pedig:
1. kiszeded a POST tömbből a beírt adatokat
2. ellenőrzöd szintaktikailag, megfelelnek-e a password policy-nek, nincsenek-e benne spec. karakterek, sql injection elleni védelem, satöbbi. ha nem, akkor hibaüzenet, visszairányítod a login ablakhoz, stb.
3. select count(*).. where.. query segítségével megnézed, hogy van e- ilyen felhasználónévvel/jelszóval rendelkező júzer
4. ha a 3-as pontban a lekérdezés eredménye !== 1 akkor hibaüzenetet írsz ki, visszaírányítod a login oldalra, tetszés szerint.
5. ha a 3-as pontban 1-et ad eredményül a lekérdezés, akkor a session tömbbe beírod, hogy a júzer bejelentkezett (eltárolod a userid-ját, vagy bármilyen információt, amire szükséged van). ezután átirányítod a védett oldalra a felhasználót (header függvénnyel vagy include-okkal is megoldható, oldalad felépítésétől függ).
ne felejtsd el a session_start()-ot a session tömb piszkálása előtt.
[Szerkesztve] -
L3zl13
nagyúr
válasz
marcias #2080 üzenetére
Egy lekérdezésben nem megy?
$parancs = ''SELECT mezo1,mezo2,mezo3,mezo4,..., AVG(ertek) as jo from filmek join ertekel on filmek.kozosmezo=ertekel.kozosmezo group by filmek.kozosmezo ORDER by mcim'';
$eredmeny = mysql_query($parancs);
Nem akarom végignézni az összes mezőnevet a táblában, ezért helyettesítettem, de szvsz érthető:
a mezo1,mezo2... helyért be kell írnod az filmek tábla azon mezőneveit, amelyeket ki akarsz iratni. kozosmezo helyére azt a mezőt amelyik összeköti a két táblát (id vagy akármi)...
Eredményképpen elvileg meg kéne kapnod ugyanazt a táblázatot mint az első lekérdezéssel kiegészítve az adott filmhez tartozó átlaggal -
tbs
addikt
válasz
marcias #2072 üzenetére
Én póriasan beraknám az avg mellé az mcim-et is, és akkor eléggé egyértelmű lesz. print_r-rrel nézd meg, hogy mire kell hivatkoznod a query response array-ban...
Viszont a kód szépítése céljából nézd meg a Smarty-t: sokkal olvashatóbb eredményt fogsz kapni, és nem rögzülnek be rossz php/html keverési szokások. (Mint pl. a mostani.) És az sem hátrány, ha a komplex sql queryk magyarázzák magukat, könnyebb az sql-logban a távoli jövőben extrém hibát keresni... (Lsd. a példám.)
[Szerkesztve]
Aktív témák
Hirdetés
- ÁRGARANCIA! Épített KomPhone i5 13400F 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- Csere-Beszámítás! RTX Gamer Számítógép PC Játékra! I5 12400F / RTX 3070 / 32GB DDR4 / 1TB SSD
- Samsung Galaxy A06 128GB Kártyafüggetlen, 1Év Garanciával
- Csere-beszámítás! Számítógép PC Játékra! I3 14100F / RTX 3060 12GB / 32GB DDR4 / 500GB SSD
- Bomba ár! HP EliteBook Folio 1040 G1 - i5-G4 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged