- Home
- Categorie
- Coding e Sistemistica
- PHP
- proteggere pagine tramite password
-
Ciao cioll@,
potresti usare la soluzione di olaola che è la più semplice oppure ricorrere ad un linguaggio di scripting quale può essere php.
Se ho tempo più tardi ti realizzo uno scriptinoEDIT: fatto!
[php]
<html>
<form action="" method="POST">
<input type="text" name="username"> username<br />
<input type="password" name="password"> password<br />
</form></html>
<?
if(isset($_POST)){
$apri=file("db.php");
foreach($apri as $riga){
$el=explode("|",$riga);
if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
function GetTemplate($template) {return str_replace("\"","\\\"",implode("",file($template)));
}
function Stampa($template) {echo $template;
}
eval("Stampa("".GetTemplate("paginasegreta.html")."");"); // sostituisci con il nome del file che contiene il contenuto che l'utente visualizza se ha immesso i dati corretti
}
}
}
[/php]Ora ti basta creare un file chiamato db.php e scrivere un nuova riga per ogni utente con la formula:username|password
ciao!
-
Probid, ma in questo modo, analizzando il codice html della pagina, chiunque potrebbe scovare il nome della pagina segreta!
o no?
-
no...:)
il php è nascosto e il codice non fa altro che integrare nel codice della pagina di login il testo contenuto in paginasegreta.html
L'unico rischio è che un utente aprendo db.php possa leggere gli username e le psw degli utenti,quindi ci vorrebbe un htaccess che ne impedisse l'accesso tramite browser.
A questo punto però è meglio usare direttamente la soluzione di olaola
-
giusto;)
-
grazie mille ragazzzi!
adesso provo le varie strade che mi avete suggerito!sapevo che eravate gentili, ma cosi...
-
Di niente,cioll@.
Riporta qui eventuali problemi riscontrati e saremo felici di darti una mano
-
@probid said:
Ciao cioll@,
potresti usare la soluzione di olaola che è la più semplice oppure ricorrere ad un linguaggio di scripting quale può essere php.
Se ho tempo più tardi ti realizzo uno scriptinoEDIT: fatto!
[php]
<html>
<form action="" method="POST">
<input type="text" name="username"> username<br />
<input type="password" name="password"> password<br />
</form></html>
<?
if(isset($_POST)){
$apri=file("db.php");
foreach($apri as $riga){
$el=explode("|",$riga);
if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
function GetTemplate($template) {return str_replace("\"","\\\"",implode("",file($template)));
}
function Stampa($template) {echo $template;
}
eval("Stampa("".GetTemplate("paginasegreta.html")."");"); // sostituisci con il nome del file che contiene il contenuto che l'utente visualizza se ha immesso i dati corretti
}
}
}
[/php]Ora ti basta creare un file chiamato db.php e scrivere un nuova riga per ogni utente con la formula:
ciao!ciao gentilissimo probid!
senti, sto provando il tuo script.. dunque, incollando il codice ottengo due campi, nome e password ma... non c'è scritto "invia"!! cioè, una volta inseriti, che devo fare per accedere?
e poi, a che pagina mi fa accedere sto script?scusa, ma l'ignoranza..
edit: o mamma mia che figura! non avevo letto il commento. ok, ho sostituito il nome della pagina, ma come dargli "invia"??
grazie!
-
Niente ignoranza ,sono stato io a sbagliare dimenticandomi una parte di script. :D:D
scusami.
Dopo [php]<input type="password" name="password"> password<br />[/php]devi aggiungere:
[php]<input type='submit' value='invia'>[/php]Scusa ancora per la dimenticanza.
-
@probid said:
Ciao cioll@,
potresti usare la soluzione di olaola che è la più semplice oppure ricorrere ad un linguaggio di scripting quale può essere php.
Se ho tempo più tardi ti realizzo uno scriptinoEDIT: fatto!
[php]
<html>
<form action="" method="POST">
<input type="text" name="username"> username<br />
<input type="password" name="password"> password<br />
</form></html>
<?
if(isset($_POST)){
$apri=file("db.php");
foreach($apri as $riga){
$el=explode("|",$riga);
if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
function GetTemplate($template) {return str_replace("\"","\\\"",implode("",file($template)));
}
function Stampa($template) {echo $template;
}
eval("Stampa("".GetTemplate("paginasegreta.html")."");"); // sostituisci con il nome del file che contiene il contenuto che l'utente visualizza se ha immesso i dati corretti
}
}
}
[/php]Ora ti basta creare un file chiamato db.php e scrivere un nuova riga per ogni utente con la formula:
ciao!@probid said:
Niente ignoranza ,sono stato io a sbagliare dimenticandomi una parte di script. :D:D
scusami.
Dopo [php]<input type="password" name="password"> password<br />[/php]devi aggiungere:
[php]<input type='submit' value='invia'>[/php]Scusa ancora per la dimenticanza.che bello, in diretta!
aspetta che provo!figurati se devi scusarti!
-
GRAZIE MILLE!!!
mi basta ed avanza!!!sembra funzionare, ma adesso devo partire
ti farò sapere!!
ciao!!
-
ciao probid, senti, ma quella pagina che io ho cosi protetto potrà poi essere raggiunta semplicemente scrivendo sulla barra l'indirizzo? oppure rimane protetta?
cioè, c'è una parte di script che va anche nella/nelle pagina/e protetta/e??grazie
-
AHIAHIAHIAHHHHI...
qualcosa non va.. ho provato sul server, e mi dice una volta inserito nome e pass che "the page can not be displayed".. ma le pagine le devo chiamare .htm .html o .php???
-
@alibi: è lo stesso errore che ho fatto con cioll@,metti > <input type='submit' value='Verifica disponibilita'> dopo > <input type="text" name="alias"> alias scelto<br />Cioll@,usa questo nuovo script,devi usare le stesse regole di prima mettendo il codice in una pagina con formato .php e creando il file db.txt.
Questo nuovo script è aggiustato ed è anche più sicuro in quanto fa uso delle sessioni e digitando l'url della pagina segreta l'utente non riuscirebbe a loggarsi se non immettesse dati corretti[php]
<html>
<form action="" method="POST">
<input type="text" name="username"> username<br />
<input type="password" name="password"> password<br />
<input type="submit" value="login">
</form></html>
<?
session_start();
if(isset($_POST)){
$apri=file("db.php");
foreach($apri as $riga){
$el=explode("|",$riga);
if($_POST[username]==$el[0] AND $POST[password]==$el[1]){
$_SESSION[logged]=="ok";
$_SESSION[username]==$_POST[username];
echo "<br /><a href="nascosto.php">Accedi</a>";
}
}
}?>[/php]Ora crea il file "nascosto.php" e inserisci il codice:[php]
<?
session_start();
if($_SESSION[logged]=="ok"){
echo "sei loggato come $_SESSION[username]";
// codice della pagina segreta
}else{
exit();
}
?>[/php]ciao!
-
ciao probid, grazie ancora!
solo un dubbio: il db deve essere .php, giusto? e non .txt ? le pagine poi? tutte anche loro (modulo e nascosto) sempre in .php?diciamo che adesso il problema è che se compilo nome e passw e clicco login ricarica cmq la stessa pagina..
grazie infinite della pazienza!
-
Il db deve essere in TXT non in PHP.
Le pagine in PHP.diciamo che adesso il problema è che se compilo nome e passw e clicco login ricarica cmq la stessa pagina..Non è un prob,dev'essere così...
Se l'utente mette i dati giusti,appare il link che porta alla pagina nascosta
-
@probid said:
Il db deve essere in TXT non in PHP.
Le pagine in PHP.
Non è un prob,dev'essere così...
Se l'utente mette i dati giusti,appare il link che porta alla pagina nascostaah.. capisco!
adesso provo.. il dubbio del .txt mi è venuto perchè nelcodice ho visto che cerca il file db.php...:bho:
-
putroppo qualcosa ancora non va..
se faccio login la pagina rimane proprio la stessa...
non appare nessun collegamento!
-
Sposto in Php e divido il thread di Alibi
-
uppettino...
-
Ciao cioll@,
una domanda...le sessioni sul server in uso sono abilitate in php.ini?