- Home
- Categorie
- Coding e Sistemistica
- PHP
- Area privata senza database
-
L'esempio è proprio quello invece di nomeutente1, devi mettere il nome utente dell'utente 1, in password1 la password dell'utente 1, e cosi via...
-
Grazie TheDarkita,
ora provo...!
-
Ciao TheDarkita,
ho provato lo script on-line una volta modificato il file utenti.php,sono andato a vedere se mi faceva entrare ma mi dice sempre:Nome utente o password errati...Che devo fare? Posto il codice...Login.php:
[php]<?php
session_start();
if(isset($_POST['user'])){
include('utenti.php');
$c = count($utenti);
$i = 0;
while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass) $i++;
if($i < $c)
{
$_SESSION['login'] = $utenti*['id'];
// reindirizzo l'utente
header('Location: protetta.php');
exit;
}
// se non esiste da l'errore
else
die ('Nome Utente o Password errati');}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<form action="" method="post">
<input name="user" type="text" id="user" value="Nome Utente" onFocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="pass" type="password" id="pass" value="Password" onFocus="if(this.value=='Password') this.value='';" /><br />
<input name="login" type="submit" value="Login" /><br />
</form>
</body>
</html>[/php]utenti.php
[php]<?php
$utenti[]=array('id' => 1, 'nomeutente' => 'stefano', 'password' => 'stefano');
$utenti[]=array('id' => 2, 'nomeutente' => 'nomeutente2', 'password' => 'password2');
?> [/php]Protetta.php:
[php]<?php
session_start();
fopen("utenti.php","a+");
if(isset($_SESSION['login']))
echo 'Contenuto privato';
else
echo 'Contenuto pubblico';
?>
[/php]Mi puoi dare una mano TheDarkita??
Grazie Stek=)=)
-
Ciao TheDarkita,
sto provando a capire dov'è l'errore, ma non lo sto riuscendo a trovare...
Mi potresti dare una dritta???
Grazie Stek
-
Ad un primo sguardo mi sembra manchino le variabili $user e $pass che qui recupero con
$user = $_POST['user']; $pass = $_POST['pass'];
ed anche l'action del form era da completare:
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
quindi dovrebbe essere (ma devo testare pure io, ANZI chiedo agli esperti consigli e ragguagli):
login.php
<?php session_start(); if(isset($_POST['user'])){ $user = $_POST['user']; $pass = $_POST['pass']; include('utenti.php'); $c = count($utenti); $i = 0; while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass) $i++; if($i<$c) { $_SESSION['login'] = $utenti*['id']; // reindirizzo l'utente header('Location: protetta.php'); // se non esiste da l'errore }else{ die('Nome Utente o Password errati'); }} ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Login</title> </head> <body> <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post"> <input name="user" type="text" id="user" value="Nome Utente" onFocus="if(this.value=='Nome Utente') this.value='';" /><br /> <input name="pass" type="password" id="pass" value="Password" onFocus="if(this.value=='Password') this.value='';" /><br /> <input name="login" type="submit" value="Login" /><br /> </form> </body> </html>
-
Ciao Motorpsyco,
grazie per la risposta, comunque l'ho provato e l'autentificazione avviene, solo che avviene anche se c'è un solo dato corretto(pass o user) ed una volta entrato mi da contenuto privato ma l'ho da anche se si mette l'URL nella barra del browser....Aspetto una vostra risposta
Grazie Stek
-
ciao stek,
è vero: ho fatto una prova anche io.
purtroppo non ho le conoscenze tali da capire al volo di cosa si tratta e sono impegnatissimo con il lavoro (mi aspetta un sabato notte niente male ohibò)speriamo in qualche anima pia...
-
Ciao motorpsyco,
spero anch'io che qualcuno mi possa aiutare sto veramente impazzendo!!!
Comunque per questa sera Buon Lavoro...
Grazie stek
-
Ciao a tutti,
da quanto tempo...nono è che qualcuno sarebbe così gentile da darmi una mano per quaesto script,ve ne sarei molto grato,perche non so più dove sbattere la testa...x
Spero che qualcuno risponda...
Ciao Stek
-
Ciao stek96,
ti basta verificare che sia settata la variabile
$_SESSION['login'].
-
Ciao Thedarkita,
grazie per avermi risposto...susami tanto però non ho capito cosa vuoi dire, mi puoi fare un esempio o mostrarmi cosa vuoi dire...???
Te ne sarei grato...
Grazie Stek
-
Basta aggiungere in cima ai file da proteggere:
[php]
<?php
session_start();
if(!isset($_SESSION['login']))
die('Accesso nno autorizzato');
?>[/php]
-
Ciao Thedarkita,
grazie per la risposta...
allora io ho questo file:Protetta.php
[php]<?php
session_start();
fopen("utenti.php","a+");
if(isset($_SESSION['login']))
echo 'Contenuto privato';
else
echo 'Contenuto pubblico';
?> [/php]dove lo devo mettere questo:
[php] <?php
session_start();
if(!isset($_SESSION['login']))
die('Accesso nno autorizzato');
?> [/php]Poi un'altra cosa: allora aggiungo i dati(nomeutente e pass) nel file utenti, ma quando vado al login mi dice Nome o Pass non corretti...cosa devo fare?
Ti posto i file:Login.php
[php]<?php
session_start();
if(isset($_POST['user'])){
include('utenti.php');
$c = count($utenti);
$i = 0;
while($i < $c && $utenti*['nomeutente'] != $user && $utenti*['password'] != $pass) $i++;
if($i < $c)
{
$_SESSION['login'] = $utenti*['id'];
// reindirizzo l'utente
header('Location: protetta.php');
exit;
}
// se non esiste da l'errore
else
die ('Nome Utente o Password errati');}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<form action="" method="post">
<input name="user" type="text" id="user" value="Nome Utente" onFocus="if(this.value=='Nome Utente') this.value='';" /><br />
<input name="pass" type="password" id="pass" value="Password" onFocus="if(this.value=='Password') this.value='';" /><br />
<input name="login" type="submit" value="Login" /><br />
</form>
</body>[/php]ed il file utenti.php
[php]<?php
$utenti[]=array('id' => 1, 'nomeutente' => 'stefano', 'password' => 'io');
$utenti[]=array('id' => 2, 'nomeutente' => 'luca', 'password' => 'luca');
?> [/php]Cosa devo fare?Facendo come mi aveva consigliato motorpsyco, i dati inseriti nel file utenti.php una volta che verifico ,l'autenticazione funziona, solo che avviene anche se c'è un solo dato corretto(pass o user) ed una volta entrato mi da contenuto privato ma l'ho da anche se si mette l'URL nella barra del browser.
Grazie Thedarkita per il tempo che stai dedicando a cercare di spiegarmi...scusami se ti faccio domande da vero principiante!
Grazie stek
-
Se vuoi proteggere una pagina basta che quel codice lo inserisci all'inizio della pagina, e mostrerà l'errore a chi non è loggato.
-
Ciao Thedarkita,
allora, se devo proteggere le pagine inserisco quel pezzo che mi hai dato tu,invece per il login quello con il fopen?
E per le altre cose che mi dici?
Grazie Stek
-
Ciao Thedarkita,
non è che mi potresti dareuna mano riguardando lo script e dicendomi che cosa devo fare...te ne sarei grato!!!
Grazie Stek
-
Ciao a tutti,
Ci sarebbe qualcuno che mi potrebbe dare una mano a capire cosa c'è che non funziona in quello script...ve ne sarei grato....
Non so' più cosa fare....:x
Spero in una vostra risposta.
Stek