login semplice con array

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, ho questi due codici.. ma non so perché non funziona. Su internet non riesco ad trovare nulla di pronto quindi mi sto scrivendo una picolissima chat solo per un'esperimento.

qui ci sono le password messe cosi:
PHP:
<?php
$USERS["username1"] = "password1";
$USERS["username2"] = "password2";
$USERS["username3"] = "password3";
?>

ed questo e i login:
PHP:
<?php

require_once(dirname(__FILE__) . '/inc.php'); 

if(isset($_POST["submit"]))
{
	$input_password = protect($_POST["password"]);
	$input_username = protect($_POST["username"]);
	
	if ($USERS[$input_username]==$USERS[$input_password]) { 
		  $_SESSION["logged"] = true;
          $_SESSION["username"]=$input_username;
		  header ("Location: chat.php");
     } else {
          $error = 'Incorrect username/password. Please, try again.';
		}
}

?>
<?php
 if(isset($error)){ echo $error;}
if(isset($msg)){ echo $msg;} else {
?>	
		<form class="form" action="login.php" method="post">
				<p>User</p>
				<input class="input" type="text" name="username" id="username" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" />
				<p>Password</p>
				<input class="input" type="password" name="password" id="password" />
			<input type="submit" name="Login" value="Login"   alt="submit" title="submit" />
			<br class="clear" />
		</form>
<?php
}
?>

la session start e messa in un file chiamato config.php che non ve lo mostro perché non serve farvelo vedere..perché tanto c'è solo
session_start();.

mi dite come posso fare?

grazie mille e buona domenica.

saluti,
luigi.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
scusa .. ma sono scemo io.. non avevo cambiato il nome della form..
ora mi da questo errore:
Notice: Undefined index: password1 in D:\xampp\htdocs\chat\login.php on line 10
Incorrect username/password. Please, try again.

che vuole dire?
la linea dell'errore e questa:

