pagine login-logout php principiante

  • Creatore Discussione Creatore Discussione Punix
  • Data di inizio Data di inizio

Punix

Nuovo Utente
20 Feb 2017
13
1
3
35
Ciao a tutti come da titolo, sono un principiante per quanto riguarda il php, me la cavo meglio con html - css ma con php sono proprio agli inizi...per questo ho bisogno del vostro aiuto.

inanzitutto vi posto i link di 2 file php che ho inserito su un mio spazio web con rispettivo codice...

premessa, la parte php del codice non è mia, mi è stata data, html css sono miei . Scusate in anticipo per la brutta indentazione del codice, ma mi piace essere disordinato
:p


login.php - http://allypage.net23.net/login.php

codice:
<?php
session_start();
$password="giulio8"; /* inserire su questa riga la password voluta */
if (isset($_SESSION['login'])) {
if (isset($_POST['logout'])) {
unset($_SESSION['login']);
$messaggio = "Logout effettuato con successo! Arrivederci!";
} else {
header("Location: protetta.php");
}
} else {
if (isset($_POST['password'])) {
if ($_POST['password'] == $password) {
$_SESSION['login'] = "verificata";
header("Location: protetta.php");
} else {
$messaggio = "Errore: password non corretta!";
}
}
}
?>

<html>
<head>
<style type="text/css">
table
{
*border-collapse: collapse; /* IE7 and lower */
border-spacing: 0;
width: 20%;
background:#dddddd !important; /* For IE*/
}
.bordered {
border: solid #ff0000 1px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
behavior: url(border-radius.htc);
-webkit-box-shadow: 0 1px 1px #ccc;
-moz-box-shadow: 0 1px 1px #ccc;
box-shadow: 0 1px 1px #ccc;
}
.bordered tr:hover {
background: #dddddd;
-o-transition: all 0.1s ease-in-out;
-webkit-transition: all 0.1s ease-in-out;
-moz-transition: all 0.1s ease-in-out;
-ms-transition: all 0.1s ease-in-out;
transition: all 0.1s ease-in-out;
}
.bordered td, .bordered th {
border-left: 1px solid #ccc;
border-top: 1px solid #ccc;
padding: 10px;
text-align: left;
}
.bordered th {
background-color: #dce9f9;
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebf3fc), to(#dce9f9));
background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: -moz-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: -ms-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: -o-linear-gradient(top, #ebf3fc, #dce9f9);
background-image: linear-gradient(top, #ebf3fc, #dce9f9);
-webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
-moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
border-top: none;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
.bordered td:first-child, .bordered th:first-child {
border-left: none;
}
.bordered th:first-child {
-moz-border-radius: 6px 0 0 0;
-webkit-border-radius: 6px 0 0 0;
border-radius: 6px 0 0 0;
behavior: url(border-radius.htc);
}
.bordered th:last-child {
-moz-border-radius: 0 6px 0 0;
-webkit-border-radius: 0 6px 0 0;
border-radius: 0 6px 0 0;
behavior: url(border-radius.htc);
}
.bordered th:only-child{
-moz-border-radius: 6px 6px 0 0;
-webkit-border-radius: 6px 6px 0 0;
border-radius: 6px 6px 0 0;
behavior: url(border-radius.htc);
}
.bordered tr:last-child td:first-child {
-moz-border-radius: 0 0 0 6px;
-webkit-border-radius: 0 0 0 6px;
border-radius: 0 0 0 6px;
}
.bordered tr:last-child td:last-child {
-moz-border-radius: 0 0 6px 0;
-webkit-border-radius: 0 0 6px 0;
border-radius: 0 0 6px 0;
behavior: url(border-radius.htc);
}
</style>
</head>
<body>
<table class="bordered" style="margin:200px auto;">
<tr>
<td>
<center>
<img src="DA INSERIRE" width="300" height="50">
<br><br>

<form name="login" action="login.php" method="post">Password :
<input type="password" name="password" value=""/> &nbsp; <input type="submit" value="Entra"/> <!---- form login ----->

<br><br>
<?php
if(isset($messaggio)) {
echo $messaggio;
unset($messaggio);
}
?>
</form>
</center>
</td>
</tr>
</table>




</p>
</body>
</html>
protetta.php - http://allypage.net23.net/protetta.php

codice:
<?php
session_start();
if (!isset($_SESSION['login'])) {
header("Location: login.php");
}
?>

<html>
<head>
</head>
<body>

<div align="right">
<form name="logout" action="login.php" method="post">
<input type="hidden" name="logout" value="esci"/>
<input type="submit" value="Logout"/>
</form>
</div>

</body>
</html>
Per quanto riguarda la prima parte, del login, dopo che ho deciso la password che i miei utenti devono avere per accedere, nel mio caso "giulio8" , e una volta data ai miei utenti, i miei utenti se inseriranno la password giusta potranno tranquillamente accedere e verrano spediti sulla pagina protetta.php, nel caso contrario riceveranno il messaggio d errore password errata etc ...

1.la prima cosa che io voglio fare è inserire anche l'usurname durante il login.. se i miei utenti inoltre sbagliano o dimenticano di compilare correttamente uno dei 2 campi usurname o password voglio che mi salta fuori un messaggio del tipo "usurname o password errati!"... si può fare ciò ?=)

2.quando effettuo il login vengo riportato nella pagina protetta.php..in questa pagina in alto a destra ho un bottone che mi permette di disconettermi, e che mi riporta alla pagina di login...sotto il form , una volta disconnesso mi viene dato un messaggio "Logout effettuato con successo! Arrivederci!" ...il mio intento è di fare la stessa cosa quando effettuo il login..ovvero inserisco i dati negli appositi campi...effettuo il login e voglio che mi salta fuori , una scritta del tipo "connessione effettuata" e con un countdown sotto tipo 3.2.1...non voglio insomma che mi riporti subito sulla pagina protetta.php...si può fare anche questo ?=) spero di essermi spiegato bene
what.gif


3. a questo punto mettiamo caso io abbia un mio spazio web del tipo http://miosito.it/sito/
e all interno di questo spazio possiedo una serie di pagine html.... vorrei usare i file php sopra citati per accedere a questo mio spazio web... vorrei che i miei utenti una volta recatosi sul mio sito http://miosito.it/sito/ vengano riportati in automatico su http://miosito.it/sito/login.php in modo tale che se non effettuano prima l accesso, non possono accedere ai files html presenti nella root sito... una volta effettuato l accesso i miei utenti vengono riportati sulla home che sarà tipo http://miosito.it/sito/index.html .... si può fare tutto questo? se si come? presumo non basti inserire i file login.php e protetta.php all interno della root /public_html/sito/ :) ..
ps: inoltre so che si deve inserire un file robots.txt all interno della stessa root, potreste darmi anche qualche aiutano in merito?

4.per quanto riguarda al file protetta.php ... mi piacerebbe che una volta effettuato l'accesso, quel tasto di logout , venga incorporato su qualsiasi pagina html io apra all interno del mio sito...si può fare? o mi tocca inserire il codice di protetta.php su ogni pagina html presente sul mio sito?
what.gif


grazie a tutti in anticipo , scusate per il poema
ciao.gif
 
per quanto riguarda il primo punto, sto provando ad inserire anche l'usurname ma continuo a ricevere errori di sintassi dalla linea 13 ...

codice:
PHP:
<?php
session_start();
$usurname="sito";    /* inserire su questa riga l'usurname voluto */
$password="giulio8";    /* inserire su questa riga la password voluta */
if (isset($_SESSION['login'])) {
    if (isset($_POST['logout'])) {
        unset($_SESSION['login']);
        $messaggio = "Logout effettuato con successo! Arrivederci!";
    } else {
        header("Location: protetta.php");
    }
} else {
    if (isset($_POST['usurname']) {
        if ($_POST['usurname'] == $usurname)
    || (isset($_POST['password']) {
        if ($_POST['password'] == $password)
    
        {
            $_SESSION['login'] = "verificata";
            header("Location: protetta.php");
        } else {
            $messaggio = "Errore: usurname o password non corretti!";
        }
    }
}
?>

ho provato a usare precedentemente il tipo di annidamento

PHP:
if ( (isset($_POST['id'])) &&  (isset($_POST['idd'])) )
{echo "etc, etc..";}

ma sembra non funzionare o almeno io non riesco ... mi serve proprio una mano
 
ragazzi il punto 3 l ho risolto in parte, aggiungendo all interno di ogni pagina html presente sul mio spazio web il codice di protetta.php... adesso quando provo infatti a raggiungere una pagina all interno del mio sito ad esempio http://miosito.it/sito/PAGINA1.html , se prima non ho effettuato l'accesso mi riporta su login.php... il problema è che dopo aver effettuato l accesso, non mi porta sulla pagina che io desideravo aprire ma su protetta.php ... come posso risolvere questa cosa?
 
ok raga da solo dopo ore ore di girare su internet e leggere un paio di guide (anche sul vostro sito) sono riuscito a risolvere in pratica i punti 2-3-4 .. ho aggiunto il codice di protetta.php dentro ogni pagina html presente sul mio sito ho fatto qualche modifica al codice di login.php per il rendirizzamento a tempo ecc il codice ora si presenta cosi:

codice:
PHP:
<?php
session_start();
$password="giulio8";    /* inserire su questa riga la password voluta */
if (isset($_SESSION['login'])) {
    if (isset($_POST['logout'])) {
        unset($_SESSION['login']);
        $messaggio = "Logout effettuato con successo! Arrivederci!";
    } else {
        header("Location: protetta.php");
    }
} else {
    if (isset($_POST['password'])) {
        if ($_POST['password'] == $password) {
            $_SESSION['login'] = "verificata";
            $newpage = 'http://miosito.it/sito/index.htm';   
            header('Refresh: 3; url=' . $newpage);
            $messaggio = "Accesso effettuato.Tra 3 secondi verrai reindirizzato alla home del sito.";
            
        } else {
            $messaggio = "Errore: password non corretta!";
        }
    }
}
?>

<html>
<head>
<style type="text/css">
table
{
    *border-collapse: collapse; /* IE7 and lower */
    border-spacing: 0;
    width: 20%;   
 background:#dddddd !important; /* For IE*/
}
.bordered {
    border: solid #ff0000 1px;
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    border-radius: 6px;
 behavior: url(border-radius.htc);
    -webkit-box-shadow: 0 1px 1px #ccc;
    -moz-box-shadow: 0 1px 1px #ccc;
    box-shadow: 0 1px 1px #ccc;         
}
.bordered tr:hover {
    background: #dddddd;
    -o-transition: all 0.1s ease-in-out;
    -webkit-transition: all 0.1s ease-in-out;
    -moz-transition: all 0.1s ease-in-out;
    -ms-transition: all 0.1s ease-in-out;
    transition: all 0.1s ease-in-out;     
}
.bordered td, .bordered th {
    border-left: 1px solid #ccc;
    border-top: 1px solid #ccc;
    padding: 10px;
    text-align: left;   
}
.bordered th {
    background-color: #dce9f9;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#ebf3fc), to(#dce9f9));
    background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:    -moz-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:     -ms-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:      -o-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:         linear-gradient(top, #ebf3fc, #dce9f9);
    -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
    -moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset; 
    box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;       
    border-top: none;
    text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
.bordered td:first-child, .bordered th:first-child {
    border-left: none;
}
.bordered th:first-child {
    -moz-border-radius: 6px 0 0 0;
    -webkit-border-radius: 6px 0 0 0;
    border-radius: 6px 0 0 0;
 behavior: url(border-radius.htc);
}
.bordered th:last-child {
    -moz-border-radius: 0 6px 0 0;
    -webkit-border-radius: 0 6px 0 0;
    border-radius: 0 6px 0 0;
 behavior: url(border-radius.htc);
}
.bordered th:only-child{
    -moz-border-radius: 6px 6px 0 0;
    -webkit-border-radius: 6px 6px 0 0;
    border-radius: 6px 6px 0 0;
 behavior: url(border-radius.htc);
}
.bordered tr:last-child td:first-child {
    -moz-border-radius: 0 0 0 6px;
    -webkit-border-radius: 0 0 0 6px;
    border-radius: 0 0 0 6px;
}
.bordered tr:last-child td:last-child {
    -moz-border-radius: 0 0 6px 0;
    -webkit-border-radius: 0 0 6px 0;
    border-radius: 0 0 6px 0;
 behavior: url(border-radius.htc);
}
</style>
</head>
<body>
<table class="bordered" style="margin:200px auto;">
<tr>
<td>
<center>
<img src="http://i.imgur.com/hxvbojK.png" width="300" height="50">
<br><br>

<form name="login" action="login.php" method="post">Password :
<input type="password" name="password" value=""/> &nbsp; <input type="submit" value="Entra"/>  <!---- form login ----->

<br><br>
<?php
if(isset($messaggio)) {
    echo $messaggio;
    unset($messaggio);
}
?>
</form>
</center>
</td>
</tr>
</table>




</p>
</body>
</html>

mi manca soltanto il punto 1, ovvero voglio che durante il login oltre la password mi si chiede l'usurname ... non riesco a fare quell annidamento sull IF ... qualcuno puo darmi na mano ?
what.gif
grazie
redface.png
 
ciao
a parte che da una prima occhiata mi sembra il tutto un po' incasinato, senza contare che anche se è php la pass è in chiaro quindi con un po' di pazienza qualsiasi malentenzionato "buca" il tuo sito, il tutto senza contare che generalmente ogni utente ha la sua password
 

Discussioni simili