Php sezioni con password

Per la questione delle password non mi serve un generatore di password, a me interessa fare una pagina php con gli username e password che decidero io quali saranno, poi non ci sarannò ne admin ne moderatori ma saranno tutti utenti normali, comunque volevo porvi questa idea se è fattibile: Allora creo una pagina php(esempio: nickname e password check) con nickname e password, quando una persona fa a fare il login, il login consulterà quella pagina(nickname e password check) dove saranno salvate nickname e password, e se quei dati sono giusti allora l'utente potrà entrare nel database, invece se è errato non potrà logare e resterà su quella pagina di login. Che dite è fattibile questa cosa?


p.s= date una occhiata a questo codice:

PHP:
<?php
$USERS["username1"] = "password1";
$USERS["username2"] = "password2";
$USERS["username3"] = "password3";
  
function check_logged(){
     global $_SESSION, $USERS;
     if (!array_key_exists($_SESSION["logged"],$USERS)) {
          header("Location: login.php");
     };
};
?>
 
Ultima modifica di un moderatore:
ciao
dipende da quanti utenti pensi che avrai, ad ogni utente nuovo devi correggere la pagina e ricaricarla, visto che hai ub db mi sembra una cosa inutile soprattutto se gli utenti diventano molti.
poi la pass viene solo "suggerita" puoi cambiarla come ti pare è solo un metodo per fare prima
 
non penso ne avro tanti, poi per correggere la pagina intendi aggiungere un username e password in piu non c'e problema, neanche per ricaricarla.
 
Codice PHP:
PHP:
<?php
session_start();
if(!isset($_SESSION['utente'])){//la sessione NON esiste
    //accesso negato
    if(isset($_SESSION){session_destroy();}
        header('Location: index.php');//o dove vuoi rimandare
        exit();
}
?>
<!-- eccetera cioè tutto quello che ti serve nella pagina parti in html e/o in php da quello che ho capito qualcosa che ha da fare col db -->


Con questo codice quando loggo mi riporta su l'index non sul database come aggiusto?
 
Ultima modifica di un moderatore:
ciao
Con questo codice quando loggo mi riporta su l'index non sul database come aggiusto?
guarda che quella parte serve proprio a reindirizzare chi non è loggato e sta tentando di entrare fraudolentemente.
se qualcuno riesce a sapere come si chiama la pagina può scrivere
http://www.tuo_sito.it/pagina_riservata.php
dato che non si è loggato la sessione NON esite e quindi viene reindirizzato alla index
se nonostante la loggatura non riesci ad accedere, l'errore e nella parete di log in quanto non si crea la sessione
 
ciao
se non vuoi usare il db ma il sistema dell'array potresti fare così
PHP:
<?php
session_start();
if(isset($_POST['log']){
    $users["username1"] = "password1";//scrivi i nomi delle variabili in minuscolo (il tutto maiuscolo è convenzione usrali per le costanti)
	$users["username2"] = "password2";
	$users["username3"] = "password3";
	//ecc.............
	/*
		l'array con user e pass potrebbe essere messo in un file a parte (es. utenti.php) e richiamarlo con
		require_once "utenti.php";
	*/
	$username=htmlspecialchars($_POST['user']);
    $password=htmlspecialchars($_POST['pass']);
	foreach($users as $us => $pa){
		if($us == $username && $pa == $password){//trovata corrispondenza
			$_SESSION['utente']=$username;
			header('Location: pagina_riservata.php');
        	exit();
		}
	} 
	if(isset($_SESSION){session_destroy();}
	header('Location: index.php');//o dove vuoi rimandare
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<!-- eccetera eccetera-->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<!-- nota nel form scritto in precedenza mi era rimasto action="aa" è errato, vedi sopra -->
  <table width="80%"  border="0" cellspacing="0" cellpadding="2">
    <tr>
      <td width="15%">username</td>
      <td width="38%"><input name="user" type="text" id="user"></td>
      <td width="47%">&nbsp;</td>
    </tr>
    <tr>
      <td>password</td>
      <td><input name="pass" type="password" id="pass"></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input name="log" type="submit" id="log" value="LOG"></td>
    </tr>
  </table>
</form>
<!-- eccetera eccetera-->
</body>
</html>

p.s.
quando scrivi del codice racchiudilo tra gli appositi tag, seconda riga formattazione del post, ultime tre iconcine nell'ordine CODE, HTML, PHP
 
grazie, funziona ma non o capito bene cosa vuoi dire in questa parte: l'array con user e pass potrebbe essere messo in un file a parte (es. utenti.php) e richiamarlo con
require_once "utenti.php";
 
Ultima modifica:
ciao
in questo caso fai un file che contenga solo l'array e niente altro (ne doctype, ne html...)
lo salvi chiamandolo es. utenti.php
PHP:
<?php
$users["username1"] = "password1";
$users["username2"] = "password2";
$users["username3"] = "password3";
//ecc............. 
?>
nel file dove c'è il form al posto di scrivere l'array metti semplicemente

PHP:
require_once "utenti.php";

quando devi andare a modificare/eliminare/aggiungere richiami e ricarichi solo utenti.php senza toccare altro
eviti (es se ti servisse anche da altre parti) di fare ripetizioni (sorgenti di errori).
in un certo senso puoi considerare l'istruzione require come un copy/paste, cioè copia cello che c'è scritto nel file richiamato e lo incolla nel file chiamante.
 
Form di login:
PHP:
<html>  
<link rel="stylesheet" type="text/css" href="class.css" />
<head>
<title>Login Page</title>
</head>
<br>
<center><img src="123.png" WIDTH=1200 HEIGHT=555></center>
<form method="post" action="Database.php" name="envoiDemande"

dove dovrei mettere
PHP:
 require_once "utenti.php";

Se lo metto sopra o sotto la prima riga cioè <html> sul form quando lo vado a visualizzare mi fa vedere il codice in alto a sinistra quindi non penso che va bene
 
Ultima modifica:
perfetto sapresti dirmi come centrare i textbox?

Cattura.PNG
 

Discussioni simili