Am un site pe care urmează să-l încarc într-un hosting și am anumiti parteneri care ar trebui să aibă acces numai la o parte a siteului cea care îi reprezinta pe ei pentru actualizarea datelor lor.
Cum ar trebui să procedez să aibă acces printr-un user și o parolă doar la datele lor; există vreo posibilitate în hosting prin cpanel să se restrângă accesul doar la anumite fișiere, sau există ceva script prin care să-i permit unui anumit utilizator să modifice doar ceea ce îl priveste pe el în acea pagină?
Acces restrictionat la pagini din site
-
- Mesaje:88
Acces restrictionat la pagini din site
MarPlo
Mesaje:4343
Se poate cu un script de inregistrare.
Dai sa aiba access la acele pagini doar daca utilizatorul e logat, iar numele lui (retinut in Sesiune) e in adresa URL a acelor pagini.
Ex.: http://site.web/index.php?id=idpag&user=unNume
Apoi, in scriptul php:
if($_SESSIONN['nume']==$_GET['user']) { // afiseaza acea pagina }
Dai sa aiba access la acele pagini doar daca utilizatorul e logat, iar numele lui (retinut in Sesiune) e in adresa URL a acelor pagini.
Ex.: http://site.web/index.php?id=idpag&user=unNume
Apoi, in scriptul php:
if($_SESSIONN['nume']==$_GET['user']) { // afiseaza acea pagina }
bvlucretiu
Mesaje:88
la $_GET[user] introduc numele utilizatorului ?MarPlo scrie: Apoi, in scriptul php:
if($_SESSIONN['nume']==$_GET['user']) { // afiseaza acea pagina }
bvlucretiu
Mesaje:88
[quote="MarPlo"iar numele lui (retinut in Sesiune) e in adresa URL a acelor pagini.
[/quote]
cum se retine numele;
eu vreau doar un singur user să aiba acces la acea pagină pentru a o modifica, nu toti utilizatorii logați?
Unde se reține numele lui în Sesiune, căci nu prea înțeleg.
Îmi cer scuze!
[/quote]
cum se retine numele;
eu vreau doar un singur user să aiba acces la acea pagină pentru a o modifica, nu toti utilizatorii logați?
Unde se reține numele lui în Sesiune, căci nu prea înțeleg.
Îmi cer scuze!
trif
Mesaje:500
salut, am si eu o mica problema, am facut o bd cu rang-uri si acum vreau sa ii restrictionez. am in felul urmator rangul 1 administrator, rangul 2 moderator, rangul 3 utilizator, si am doar restrictionare doar pt utilizatori ca daca este autentificat sa il lase iar daca nu sa il trimita la autentificare.php. dar aici vine problema, eu am diverse pagini care utilizatorul nu vreau sa o poata accesa ci doar administratorul sau moderatorul iar mai sunt alte pagini care vreau ca doar administratorul sa le acceseze nu si utilizatorul sau moderatorul. cum modific codul de sus ca in functie de rang sa ma lase sa accesez paginile permise la fiecare rang in parte sau daca este alta solutie. de exemplu va dau un exemplu cum am facut ca in functie de rang sa imi afiseze doar meniurile permise de fiecare rang, cam asta sunt, rog sa ma ajutati o o varianta cat mai buna pt securitatea site-urilor. sper ca ati inteles, va multumesc anticipat, cu stima trif
Cod: Selectaţi tot
<?php
//Start session
session_start();
//Check whether the session variable SESS_MEMBER_ID is present or not
if(!isset($_SESSION['utilizator']) || (trim($_SESSION['utilizator']) == '')) {
header("location: autentificare.php");
exit();
}
?>
Cod: Selectaţi tot
<?php
$q_SQL="SELECT * FROM utilizatori limit 1";
$rezultat_q=mysql_query($q_SQL);
$numar=mysql_num_rows($rezultat_q);
$y=0;
while ($y < $numar) {
$row=mysql_fetch_array($rezultat_q);
// Cod de test afisare un continut pt. cei autentificati si altul pt. vizitatori
if(isset($_SESSION['utilizator']) && $row['rang'] == 1 ) {
echo '<a href="Pagina mea.php">Pagina mea</a><br> <a href="adaugare_cantare.php">Adauga Cantare</a> <br> <a href="aprobare_cantare.php">Aprobare Cantare</a><br> <a href="utilizatori.php">Utilizatori</a><br> <a href="rang_utilizatori.php">RANG Utilizatori</a><br> <a onclick="return confirm (' . $confirm_message_iesire . ');" href="iesire.php">IESIRE</a> ';
}
elseif(isset($_SESSION['utilizator']) && $row['rang'] == 2 ) {
echo '<a href="Pagina mea.php">Pagina mea</a><br> <a href="adaugare_cantare.php">Adauga Cantare</a> <br> <a href="utilizatori.php">Utilizatori</a><br> <a onclick="return confirm (' . $confirm_message_iesire . ');" href="iesire.php">IESIRE</a> ';
}
elseif(isset($_SESSION['utilizator']) && $row['rang'] == 3 ) {
echo '<a href="Pagina mea.php">Pagina mea</a><br> <a href="adaugare_cantare.php">Adauga Cantare</a> <br> <a onclick="return confirm (' . $confirm_message_iesire . ');" href="iesire.php">IESIRE</a> ';
}
else {
echo '';
}
++$y;
}
?>
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
trif
Mesaje:500
salut, ma poate ajuta cineva? macar cu ceva sfaturi, va rog. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif
claUdiu
Mesaje:313
Pentru a nu intra un viiztator pe paginile de administrare poti sa faci asa:
Iar...pentru ranguri eu fac asa:
Fac un if in care selectez sesiunea si numarul rangului care il are acel user...si akl pun:
Ideea esta ca e ufac un meniu pentru fiecare....si...nah..Fiecare are meniul lui:)
Sper ca te0am putut ajuta!
Cod: Selectaţi tot
<?
if (!session_is_registered(nume)){
header ("location" login.php");
}
?>
Fac un if in care selectez sesiunea si numarul rangului care il are acel user...si akl pun:
Cod: Selectaţi tot
if ($nume == 2)
echo "Bine ai venit administrator";
}
Si de aici poti sa faci cu e lseif
Sper ca te0am putut ajuta!
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
calynutz_baciu
Mesaje:3
Asta m-a ajutat pe mine o vreme si o sa te ajute si pe tine:
Salvezi codul cu numele de exemplu petre.php si il incluzi frumos in pagina lui petre dar la inceputul codului sa pui user-ul petre sau cum vrei tu si parola lui. si il salvezi de cate ori vrei cu nume diferite si in fiecare tot alt user.
Sper ca ti-am fost de folos. Apropo, are si cookie , daca te descurci cu engleza citeste prin cod si il poti seta tu la cat timp vrei, parca la vreo 12 ore expira.
Cod: Selectaţi tot
<? $LOGIN_INFORMATION = array(
'user' => 'password' // aici definesti user-ul si parola intre ' '
);
// request login? true - show login and password boxes, false - password box only
define('USE_USERNAME', true);
// User will be redirected to this page after logout
define('LOGOUT_URL', 'http://www.rlinklogout.ro/'); //link-ul de logout
// time out after NN minutes of inactivity. Set to 0 to not timeout
define('TIMEOUT_MINUTES', 15); // timpul dupa care te scoate de pe pagina daca nu exista activitate
// This parameter is only useful when TIMEOUT_MINUTES is not zero
// true - timeout time from last activity, false - timeout time from login
define('TIMEOUT_CHECK_ACTIVITY', true);
##################################################################
# SETTINGS END
##################################################################
///////////////////////////////////////////////////////
// do not change code below - nu schimba nimic mai jos!!!
///////////////////////////////////////////////////////
// show usage example
if(isset($_GET['help'])) {
die('Include following code into every page you would like to protect, at the very beginning (first line):<br><?php include("' . str_replace('\\','\\\\',__FILE__) . '"); ?>');
}
// timeout in seconds
$timeout = (TIMEOUT_MINUTES == 0 ? 0 : time() + TIMEOUT_MINUTES * 43200);
// logout?
if(isset($_GET['logout'])) {
setcookie("verify", '', $timeout, '/'); // clear password;
header('Location: ' . LOGOUT_URL);
exit();
}
if(!function_exists('showLoginPasswordProtect')) {
// show login form
function showLoginPasswordProtect($error_msg) {
?>
<html>
<head>
<title>Please enter password to access this page</title>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</head>
<body>
<style>
input { border: 1px solid black; }
</style>
<div align="center">
<div style="width:500px; margin-left:auto; margin-right:auto; text-align:center">
<form method="post">
<h3>Please enter password to access this page</h3>
<font color="red"><?php echo $error_msg; ?></font><br />
<?php if (USE_USERNAME) echo 'Login:<br /><input type="input" name="access_login" /><br />Password:<br />'; ?>
<input type="password" name="access_password" /><p></p><input type="submit" name="Submit" value="Submit" />
</form>
<br />
</div>
</div>
</body>
</html>
<?php
// stop at this point
die();
}
}
// user provided password
if (isset($_POST['access_password'])) {
$login = isset($_POST['access_login']) ? $_POST['access_login'] : '';
$pass = $_POST['access_password'];
if (!USE_USERNAME && !in_array($pass, $LOGIN_INFORMATION)
|| (USE_USERNAME && ( !array_key_exists($login, $LOGIN_INFORMATION) || $LOGIN_INFORMATION[$login] != $pass ) )
) {
showLoginPasswordProtect("Incorrect password.");
}
else {
// set cookie if password was validated
setcookie("verify", md5($login.'%'.$pass), $timeout, '/');
// Some programs (like Form1 Bilder) check $_POST array to see if parameters passed
// So need to clear password protector variables
unset($_POST['access_login']);
unset($_POST['access_password']);
unset($_POST['Submit']);
}
}
else {
// check if password cookie is set
if (!isset($_COOKIE['verify'])) {
showLoginPasswordProtect("");
}
// check if cookie is good
$found = false;
foreach($LOGIN_INFORMATION as $key=>$val) {
$lp = (USE_USERNAME ? $key : '') .'%'.$val;
if ($_COOKIE['verify'] == md5($lp)) {
$found = true;
// prolong timeout
if (TIMEOUT_CHECK_ACTIVITY) {
setcookie("verify", md5($lp), $timeout, '/');
}
break;
}
}
if (!$found) {
showLoginPasswordProtect("");
}
}
?>
Salvezi codul cu numele de exemplu petre.php si il incluzi frumos in pagina lui petre dar la inceputul codului sa pui user-ul petre sau cum vrei tu si parola lui. si il salvezi de cate ori vrei cu nume diferite si in fiecare tot alt user.
Cod: Selectaţi tot
<> include 'petre.php'; ?>
Sper ca ti-am fost de folos. Apropo, are si cookie , daca te descurci cu engleza citeste prin cod si il poti seta tu la cat timp vrei, parca la vreo 12 ore expira.
Subiecte similare
- Creare meniu in site cu php
Scripturi de pe site Primul mesaj
SalutUltimul mesaj
Am incercat sa pun icons pe primul nivel al meniului din tutorialu tau: Creare site de la zero si nu reusesc sa il adaug pe butonele care...
Multumes pt ajutor
Este ok acum.
Din exeplul dat de tine am mai vazut ceva intersant si anume acel meniu asa zis breadcrumb cu ce ma selectat deja.... - Programare Site Sector 5
Discutii si Intrebari Diverse Salut la toți.
Ce oare poate avea? Nu îmi permite să înregistrez programarea pe site.
Atașez link:...