-
Restrizione Accesso PHP
Salve a tutti, oggi sono qui per chidere il vostro aiuto.
Vorrei mettere nel mio sito una protezione ad una relativa "admin area" con cookie, adesso mi spiego meglio.
Cè un login generale dove possono loggarsi tutti i registrati.
Cè un admin area che per ora ci puo accedere chiunque.
Io vorrei mettere un controllo cookie o credenziali di accesso in modo che l'admin area sia accessibile solo a chi mette i dati corretti.
Login ---> (immetto nei campi vuoti username e pass) ---> Dopo il login posso accedere alla zona protetta grazie al login corretto dell'amministratore
Ecco se potete rispondere mi fareste un grande favore, se vi serve altro chiedete.
-
i cookie non sono per niente sicuri, visto che si possono modificare/creare facilissimamente.
Dovresti usare le sessioni!.. Comunque come è strutturato il suo sistema login? Cioè, cosa salvi nei cookie? Il nick o solo un flag per sapere se si è loggati o meno? Nel primo caso, è sufficiente controllare che nick è con un semlice if; nel secondo caso, dovresti cambiare il flag (ad esempio passando da 1 per loggto a 2 per loggato + amministratore...).
Ciao!
-
Mi potresti fornire gentilmente il codice x il controllo attraverso username?
-
se usi le sessioni: (come faccio io):
Codice PHP:
session_start(); //inizializzo l'uso delle sessioni in questa pagina
if(!isset($_SESSION['nick'])) //controllo se esiste la sessione
die('Non sei nemmeno loggato!');
if($_SESSION['nick'] == 'alemoppo') //se sono io
echo '';//mostro la pagina (puoi usare include o altro...)...
else
echo 'Accesso non consentito'; //puoi usare un redirect o altro...
Ciao!
-
grazie mille :) e buon natale :)
-
uffi non mi va...
ecco il codice della pagina di login, io vorrei che se mi logga correttamente mi porta alla home altrimenti da dati errati, e se mi logga correttamente vorrei che ci fosse una pagina redirect a tempo che dica "Utente $var_nomeutente Connesso !" e se quello che logga correttamente sono io mi porta lo stesso alla home ma una "home modificata" cioe' lui controlla i dati di login se sono io tramite un gioco di else e if mi fa vedere l'homepage con le mie cose per amministrare xD
Non so se avete capito....
Comunque il codice di login è
Codice PHP:
<?
include('skin.php')
?>
<script language="Javascript" type="text/javascript">
<!--
function controllapassword(modulo) {
if (modulo.username.value == "") {
alert("Errore : Inserire username!")
modulo.username.focus()
return false
}
if (modulo.password.value == "") {
alert("Errore : Inserire password!")
modulo.password.focus()
return false
}
return true
}
-->
</script>
<?php
session_start();
if(!isset($_POST['submit'])){
echo "<p align='center'><strong><font color='blue'>Black Tech Site </font>~blacktech.altervista.org/</strong></p><br>
<center><b><font color='blue'>L</font>OGIN <font color='blue'>U</font>TENTI</b></center><br>
<table border='0' cellspacing='1' cellpadding='0' width='300' align='center' bgcolor='#424242'><tbody>
<tr><form action='#' onsubmit='return controllapassword(this)' method='post'> <input name='phpMyAdmin' type='hidden' value='V0N0db6Fl62QWr6eBkly75xAGn3' /><td>
<table border='0' cellspacing='1' cellpadding='3' width='100%' bgcolor='#424242'><tbody>
<tr>
</tr>
<tr>
<td width='78'><font color='blue'>U</font>sername</td>
<td width='6'>:</td>
<td width='294'><input id='username' name='username' type='text' /></td>
</tr>
<tr>
<td><font color='blue'>P</font>assword</td>
<td>:</td>
<td><input id='password' name='password' type='password' /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input name='submit' type='submit' value='Esegui Login' /></td>
</tr>
</tbody></table>
</td>
</form></tr>
</tbody></table>
<br><br>
<center><a href='/portal/index.php'>Home Page</a> | <a href='/reg_log/reg.php'>Registrati</a></center>
";
} else {
include 'config.php';
include 'connect.php';
$user = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['password']);
$query = "SELECT * FROM members WHERE username = '{$user}' AND password = '{$pass}'";
$result = mysql_query($query,$conn) or die("Errore query.");
$num_rows = mysql_num_rows($result);
if ($num_rows == '1'){
echo "<center><font color='blue'>B</font>envenuto Utente<br><br><font color='blue'>T</font>i sei loggato correttamente!<br><br><font color='blue'>P</font>er accedere subito ai servizi riservati agli utenti registrati clicca il link qui sotto :<br><br><a href='/tools/tlist.php'>Tools , Guide e Tutorial !</a><br><br><br><font color='blue'>O</font>ppure se vuoi collegarti alla Home Page clicca il link qui sotto :<br><br><a href='/portal/index.php'>Home Page !</a></center>";
session_register("logged");
} else {
echo "Dati errati : <a href='/reg_log/log.php'>Login</a> | <a href='/reg_log/reg.php'>Registrati</a>";
}
}
?>
-
1- il session_start va all'inizio della pagina, perché deve modificare dei dati nell'header!...
2- non usare le session_register() .. Ma usa il superarray $_SESSION !
Comunque, forse queste discussioni potrebbero interessarti: questa, questa.
Ciao!
-
uffi proprio non capisco aiutatemi o~o please!, il sorgente è quello di prima ! ma quando visito la pagina protetta mi dice che la sessione non esiste! potreste scrivermi il codice voi cosi poi me lo studio?
-
non c'é niente da studiare... cioè:
il session_start() all'inizio e non usare le funzioni session_register() , ma preferire il super array $_SESSION. Correggendo queste due cose, lo script viene fuori in questo modo:
Codice PHP:
<?
session_start();
include('skin.php')
?>
<script language="Javascript" type="text/javascript">
<!--
function controllapassword(modulo) {
if (modulo.username.value == "") {
alert("Errore : Inserire username!")
modulo.username.focus()
return false
}
if (modulo.password.value == "") {
alert("Errore : Inserire password!")
modulo.password.focus()
return false
}
return true
}
-->
</script>
<?php
if(!isset($_POST['submit'])){
echo "<p align='center'><strong><font color='blue'>Black Tech Site </font>~blacktech.altervista.org/</strong></p><br>
<center><b><font color='blue'>L</font>OGIN <font color='blue'>U</font>TENTI</b></center><br>
<table border='0' cellspacing='1' cellpadding='0' width='300' align='center' bgcolor='#424242'><tbody>
<tr><form action='#' onsubmit='return controllapassword(this)' method='post'> <input name='phpMyAdmin' type='hidden' value='V0N0db6Fl62QWr6eBkly75xAGn3' /><td>
<table border='0' cellspacing='1' cellpadding='3' width='100%' bgcolor='#424242'><tbody>
<tr>
</tr>
<tr>
<td width='78'><font color='blue'>U</font>sername</td>
<td width='6'>:</td>
<td width='294'><input id='username' name='username' type='text' /></td>
</tr>
<tr>
<td><font color='blue'>P</font>assword</td>
<td>:</td>
<td><input id='password' name='password' type='password' /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input name='submit' type='submit' value='Esegui Login' /></td>
</tr>
</tbody></table>
</td>
</form></tr>
</tbody></table>
<br><br>
<center><a href='/portal/index.php'>Home Page</a> | <a href='/reg_log/reg.php'>Registrati</a></center>
";
} else {
include 'config.php';
include 'connect.php';
$user = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['password']);
$query = "SELECT * FROM members WHERE username = '{$user}' AND password = '{$pass}'";
$result = mysql_query($query,$conn) or die("Errore query.");
$num_rows = mysql_num_rows($result);
if ($num_rows == '1'){
echo "<center><font color='blue'>B</font>envenuto Utente<br><br><font color='blue'>T</font>i sei loggato correttamente!<br><br><font color='blue'>P</font>er accedere subito ai servizi riservati agli utenti registrati clicca il link qui sotto :<br><br><a href='/tools/tlist.php'>Tools , Guide e Tutorial !</a><br><br><br><font color='blue'>O</font>ppure se vuoi collegarti alla Home Page clicca il link qui sotto :<br><br><a href='/portal/index.php'>Home Page !</a></center>";
$_SESSION['logged'] = $user;
} else {
echo "Dati errati : <a href='/reg_log/log.php'>Login</a> | <a href='/reg_log/reg.php'>Registrati</a>";
}
}
?>
....ho dato per scontato che il resto dello script sia funzionante....
--
Per verificare se funziona (io NON ho verificato), prova a visitare questa pagina prima senza loggarti, poi loggandoti:
Codice PHP:
<?php
session_start();
if(isset($_SESSION['logged']))
echo 'Benvenuto,'.$_SESSION['logged'];
else
echo 'non sei loggato...';
?>
Ciao!
-
ok perfetto pure io avevo fatto cosi ma non funzionava, adesso ho trovato l'errore avevo dimenticato una '
Grazie Mille Ancora adesso va! XD