ugrás a tartalomhoz

Admin oldallal kapcsolatos kérdés

Anonymous · 2005. Jan. 14. (P), 15.33
Egy oldalnak az admin részét csinálom és azt szeretném kérdezni, hogy hogyan tudom azt megtenni, hogy ezeket az adminhoz tartozó fájlokat csak az admin tudja megnyitni.

Lehet olyat, hogy mondjuk csak az egyik php script nyitja meg a másikat, de simán nem lehet futtatni a fájlt?

Vagy ez pont erre jó?
if (!eregi("akarmi.php", $_SERVER['SCRIPT_NAME'])) {
die ("You can't access this file directly...");
}
 
1

Ez peldaul jo..

sajt · 2005. Jan. 14. (P), 16.55
De azt is lehet csinalni, hogy az ilyen include file-okat a document rooton kivulre teszed. Akkor biztos nem erik el.
2

HTAccess

Fekete Ferenc GDA · 2005. Jan. 14. (P), 17.02
Vagy az admin könyvtárat .htaccess file gyökérkönyvtárba helyezésével elzárod az illetéktelenek elől;

Vagy csinálsz az adminhoz beléptetést és mindegyik aloldal nézi,h beléptél-e már. És ha nem ,akkor kidob. (pl. session kezeléssel)

ferenc voltam
3

Ha jól értem azt szeretnéd

c · 2005. Jan. 14. (P), 17.17
Ha jól értem azt szeretnéd, hogy a már azonosított admin tudja csak használni a fileokat.

Akkor sztem az admin.php-ba (vagy amit az admin megkap) tegyél egy konstansot, pl.
define('IS_ADMIN',TRUE);.


Utána minden védett file elején kell egy feltétel, ha az IS_ADMIN nem igaz, akkor megöljük a folyamatot:
if(!IS_ADMIN) die('nem futtatható közvetlenül ez a file');


szerintem :)
4

Inkabb igy

sajt · 2005. Jan. 14. (P), 17.22

<?php
if(!defined('IS_ADMIN')) die('nem futtatható közvetlenül ez a file');
?>
5

Szerintem...

Hegi · 2005. Jan. 14. (P), 20.13
szvsz die(); helyett inkabb header igy:

<?php
 If (!defined('IS_ADMIN')) {
   header("Location:login.php");
   exit;
 }
?>
//Hegi
6

És ha mondjuk ki akarok lép

fko · 2005. Jan. 14. (P), 21.13
És ha mondjuk ki akarok lépni, akkor hogyan tudom megtenni, hogy ne legyen továbbra definiálva az IS_ADMIN?

De lehet, hogy ti másra gondoltok, ezért leírom, hogy miről is van szó:

Tehát belépek az admin.php alatt, ahonnan van új hír felvitele, módosítás, törlés, ugyanez cikkekkel, + forráskódokkal, stb. Ezek mind egy-egy külön fájlban vannak megvalósítva. Szóval azt szeretném, hogy ha beléptem adminként, csak akkor tudjam elérni az auhir.php-t, stb. Ha pedig kiléptem ,akkor tovább már ne lehessen használni ezeket.
7

Ez mar mas.

sajt · 2005. Jan. 15. (Szo), 12.07
Az hiszem, hogy mindenki felreertette a problemadat. Ilyenkor az lehet a jo megoldas, ha minden file elejere beincludolod az autentikációt végző modult, amely leellenorzi, hogy belepett-e az ember.
8

Sajt-nak igaza van, és sessi

Fekete Ferenc GDA · 2005. Jan. 15. (Szo), 14.07
Sajt-nak igaza van, és session kezeléssel a kiléptetés is megoldható. Fogj egy könyvet és olvasd el azt idevágó fejezetet, utána vágni fogod, egyszerű megvalósítani.

ferenc voltam
9

Megnéztem ezeket a session d

fko · 2005. Jan. 18. (K), 14.49
Megnéztem ezeket a session dolgokat. Tehát addig megvagyok, hogy van egy admin könyvtáram, benne a fájlok, mellyek végzik a dolgokat amellyeket felsoroltam. Tehát van egy index.php-m, ez belépteti az admint, eltárolja a sessionben a
 session_register("loginNev");  
a loginNev-et. Kilépéskor pedig
 session_unregister("loginNev");		
Szóval úgy gondoltam, hogy minden fájlom elején, csinálok egy ilyet:

if (!($HTTP_SESSION_VARS["loginNev"] == "admin")){
	die("Nem vagy adminként bejelentkezve!");
}
Így csak akkor fut tovább a script, ha a sessionben benne van a loginNev és annak admin az értéke?

Vagy ez így nem túl szerencsés?
10

Nem igazan

sajt · 2005. Jan. 18. (K), 15.39
Jobb a $_SESSION tombot hasznalni.
11

Azt hogyan kell? Mert amit

Anonymous · 2005. Jan. 18. (K), 23.17
Azt hogyan kell?

Mert amit írtam a $HTTP_SESSION_VARS -al, azzal megy.


Ezt így ugyanígy meg lehet csinálni?

<?php
if (($_SESSION["loginNev"] != "admin"))
		die("Nem vagy adminként bejelentkezve!");
?>
12

if (eregi(basename(__FILE__),

butcher51 · 2005. Jan. 25. (K), 16.08
Én igy szoktam, ha file neve nem index.php akkor átugrik index-re... (értelemszerüen index.php-ba ne tedd be:DD)
<?php
if (eregi(basename(__FILE__),$_SERVER[PHP_SELF])) {
Header("Location: index.php");
die();
}
?>