PDA

View Full Version : [php] proteggere pagine con php e mysql


lucas72
25-05-2004, 21:10
Ciao a tutti.
Vorrei proteggere le pagine personali di alcuni utenti
alle quali si possa accedere inserendo in un form (unico per tutti)
di una pagina di login nome utente e password.
La pagina di login dovrebbe inviare i dati così ottenuti ad un file php
che faccia accedere esclusivamente alla propria pagina web in php e non in html (quindi deve
selezionare la pagina in base al nome utente e alla pass inseriti nel modulo)

La pagina html del modulo potrebbe essere sostanzialmente una cosa del genere:


<html>
<head>
<title>Login To </title>
</head>
<body bgcolor="#FFCC66">

<div align="center">
<b>Per accedere all'area protetta inserisci ...</b>
<form method="post" action="selezionapag.php">
<table border=0 cols=2 width=200 cellpadding=0 cellspacing=0>
<tr>
<td width=100>
<b>User ID:</b>
</td>
<td width=100>
<input type="text" name="uid" size="12">
</td></tr>
<tr>
<td width=100>
<b>Password:</b>
</td>
<td width=100>
<input type="password" name="pwd" SIZE="12">
</td></tr>
<tr>
<td colspan=2 align=center><br>
<input type="submit" name="submitlogin" value="Login">
</td></tr>
</table>
</form>
</div>



Non ho particolari problemi a creare una tabella in mysql con i seguenti campi:
ID
nome utente
password
pagina personale (quella alla quale rinviare per singolo utente..giusto?)


Non dovrebbe essere particolarmente difficile creare lo script php (selezionapag.php)
se la pagina protetta fosse unica per tutti gli utenti: lo script dovrebbe verificare
solamente se esiste il nome e la pass nel database e rinviare alla
pagina in php protetta se i dati sono giusti (ho anche dei tutorial e script
già pronti in questo caso); ma la cosa si complica
per me che sto ancora studiando le basi del php
volendo realizzare quello descritto sopra e
e senza dimenticare il fattore sicurezza; alla pagina php contenente "dati sensibili"
dovrebbe poter accedere solo ed esclusivamente l'utente in possesso
del nome utente e password relativi.
Mi aiutate per piacere?
grazie anticipatamente.

Scoperchiatore
25-05-2004, 23:20
mettilo nella session ;)

Non conosco il php, ma in questi linguaggi esistono oggetti predefiniti (session rappresenta la sessione) che contengono informazioni generali riguardanti una parte dell'applicazione (in questo caso la sessione).

Fai fare il login a un utente, e se lo trovi nel DB (puoi anche diversificare i login, inserendo un input type="radio" in cui l'utente ti dice cos'è (utente, amministratore, fruttivendolo... :D ) e così tu sai in che tabella del DB andare a ricercare) allora metti l'utente stesso o il suo username nella sessione.

Ogni pagina "sensibile" avrà una if all'inizio in cui controllerai che ci sia uno username nella session: se c'è, bene, altrimenti, fai un redirect a una pagina di errore, o gli dici "NUN POI ACCEDE" :D

lucas72
26-05-2004, 21:14
non conosco tanto bene il php nemmeno io
ed ho capito poco di ciò che hai detto.
comunque grazie lo stesso,
ciao