PDA

Visualizza versione completa : password di accesso - pagina web


aelfar
06-10-2007, 10.34.24
Ciao a tutti,
[<FORM METHOD="Get" ACTION="http://www.msni.it">
password <INPUT TYPE=Password Box NAME="Password" SIZE=8 MAXLENGTH=8>
</FORM>]
con questo form vorrei creare l'accesso a una pagina web, IL PROBLEMA:scrivo qualsiasi parola mi manda alla pagina indicata.
penso che manchi un script PHP o ASP che controlli l'esatezza della password, ma non riesco a trovarlo
Grazie

UG0_BOSS
06-10-2007, 13.55.19
Ciao a tutti,
[<FORM METHOD="Get" ACTION="http://www.msni.it">
password <INPUT TYPE=Password Box NAME="Password" SIZE=8 MAXLENGTH=8>
</FORM>]
con questo form vorrei creare l'accesso a una pagina web, IL PROBLEMA:scrivo qualsiasi parola mi manda alla pagina indicata.
penso che manchi un script PHP o ASP che controlli l'esatezza della password, ma non riesco a trovarlo
Grazie

Esatto: devi scrivere una pagina in php/asp (io dei due conosco solo php) che riceva la password, la confronti con quella vera e se sono uguali effettui l'inoltro alla pagina riservata, altrimenti ritorni una pagina di errore.

Ovviamente prima della pagina riservata dovresti controllare che sia stata immessa la password, quindi avresti bisogno di cookie o ancora pi semplicemente delle sessioni (non so se ci sia qualcosa di simile in asp).

Ovviamente poi meglio passarla con il metodo POST anzich GET la password, per evitare di visualizzarla nella barra degli indirizzi.

aelfar
06-10-2007, 22.58.47
deve essere una pagina php che faccia lato server o un script in php integrato nella pagina html , e che modifica porta al form per farlo tornare alla pagina php

UG0_BOSS
07-10-2007, 00.41.34
deve essere una pagina php che faccia lato server o un script in php integrato nella pagina html , e che modifica porta al form per farlo tornare alla pagina php

PHP ed ASP sono linguaggi esclusivamente lato server; Per effettuare un acccesso con password devi usare per forza quelli perch un linguaggio lato client (JavaScript o VBscript) produce del codice visibile all'utente qualora analizzasse il codice HTML dal browser, quindi la password sarebbe "scoperta".

In pratica, ti serve una pagina php (esempio: inoltro.php) con un codice di questo tipo:

<?php
$real_pass='123456' //Questa la password per l'accesso
$user_pass=$_POST['pass']; // Questa la password inserita nel form

// Se le password sono uguali l'inoltro verso la pagina riservata, altrimenti ritorna la pagina di errore
if (!strcmp($real_pass, $user_pass)) header('Location: pagina-riservata.php');
else header('Location: pagina-errore.php');
?>


A questo punto il form andrebbe modificato nel seguente modo:

<FORM action="inoltro.php" method="post">
<INPUT type="password" name="pass">
</FORM>

Questa la versione essenziale: da notare: "action" deve puntare alla pagina che effettua l'inoltro; "method" come gi detto prima decisamente meglio settarlo su "post" in modo che la password non compaia nell'indirizzo ed il nome della casella di input lo stesso che troviamo nell'array php di nome $_POST (nel nostro caso 'pass').

Ti si pone adesso un ulteriore problema: la pagina riservata comunque accessibile normalmente digitandone l'indirizzo nel browser. Se vuoi "bloccarla" ci sono due modi; in entrambi devi comunque usare di nuovo il php.

Comunque, se la pagina riservata una sola, puoi fare una cosa ancora migliore; anzich creare una pagina di inoltro incorpori il codice php nella pagina riservata:

<?php
$real_pass='123456' //Questa la password per l'accesso
$user_pass=$_POST['pass']; // Questa la password inserita nel form

// Se le password sono uguali mostra la pagina riservata, altrimenti ritorna la pagina di errore
if (!strcmp($real_pass, $user_pass)){
?>
CODICE PAGINA RISERVATA
<?php
}
else header('Location: pagina-errore.php');
?>


ed in questo caso il form che ho scritto sopra sarebbe invariato ed eviteresti noiosi problemi di sicurezza.

aelfar
07-10-2007, 06.38.17
nel caso che la pagina riservata una sola: inserisco il codice php nel head o body?
e come salvo la pagina in .html o .php. chiedo perche in action va a cercare una pagina php!
invece nel caso che ci sia pi pagine riservate: come dovrebbe variare il codice?
scusami che approfitto, ma mi ineressa il fatto

UG0_BOSS
07-10-2007, 10.50.51
nel caso che la pagina riservata una sola: inserisco il codice php nel head o body?
Dove ho scritto "CODICE PAGINA RISERVATA" devi incollare tutto il codice HTML, a partire dal tag <HTML> fino al tag </HTML>, che verr quindi mostrato solo in caso le password corrispondano.

e come salvo la pagina in .html o .php. chiedo perche in action va a cercare una pagina php!
La pagina la devi salvare con estensione .php, in modo che il server web anzich mostrare direttamente la pagina la "filtri" attraverso il php, che ne interpreta il codice prima di mostrarla.

invece nel caso che ci sia pi pagine riservate: come dovrebbe variare il codice?
Nel caso di pi pagine riservate la soluzione pi "pulita" e sicura sarebbe quella di utilizzare le sessioni php, che sono basate sui cookie ed identificano univocamente un utente: sono le stesse che vengono utilizzate nella maggior parte dei siti in quanto consentono di creare aree riservate con poco codice ed in maniera semplice.
Se cerchi su internet dovresti trovare abbastanza materiale ed esempi sull'argomento, magari trovi anche qualche pagina gi pronta all'uso.

scusami che approfitto, ma mi ineressa il fatto
Non preoccuparti, siamo qui per condividerla la conoscenza :)