PHP:
if ($USERS[$input_username]==$USERS[$input_password]) {

codice corretto:
PHP:
<?php

	require_once(dirname(__FILE__) . '/inc.php'); 

	if(isset($_POST["Login"]))
	{
		$input_password = protect($_POST["password"]);
		$input_username = protect($_POST["username"]);
		
		if ($USERS[$input_username]==$USERS[$input_password]) { 
			  $_SESSION["logged"] = true;
			  $_SESSION["username"]=$input_username;
			  header ("Location: chat.php");
		 } else {
			  $error = 'Incorrect username/password. Please, try again.';
			}
	}

	?>
	<?php
	 if(isset($error)){ echo $error;}
	if(isset($msg)){ echo $msg;} else {
	?>    
			<form class="form" action="login.php" method="post">
					<p>User</p>
					<input class="input" type="text" name="username" id="username" value="<?php if(isset($_POST['username'])){echo $_POST['username'];}?>" />
					<p>Password</p>
					<input class="input" type="password" name="password" id="password" />
				<input type="submit" name="Login" value="Login"   alt="submit" title="submit" />
				<br class="clear" />
			</form>
	<?php
	}
?>

grazie mille.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao, per l'array non lo so..

la funzione è questa:
PHP:
	function protect($value) {
    $value = (get_magic_quotes_gpc()) ? stripslashes($value) : $value;
    return $value;
}

ma gli utenti lo postati nel primo post.
come posso fare?
ho provato anche senza protezione degli apici che non so se serve in una chat senza database ..

serve o non serve la funzione protect?
grazie e scusa. ma ho un sito che non ha il database c'è solo php5.
ti ringrazio molto.

saluti e buona serata.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non utilizzando il db non ti serve, a parte che protect è una parola chiave di php (mi sembra che si uso per le classi) e NON è mai bene dare nomi a varibili e/o funzioni che siano parole chiave di php.
comunque ora ci do un occhio poi ti so dire
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ok, ti ringrazio non lo sapevo che èra una parola risevata.

ora il codice è questo e funzionante..
vorrei sapere se si può che ogni utente a un sua immagine diversa sempre avendo questa struttura.
ecco il codice:
PHP:
if(isset($_POST["Login"]))
	{
	if ($USERS[$_POST["username"]]==$_POST["password"]) { 
			  $_SESSION["logged"] = true;
			  $_SESSION["username"]=$_POST["username"];
			
			  $msg ="Aspetta il redirezzamento";
			  redirect("chat.php", 5);	// mia funzione per aspettare secondi + redirect e levando il problema dell'html in alto quando ci sarà.
			  } else {
			  $error = 'Incorrect username/password. Please, try again.';
			}
	}

	?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
potresti provre in questo modo
PHP:
<?php
session_start();
$USERS["username1"]['pass'] = "password1";
$USERS["username1"]['img'] = "immagine1";

if (isset($_POST["Login"])) {
    if ($USERS[$_POST["username"]]['pass'] == $_POST["password"]) {
        $_SESSION["logged"] = true;
        $_SESSION["username"] = $_POST["username"];
        $_SESSION["immagine"] = $USERS[$_POST["username"]]['img'];

        $msg = "Aspetta il redirezzamento";
        redirect("chat.php", 5);    // mia funzione per aspettare secondi + redirect e levando il problema dell'html in alto quando ci sarà.
    } else {
        $error = 'Incorrect username/password. Please, try again.';
    }
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si è possibile, visto che non usi il db, basta creare un altro array simile a quello che hai fatto
(per le variabili usa le minuscole generalmente le maiuscole si usano per le costanti)
PHP:
<?php
$users["username1"] = "password1";
$users["username2"] = "password2";
$users["username3"] = "password3"; 
$img["username1"] = "pinco.jpg";//eventualmente anche il percorso
$img["username2"] = "pallo.jpg";
$img["username3"] = "sempronio.jpg";
?>
poi nella parte di login puoi mettere
PHP:
<?php
//.....
if ($USERS[$input_username]==$USERS[$input_password]) { 
          $_SESSION["logged"] = $img[$input_username];//non ti serve il true, nella pag riservata basta verificare che esistano
          $_SESSION["username"]=$input_username;
          header ("Location: chat.php");
		  exit();//sempre meglio mettere l'exit()
     } else {
          $error = 'Incorrect username/password. Please, try again.';
        } 
//....
?>
nella pagina riservata
PHP:
<?php
session_start();
//la parte dell'if serve per evitare accessi non autorizzati es www.tuo_sito.it/chat.php
if(!isset($_SESSION['logged']) || isset($_SESSION['username'])){//se non esistono
	header ("Location: index.php");//o dove vuoi rimendare
	exit();
}
// e qui fai quello che vuoi fare
echo "<img src=\"".$_SESSION['logged']."\"/> ciao ".$_SESSION['username']." chatta pure";
//ecc......
?>

inoltre piccolo accorgimento nel form
PHP:
<form class="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
così se cambi il nome della pagina non devi cambiarlo nell'action

edit
non mi ero accorto di criric
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
risolto e corretto ecco il codice a voi .. ho usato quello di criric:

PHP:
if(isset($_POST["Login"]))
	{
	if(empty($_POST["username"]))
	{
	
		$error = "Non hai inserito l'username";
			
	}elseif(empty($_POST["password"]))
	{
		$error = "Non hai inserita la password";
	}else
	{
		if ($USERS[$_POST["username"]]['pass'] == $_POST["password"]) {
			$_SESSION["logged"] = true;
			$_SESSION["username"] = $_POST["username"];
			$_SESSION["immagine"] = $USERS[$_POST["username"]]['img'];
			$msg ="Aspetta il redirezzamento";
			redirect("chat.php", 5);	
		 } else {
			  $error = 'Incorrect username/password. Please, try again.';
		}
	  }
	}
	?>

ora mi manca solo la grafica e l'invio dei messaggi e poi sono a posto.

vi ringrazio molto.
saluti e a domani.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S problema con ajax semplice login script Javascript 8
catellostefano semplice sistema di Login PHP 0
N Vba Maschera di login MS Access 1
Shyson Codice wp-login non funziona PHP 2
L Problemi con il login PHP 2
L login e session PHP 4
A Problema login con Safari PHP 14
R Reinderizzamento dopo login PHP 2
C finestra popup dopo login PHP 2
L login con solo un codice PHP 3
Web93 PROBLEMA SITO WEB WORDPRESS - LOGIN DASHBOARD Programmazione 3
M Login Autenticazione Sviluppo app per Android 0
M Effettuare Login con dati Json Sviluppo app per Android 0
S [PHP] Stampa a video Nome e Cognome in seguito a login PHP 1
M [PHP] header (location..) non funzionante dopo login PHP 3
L [PHP] Visualizzare utente dopo login PHP 0
L [PHP] login con password_verify PHP 3
A HTML issues with creating a register and login page + general questions HTML e CSS 1
L [PHP] login con varie entrate PHP 3
L [PHP] login con password_verify - password_hash PHP 5
M [PHP] Problemi con il riconoscimento login. PHP 21
F [PHP] Login senza database PHP 3
F [php] sicurezza password form login PHP 2
M [PHP] Metodo migliore per fare login a un DB Mysql PHP 1
F Problema con pagine login in PHP PHP 2
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
M [PHP] Problemi con login facebook PHP 0
Shyson [WordPress] Nascondere link del Login WordPress 2
W [PHP] Login sicuro al web Service SOAP PHP 20
P [PHP] Limitare login ad un solo utente per volta PHP 12
L [PHP] login e protezione pagine con session PHP 3
L [PHP] login con la classe medoo.in PHP 5
I [PHP] [Javascript] login da smartphone a web PHP 3
P [PHP] Reindirizzamento post Login PHP 3
I [PHP] login con sessione singola PHP 1
AkenStyle Login per gioco online Database 6
bubino8 [WordPress] [PHP] Login diretto da bottone WordPress 4
D [PHP] Login Multiutente con pagina privata PHP 5
D problemi login php 5.6 mysql PHP 1
I [PHP] Login Facebook SDK returned an error: No URL set! PHP 0
G PHP Login PHP 1
Laskot Login php e redirect PHP 1
K [PHP] Unica sessione login forum/sito PHP 1
bubino8 [WordPress] Login a WP da bottone WordPress 0
bubino8 [PHP] Login Automatico PHP 1
R Filtro login tramite mac-address su apache2 SSL Apache 1
M [PHP] Sessione Login PHP 15
C [PHP] Aprire la pagina dopo aver fatto il login PHP 1
fabry1986 [PHP] login PHP 2
Punix pagine login-logout php principiante PHP 4

Discussioni simili