- Milyen belső merevlemezt vegyek?
- AMD vs. INTEL vs. NVIDIA
- Milyen billentyűzetet vegyek?
- Játékra optimalizált chipkínálatot tervez a Microsoftnak az AMD
- Milyen monitort vegyek?
- Azonnali VGA-s kérdések órája
- Azonnali fotós kérdések órája
- Rágyúr a macOS-re a 3DMark
- Épített vízhűtés (nem kompakt) topic
- Kormányok / autós szimulátorok topikja
Aktív témák
-
Louloudaki
aktív tag
válasz
Forest_roby #1122 üzenetére
pdfek a tábla neve.
de valamiért mégse volt jó, mert a nagy pucolás után a kategória képe mégis fönt maradt. szal valami hiányzott belőle.
mindegy, nem variálok, marad az én verzióm. -
Louloudaki
aktív tag
válasz
Forest_roby #1119 üzenetére
az első változat működik.
és kb 10 karakterrel rövidebb az enyémnél.
nyertél. -
Louloudaki
aktív tag
válasz
Forest_roby #1119 üzenetére
ha kipróbáltam, megírom az eredményt.
-
Forest_roby
őstag
válasz
Forest_roby #1118 üzenetére
még mindig valszeg nem jó, mert nem ismerem az adatbázist, de így már elég rövid:
$sql=''select
k.kep_eleres katkep, t.termek_id termek_id, ?.pdf_id, ?.pdf_eleres, ?.kep_id, tk.kep_eleres kep
from
kategoria k, termek t, pdfek p, termek_kepek tk
where kategoria.kat_id=''' . $del . '''
and k.kat_id=t.kat_id
and t.termek_id=p.termek_id
and t.termek_id=tk.termek_id''; -
Louloudaki
aktív tag
válasz
Forest_roby #1116 üzenetére
mindegy, használja mindenki azt, ami neki tetszik.
tod mit, van egy ilyenem:
$sql='select kategoria.kep_eleres as katkep, termek.termek_id as termek_id, pdf_id, pdf_eleres, kep_id, termek_kepek.kep_eleres as kep from kategoria left join termek on kategoria.kat_id=termek.kat_id left join pdfek on termek.termek_id=pdfek.termek_id left join termek_kepek on termek.termek_id=termek_kepek.termek_id where kategoria.kat_id='''.$del.'''';
rövidebbet ki tudsz belőle hozni?
[Szerkesztve] -
Louloudaki
aktív tag
válasz
Forest_roby #1114 üzenetére
én több tábla összekötésére mindig a left meg right joint használom. ha jól írod a kapcsolatokat, akkor elvileg nem adhat hibát. az egyetlen hibalehetőség a using használata mysql 5.0-nál régebbi verzióban, mert ott még nincs támogatva (elvileg. még nem próbáltam).
az a jobb, amelyik jól működik.nemtom, én a joint szoktam meg, általában rövidebb is.
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #1086 üzenetére
Biztos értitek a problémámat.
Nem.
Szerk: amúgy ilyen kérdésekre (tőlem legalábbis) sokkal hamarabb lehet választ kapni, ha adtok letölthető példaadatokat és pontosan megmondjátok a várt eredményt.
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #1083 üzenetére
MAX() + GROUP BY
-
Lortech
addikt
válasz
Forest_roby #1077 üzenetére
Resettelned kell az aktuális sormutatót, ha többször akarod ugyanazt a resultot fetchelni.
pl mysql_data_seek($result); hatására az első eredménysorra fog mutatni.
Mondjuk a példád szerint működnie kéne. Ha több eredménysor van, és az elsőt kiveszed, attól még a whilenak mennie kell a 2.-kal kezdődően. -
paramparya
őstag
válasz
Forest_roby #1070 üzenetére
Használható linknek ott a mysql honlapja, azon belül a dokumentáció,annál használhatóbbat nem nagyon tudsz találni
Vannak még tárolt eljárások, egyebek, sokat tud, pláne az 5-ös... -
Jester01
veterán
válasz
Forest_roby #1064 üzenetére
A FK előnye, hogy az adatbáziskezelő is tud a kapcsolatról és így biztosítja az adatok integritását. Pl. nem vehetsz fel fizetés rekordot nem létező emberhez, illetve ha törölsz egy embert, akkor automatikusan törlődhetnek a hozzá tartozó fizetés rekordok is vagy eleve csak olyat törölhetsz akihez (már) nincs fizetés rekord.
-
paramparya
őstag
válasz
Forest_roby #1061 üzenetére
Vmi jobb, egy nagyon kicsit részletesebb gyakorlati példát tudnál írni?
Ennél nem kell részletesebb, jól mutatja
fizetes(id, tartozik, fuzet, .....) PK: id, FK:id(users.user_id)
user_id minek? az id elég csak nem tudom, hogy lehet -e egy mező PK és FK is egyszerre??
Hát, egy kicsit máshogy értelmezted a példát, én úgy gondoltam (úgy is szokott lenni), hogy egy user-hez több fizetés is tartozik (amikor fizettek neki, akkor az bekerül, így látod ki-mikor-mennyit kapott)
PK és FK nem tudom lehet-e egyszerre, ha én lennék az sql, akkor nem lehetne -
lajafix
addikt
válasz
Forest_roby #1061 üzenetére
Szvsz egy kis gyakorlás után megérted a PK, FK és a táblák közötti kapcsolatok logikáját.
van egy 9 oldalas doksim a netről, ami elmagyarázza a relációs adatbázisok lényegét. Kell?(küldj privit) -
paramparya
őstag
válasz
Forest_roby #1059 üzenetére
primary key a tábla elsődleges kulcsa, hogy tudd valami alapján egyértelműen beazonosítani a sort, meg van foreign key, az egy másik táblában elsődleges kulcs, pl. egy fizetés táblában az, hogy a user táblából melyik user-hez tartozik, így nem kell felvinni ide is a user adatait (redundancia elkerülése, beszúrási, törlési anomáliák)
-
Jester01
veterán
válasz
Forest_roby #1028 üzenetére
#951
-
cucka
addikt
válasz
Forest_roby #1016 üzenetére
pedig az a select elvileg jó kell legyen. ha esetleg megmutatnád, hogy pontosan hogyan lett átírva, akkor az segítene abban, hogy érdemi választ adjak..
-
Tyrael
senior tag
válasz
Forest_roby #1016 üzenetére
szerintem ennek jonak kene lennie.
tuti, hogy 1nel tobb sorodnak kellene visszajonnie?
Tyrael -
cucka
addikt
válasz
Forest_roby #1013 üzenetére
komment mellé a user_id-t tárold el, ne a usernevet, így az külső kulcs lesz. ezen kívül nagyon-nagyon melegen ajánlott, hogy oszlopoknak ne adj olyan nevet, ami foglalt szó (pl. a date).
több táblából select:
mondjuk select commentek.comment, commentek.date, commentek.user_id, userek.user_nev from commentek left join userek on (commentek.user_id=userek.user_id); -
alitak
senior tag
válasz
Forest_roby #1009 üzenetére
PHPMyAdmin?
Vagy a parancs kéne? -
Forest_roby
őstag
válasz
Forest_roby #987 üzenetére
sorry, rajottem!
<?php
session_start();
function kiir($text){
if($_SESSION['belepett'== true)
{
print $text;
}
else
{
print ''Csak szeretnéd...'';
}
}
?>
<html>
<head>
</head>
<body>
<?php
kiir(''proba'');
?>
</body>
</html> -
paramparya
őstag
válasz
Forest_roby #985 üzenetére
A $_SESSION egy tömb, tehát a loginName indexű elemének csak egy értéke lehet.
Kiolvasni pedig ugyanúgy tudod, mint értéket adni neki tehát ugyanúgy hivatkozol rá
a $login->loginName dolog már oop, a $login példány loginName mezőjére hivatkozik... -
tkazmer
addikt
válasz
Forest_roby #982 üzenetére
A
$authorization = $sor[''authorization'';-t szeretnéd tárolni a sessionban? Akkor azt lehet
$_SESSION['loginName'= $authorization; módon is elérheted.
-
tkazmer
addikt
válasz
Forest_roby #977 üzenetére
Hát az uw-hoz ne nagyon menj, ott meglehetősen gyatra a php támogatás, elég gyakran kapok 502-t.
-
vakondka
őstag
válasz
Forest_roby #977 üzenetére
Szia,
Szerintem az a gond, hogy beléptetéskor nincs létrehozva a session változó.
Arra gondolok, hogy ezt a rész kicsit bővíteni kellene:
if ($eredm = mysql_query($query) and mysql_num_rows($eredm)==1)
{ //Helyes nick+pass
$_SESSION['nick'] = addslashes($_POST['nev']);
$_SESSION['belepett'] = true;
header(''Location: ''.$_SERVER['PHP_SELF']);
}
szerintem így:
if ($eredm = mysql_query($query) and mysql_num_rows($eredm)==1)
{ //Helyes nick+pass
session_register(''nick'');
session_register(''belepett'');
$nick = addslashes($_POST['nev']);
$belepett = true;
header(''Location: ''.$_SERVER['PHP_SELF']);
}
(nem próbáltam ki a konkrét szkripteddel, de szerintem ez a megoldás...ha minden más jó...) -
Forest_roby
őstag
válasz
Forest_roby #976 üzenetére
ugy nez ki, hogy az uw-n mukodik! Lehet atmegyek akkor oda, mar ha vki nem tud vmi olyan megoldast amivel az extra.hu -n is be lehet ezt izzítani.
-
tkazmer
addikt
válasz
Forest_roby #974 üzenetére
Szerintem azért próbáld ki, hogy a login.php-ben is csinálsz egy session_start()-ot...
-
tkazmer
addikt
válasz
Forest_roby #972 üzenetére
Jah, most nézem, szerintem hiányzik egy session_start() a lapból...
-
tkazmer
addikt
válasz
Forest_roby #970 üzenetére
Nem tudom, hogy ez megoldás e, de ha titkosítva tárolod a jelszót az adatbázisban, akkor szerintem ez így nem jó:
$nick = addslashes($_POST['nev');
$pass = md5($_POST['jelszo');
$query = ''SELECT loginName '' .
''FROM users '' .
''WHERE loginName='''.$nick.''' '' .
''AND password='''.$_POST['jelszo'.''''';
Mert szerintem akkor ...password='$pass' -t kellene használnod. -
Forest_roby
őstag
válasz
Forest_roby #969 üzenetére
-
Forest_roby
őstag
válasz
Forest_roby #968 üzenetére
Ez megoldva, de a session nem muxik,nem marad nyoma,hogy be vagyok jelentkezve....
/lehet,hogy az extra.hu -n tiltva van ez a funkcio
/
-
skera
tag
válasz
Forest_roby #924 üzenetére
echo ''</textarea>'' . $sor[''comment''
. ''</textarea>'';
Az elejét egy kicsit kalapáld át -
Forest_roby
őstag
válasz
Forest_roby #923 üzenetére
lejárt az időm :((( ,de megvan a megoldás.
még ez maradt ki:
echo ''</textarea>'' . $sor[''comment''] . ''</textarea>'';
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #922 üzenetére
elírtam a WHERE -t, de még így se jó
-
Forest_roby
őstag
válasz
Forest_roby #909 üzenetére
lol: [link]
Köszi mégegyszer mindenkinek!
-
alitak
senior tag
válasz
Forest_roby #907 üzenetére
Hát a beolvasás, az ugye a ''select * from hirek order by id desc'', ami azt jelenti, hogy kiválasztja az összes mező értékés a hirek táblából, és sorba rakja az id szerint visszafelé. Ezáltal a kiírás könnyebb. A * helyére írhatsz mást is, pl így: select user,id,comment from... , ami csak az adott három oszlopot olvassa be. Ezt én így szoktam írni:
$par = ''select * from hirek order by id desc'';
$adatb = mysql_query($par);
Ezután jön a while ciklus:
while ($sor = mysql_fetch_array($adatb))
{
}
A while az elöltesztelős ciklus. Amíg a zaŕójelben levő bármi igazat ad, lefut a { } közötti rész. Tehát ez történik: beolvassa az egész adatbázist, majd a $sor tömbbe kerül az egész tábla utolsó sora (mivelhogy order by id desc). Ezután így hivatkozhatsz rá: $sor[''user''], $sor[''id'']...
Miután végzett a { } közti résszel, ismét jön a $sor = mysql_fetch_array($adatb). Ha van még sor, amit nem olvasott be a táblából, akkor igazat ad vissza, tehát a ciklusmag lefut, ha az utolsó sor után jön megint az előbb említett parancs, akkor már hamisat ad--> nem fut le a ciklusmag.
A { }-ek közé meg én táblázatokba íratom ki a hsz-eket, ugyanis css-hez nem értek, máshogy meg nem tom hogyan lehet még az egész fórumnak pofát adni. :)
Remélem érthető voltam.
mod: smile off
[Szerkesztve] -
vakondka
őstag
válasz
Forest_roby #899 üzenetére
A fieldname-ek felsorolásánál tedd a mezőneveket aposztrófok közé.
Arra gondolok, ami az AltGr+7 billentyű lenyomásánál jön elő.
Én a DATETIME típusú mezőt úgy szoktam kitölteni (ha az aktuális időpillanatot akarom eltárolni), hogy az SQL NOW() függvényét használom.
Pl:
INSERT INTO comments (`user`,`date`,`comment`) VALUES ('admin',NOW(),'komment szövege');
ui: és mivel ez egy SQL függvény, term. nem kell az aposztróf.
de ha mindenáron php-ból szeretnéd az időt előállítani, akkor ezt használd:
$datetime=date(''Y-m-d H:i:s''); -
alitak
senior tag
válasz
Forest_roby #899 üzenetére
Hát nem tudom, nem látok hibát. Idézőjelek nem tudom, hogy jól vannak-e, azt nézd át. Meg szerintem a dátumot is el kellene menteni, valamint a $text változón a parancsbeállítás előtt hajtsd végre az nl2br() függvényt. Próbáld beírni ezt:
$text = nl2br($text);
$datum = date(''YmdHis'');
$query = ''insert into comments (user,date,comment) values ('admin','$datum','$text')'';
if (mysql_query($query)) echo ''OK'';
else echo mysql_error;
[Szerkesztve] -
alitak
senior tag
válasz
Forest_roby #894 üzenetére
Amikor csinálja a táblát, szerinterm feleslegesen bonyolítod túl.
$query = ''CREATE TABLE users (
user_id int(10) unsigned NOT NULL auto_increment,
loginName VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
email VARCHAR(20) NOT NULL,
authorization int NOT NULL default '1',
PRIMARY KEY (`user_id`) )'';
A hibajelentésben meg minden le van írva:
Unknown MySQL server host 'forest_roby.extra.sql'
Nincs olyan host. hogy 'forest_roby.extra.sql' -
skera
tag
válasz
Forest_roby #894 üzenetére
Próbáld ki a host-ot mysql1.extra.hu-val.
-
skera
tag
válasz
Forest_roby #891 üzenetére
Az extrán van phpmyadmin. Ahogy belépsz, az Eszközök menüpontban ott van a korábban említett MYSQL MANAGER. 3 gomb közül az egyik...
A kapcsolódást feleslegesen túlbonyolítottad.
$link = mysql_connect(''mysql1.extra.hu'',''usernév'',''jelszó'');
mysql_select_db(''adatbázisnév'');
Az adatbázisnév és a usernév extrán ugyanaz.
Ha ezt berakod a config fájlba és azt a fő php-d legelején hívod meg, akkor már kapcsolódik. De én azt javaslom, hogy a konfigba tedd bele ezt a 4 paramétert 4 külön változóba és a fő php fájlban csatlakozz ezekkel az adatbázis szerverhez. Előtte persze include!!!
[Szerkesztve] -
cucka
addikt
válasz
Forest_roby #891 üzenetére
pedig ott van. eszközök menüpont és utána klikk a mysql manager nevű gombra.
ez a hibaüzenet valami extrás helyi sajátosság lehet, tehát passz[link]
-
cucka
addikt
válasz
Forest_roby #889 üzenetére
igen, extrán van sqlite manager is, de azt még nem próbáltam, jó az a phpmyadmin.
(illetve annyira nem jó, de azért el lehet vele lenni. )
toad for mysql lenne a királyság. régebben próbáltam, akkor egy bug miatt nem működött nálam, lehet, azóta kijavították. -
cucka
addikt
válasz
Forest_roby #886 üzenetére
például a phpmyadmin-ra gondoltál?
az admin felületen az eszközök között találod mysql manager álnéven. -
cucka
addikt
válasz
Forest_roby #884 üzenetére
meg szabad kérdezni, hogy miért pont php-ból akarsz táblákat létrehozni? vannak erre jó adatbázis-matató eszközök, például a phpmyadmin, mysql query browser, elvetemülteknek meg a parancssoros kliens.
ha a query-d (bármilyen query) hibát ad, akkor azt meg tudod nézni a mysql_error() függvénnyel. ha nem ad hibát, akkor értelemszerűen lefutott. -
alitak
senior tag
válasz
Forest_roby #874 üzenetére
A parancs jó, de szerintem char helyett varchar -t használj.
A komment táblában nem tudom mit akarsz eltárolni. Ebben el tárolhatod a post küldőjét, idejét, valamit a szöveget.
create table comment (
komment_id bigint(10) not null auto_increment,
user varchar(30) not null,
datum datetime not null,
komment text not null,
primary key (`komment_id`),
key `datum` (`datum`)
);
A foreign key-re meg itt van leírás: [link] -
cucka
addikt
válasz
Forest_roby #868 üzenetére
1 - 1 sor. Milyen paramétereket érdemes eltárolni? ( count, nev, pass, mail, mégvalami? )
mindenképp kell egy id mező, amivel azonosítod a júzert. ez legyen primary key és célszerű, ha auto increment-es. kell még usernév, jelszó, ezen kívül pedig olyan adatok, amelyeket fel szeretnél használni. példa: ha minden szerző cikkje mellé oda akarod rakni a képét is, akkor kell majd egy mező, ahol eltárolod az illető kép nevét. (képet tárolhatod adatbázisban is, de ez nem feltétlenül jó megoldás)
kommenteket szintén illene indexelni, vagyis itt is lesz egy id mező (primary key, satöbbi), ezen kívül itt lesz a szerző id-ja, hogy tudd ki írta azt a cikket. ez egy foreign key és a users tábla id oszlopára mutat. ezeken felül pedig bármit eltárolhatsz a cikkhez, amit később fel akarsz használni, pl. szöveg, cím, bevezető, ilyesmi.. -
alitak
senior tag
válasz
Forest_roby #868 üzenetére
Felhasználókhoz szerintem kell: usernév, pass, mail, jogok. Esetleg ha számít hsz szám, vagy rang.
Hírekhez szerintem elég: user, dátum, komment (de ezt írtam asszem)
Kiíratásnál lehet megcsinálni, hogy a user nevére van egy mailto függvény.
Nekem a jogok számmal vannak jelölve. Alap az 1, átlaguser. Hozzászólhat, nyithat új témát. A 2 a moderátor, zárhat topicot, törölheti azt, hsz-ekkel ugyanezt. Van a 3, ami az admin (én), összes többi, tehát pl. userek listázása. Úgy van benne a php-ban, hogy if (session_is_registered(''jog'') && $_SESSION[''jog''
>1) ...
Ja, és a 0 a ban. Loginnál beolvasom a jogot, és session-nal küldöm állandóan.
A nemkívánatos részek szűrését írtam előbb. A feldolgoz.php megkapja a user nevét (session), a kommentet (post), és a dátumot meg date() függvénnyel. Aztán ezt az egészet berakod egy mysql táblába
insert into `táblanév` (mező1,mező2,mező3,...) values ('érték1','érték2','érték2',...)
Az id-t tábla létrehozásakor tedd auto_increment -re, azzal nem lesz akkor több gond.
Beolvasás meg select * from hirek order by id desc
Így idő szerint lesz sorba, a legutolsó hír legfelül.
Aztán jön egy while ciklus, mysql_fetch_array() függvényében. Én a hsz-eket táblázatba raktam. Ha be van jelentkezve (if session_is_registered.....), akkor lesz ott egy link az adott hsz-nél, ami pl ilyen: modosit.php?id=5 jelezvén azt, hogy az 5. hsz-ben akarsz változtatni.
Remélem érthető vagyok
mod: mindig olyanokon bukik az egész, amire nem is gondolnál. Kis köcsög hiba, hogy pl. valahol elakad a változó értéke, aztán fél órát keresed a hibát, már minden szart kiíratsz, végül rájösz, hogy nem jó helyen kerested, és 10 mp alatt tudod javítani az egészet. Ez a tapasztalat
Kéz- és lábtörést!
[Szerkesztve] -
alitak
senior tag
válasz
Forest_roby #863 üzenetére
Re!
Először is kell egy html oldal, amiben ugye <form> van. Nem tudom, hogy az oldal beléptetős-e, tehát van-e session. Ha igen, akkor ez az oldal php lesz, és az elején le kell ellenőrizni, hogy jogosult-e írni vagy nem. Ha nem, akkor visszadobod header-rel a főoldalra.
Én most írok fórumot. Minden topic 1 tábla, és egy hsz, az egy sor. Ott eltárolom a hozzászóló nevét (user), a hsz idejét, és a kommentet. A dátum az datetime, a komment az text.
A textareába írt html kódok közül nem tudom, mi az amit nem akarsz hogy működjön. Nekem az így van:
$komment = str_replace(''<'',''<'',$komment);
$komment = str_replace(''|'',''|'',$komment);
$komment = str_replace(''>'',''>'',$komment);
$komment = str_replace(''''',''''',$komment);
$komment = str_replace('''',''"'',$komment);
$komment = str_replace(''&'',''&'',$komment);
htmlspecialchars($komment);
$komment = nl2br($komment);
Ezáltal a sortörés megoldva, idézőjelekkel nem tud kombinálni.
Kiíratni meg asszem menni fog.
Módosítani lehet úgy, hogy ha az illető adminnak van belépve (session ellenőrzés), akkor kiíratsz egy linket az adott hsz-nél, pl modosit.php -ra, ahol ott van még a hsz id-je. Tehát kb. így: modosit.php?id=$id
Ott megint lesz egy form, ami ilyen kb.:
<textarea>$komment</textarea>
Persze a kommentet először ki kell olvasni táblából. Utána jön egy update mysql parancs, és header vissza a főoldalra.
Remélem érthető voltam.
Tök jó, pont ma írtam a fórumomra a hsz módosítását, meg a moderátor jogok kiosztását :) -
Benmartin
senior tag
válasz
Forest_roby #863 üzenetére
[link] google-el 1 ms. volt.
-
RedAnt
aktív tag
válasz
Forest_roby #812 üzenetére
A három számból a php-t futtató felhasználóra a harmadik vonatkozik, hacsak nincs egy csoportban veled. Ha így lenne, akkor sem mennél sokra vele, mert akkor böngészőn keresztül ugyanúgy el lehetne érni Mivel itt 0 van, nem kap semmilyen jogosultságot a fájlon, így nem nyithatja meg. Chmoddal szerintem nem megoldható a dolog.
-
Tyrael
senior tag
válasz
Forest_roby #801 üzenetére
akkor ne 700-al probald, hanem 750-nel.
ja, latom kozben megoldodott...
Tyrael
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #809 üzenetére
na, csak megtaláltam a megoldást! ( google code search )
debian:~# cat /etc/apache2/httpd.conf
<Directory /var/www/proba>
order allow,deny
AllowOverride AuthConfig
allow from all
Options None
</Directory>
debian:~# /etc/init.d/apache2 reload
Reloading web server config...1439
.
debian:~#
így műxik, a php-vel való megnyitás is!
Köszi mindenkinek, hogy idáig elnavigáltatok! -
RedAnt
aktív tag
válasz
Forest_roby #807 üzenetére
extra.hu állítólag egész jó, ott talán engednek .htaccess-t is, egy próbát megér. De nem tudok sokat mondani ingyen tárhelyekről, szerencsére nem szokott rajtuk dolgom lenni...
-
RedAnt
aktív tag
válasz
Forest_roby #805 üzenetére
uw-n tudtommal nem használható .htaccess.
A webszerver közös beállításai vannak az említett httpd.conf fájlban (apache2-től kicsit máshogy van) Itt lehet beállítani hogy pl. miket lehessen a .htaccess fájlokkal engedélyezni/tiltani. De uw-n kötve hiszem hogy ezen változtathatsz...
Úgyhogy vagy keresel egy normális szolgáltatót, vagy jól eldugod az illető könyvtárat -
RedAnt
aktív tag
válasz
Forest_roby #803 üzenetére
Hozzáférsz a szerveren a webes mappán kívüli helyekhez? Mert ha igen akkor legegyszerűbb azokba tenni amiket nem akarod hogy kívülről láthatók legyenek.
Ha csak ahhoz a könyvtárhoz van hozzáférésed ami egyben a webes gyökérkönyvtárad, akkor igen, az apache-nak kell megmondani, hogy bizonyos fájl-lekéréseket ne szolgáljon ki.
Egy alkönyvtárt pl. kompletten letilthatsz ha teszel bele egy .htaccess fájlt a következő tartalommal:
Order deny, allow
Deny from all
Ezután pl. egy szinttel feljebb levő könyvtárban levő php-val el tudod érni a letiltott könyvtár fájljait mondjuk fopen-nel, de ha közvetlenül akarják elérni őket böngészőben, 403-at kapnak.
[Szerkesztve] -
RedAnt
aktív tag
válasz
Forest_roby #801 üzenetére
nem tudtam végigkövetni, konkrétan mi volt a probléma eredete, de azt megjegyezném, hogy a szerveren a php szkripteket általában egy www_data vagy hasonló nevű user futtatja (nem te), tehát ha chmod-dal letiltasz ''másoknak'' elérést valamihez, azt a php ugyanúgy nem fogja látni, mint ha te akarnád a böngésződből megnyitni.
[Szerkesztve] -
Tyrael
senior tag
válasz
Forest_roby #799 üzenetére
np.
Tyrael -
-
Tyrael
senior tag
válasz
Forest_roby #795 üzenetére
ket kulonbozo modszerrel tudod ''letiltani'', hogy el tudjak erni webrol kozvetlenul a fajljaidat:
egyik sima linux jogosultsag (ezt konzolbol chmod mappanev jogosultsag [cgmod jogosultsag mappanev, mindig osszekeverem], vagy pl. total commander fajlt, attributumok modositasa paranccsal, akar ftp-n keresztul is.)
a masik modszer a .htaccess fajl.
ebben az esetben az adott konyvtarban el kell helyezni egy .htaccess nevu fajlt, amiben apache configuracios beallitasokat lehet feluldeklaralni, ha az allowoverride engedelyezve van a httpd.conf-ban.
Tyrael -
Tyrael
senior tag
válasz
Forest_roby #793 üzenetére
nincs mit, bar tartottam tole, hogy kesz forraskodot fogsz kovetelni, de ugy tunik vannak meg normalis emberek, akik tanacsot varnak, nem megoldast.
Tyrael -
Tyrael
senior tag
válasz
Forest_roby #785 üzenetére
chmoddal/.htaccessel fajl jogosultsagait ugy allitod be, hogy apache ne tudja olvasni a fajlt, de php igen. (pl. chmod 700)
ezutan irsz egy php scriptet, ami elvegzi az authentikaciot.
vegul ha be van jelentkezve, akkor kiolvassa neki a script a fajlt tartalmat, majd kiirja kimenetre (es mellesleg beallitja a megfelelo mime-type-ot, hogy ne bongeszobe akarja kiirni, hanem pl. feldobja letoltesre)
kb. ennyi.
Tyrael -
Forest_roby
őstag
válasz
Forest_roby #785 üzenetére
up!
-
Forest_roby
őstag
válasz
Forest_roby #784 üzenetére
csak, hogy lássátok, hogy én is csinálok vmit, ezt találtam:
<?php
$disposition = ''attachment''; // ''attachment'' vagy ''inline''
$mimeType = ''application/octet-stream'';
$fileName = ''letolt.zip'';
$path = ''/var/www-data/dl/$fileName'';
if (isset($_SERVER[''HTTPS''])) {
header(''Pragma: '');
}
header(''Content-Type: $mimeType'');
header(''Content-Disposition:$disposition; filename=\''''.trim(htmlentities($fileName)).''\'''');
header(''Content-Description: ''.trim(htmlentities($fileName)));
header(''Content-Length: ''.(string)(filesize($path)));
// Ez itt elvileg kell ahhoz, hogy bizonyos alkalmazások mentés
// nélkül meg tudják nyitni a letöltött állományt.
header(''Cache-Control: must-revalidate, post-check=0, pre-check=0'');
header(''Connection: close'');
readfile($path);
?>
és működik is 1 file.
mostmár csak az nem tudom, hogy ha ezt: /var/www-data/dl/ kicserélem egy masik mappara ami egy ingyenes tárhelyen van, az hogy lesz elérhetetlen mappa?
illetve
nyilván vmi fv. formára kellene ezt alakítani és file-onként meghívni, ha rákattintok a linkre - ebben még tudnátok segíteni?
:R :R :R
[Szerkesztve] -
Jester01
veterán
válasz
Forest_roby #781 üzenetére
A readfile fuggveny segitsegevel vissza tudsz kuldeni fajlokat. (Hatranya, hogy a megszakadt letoltest alapbol nem tudja folytatni.) A feltoltesre pedig siman hasznalhatsz ftp-t egy olyan mappaba ami nincs kirakva a webre.
-
tkazmer
addikt
válasz
Forest_roby #781 üzenetére
Erre a kérdésre lenne ötletem, de nem akarok hülyeséget mondani, úgyh inkább várd meg a hozzáértőbbeket, még én is csak most tanulgatom ezt az egészet...
-
tkazmer
addikt
válasz
Forest_roby #779 üzenetére
Fájlfeltöltéshez:[link]
-
paramparya
őstag
válasz
Forest_roby #453 üzenetére
El kéne mélyedned normálisan az sql rejtelmeiben, különben még 1000 kérdést is fel fogsz tenni, és mégsem fogod átlátni...
Szerk.: ha gondolod, van sql jegyzetem, az elég érthető, átküldhetem...
[Szerkesztve] -
Forest_roby
őstag
válasz
Forest_roby #452 üzenetére
aha, a phpmyadmin-t nézve több értéket is berakott a sor -ba és oszlop -ba, csak az első helyen tárolt számot jelenítette meg. ez nekem, nem jó. Hogy tudom azokat kitörölni?
-
Briganti
tag
válasz
Forest_roby #450 üzenetére
Nekem vannak amator elkepzeleseim a dologrol, de csak akkor osztom meg, ha csak valaki jobb mind en nem valaszol
(ha nem muszaly nem rohogtetem magam)
es ha valaki profibb irja talan meg tanulok is belolle
Aktív témák
Hirdetés
- Apple MacBook Air M2 8/256 (GARANCIÁS!!! 2026.09.18.)
- Acer Nitro AN515-57 15.6" FHD IPS i5-11400H RTX 3060 16GB DDR4 512GB NVMe gar
- HP core i5-ös fémházas Folio 9470m kifogástalan állapotban!! AkciÓÓ!
- A legolcsóbb!!! Dell Latitude 6. gen. core i5-ös notebook olcsón!!!! AkciÓÓ!
- Olcsó Laptop! Dell Latitude 7280. I5 7300U / 8GB DDR4 / 256GB SSD
- PS3 Játékok 1500Ft/db - RÉSZLETEK A LEÍRÁSBAN
- Szinte új, minőségi, állítható ritkítóolló
- AKCIÓ! HP ZBook Firefly 14 G9 üzleti notebook- i7 1255U 32GB RAM 512GB SSD nVidia T550 4GB Win11
- BESZÁMÍTÁS! ASRock B550M R7 5700X 32GB DDR4 512GB SSD RTX 3070 OC 8GB NZXT H400 fekete Enermax 750W
- 118 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 9 7945HX, RTX 4070 - UK billentyűzet
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged