sistema di autenticazione

egalizia

Nuovo Utente
29 Ago 2015
14
0
0
Salve
sto cercando di riuscire a mettere in piedi un sistema di autenticazione e registrazione utenti per la gestione di alcune pagine web che devo utilizzare in un sito in locale ho trovato alcuni script pronti ma mi trovo a dover lottare con qualche problema di compatibilità mi spiego meglio:

la parte web php mysql l'ho gestita su una machina win con wamp server configurazione standard.
Server Configuration

Apache Version :

2.4.9 - Documentation

PHP Version :

5.5.12 - Documentation

Server Software:

Apache/2.4.9 (Win64) PHP/5.5.12

il problema fondamentale è che tutti gli script che ho trovato in rete utilizzano mysql_ .... come comando e quando vado sulla pagina mi trovo sempre errori di questo tipo

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\utenti_php\permessi\include\config.php on line 67

se cambio mysql in mysqli cambiano i parametri di gestione e gli errori si moltiplicano :incazz2:

che suggerimenti avete per non ricreare tutto ?
 
ciao
guarda che il passaggio da mysql a mysqli comporta istruzioni simili ma non perfettamente uguali
es:
mysql
PHP:
<?php
//...
$conn = mysql_connect($host,$username,$password);
$sel = mysql_select_db($db);
$ris = mysql_query ( "SELECT * FROM pinco" );
//....
?>
mysqli (in procedurale)
PHP:
<?php
//....
$link = mysqli_connect($host,$username,$password,$db);
$ris = mysqli_query ( $link , "SELECT * FROM pinco" );
//.......
?>
 
ok grazie vedo se riesco a riadattare i conandi dello script per farlo funzionare ...
conosci qualche pacchetto che mi possa garantire autenticazione con livelli di sicurezza a seconada delle pagine?
io ne ho trovati alcuni ma hanno quasi tutti la vecchia sintassi mysql no mysqli devo verificare qualche script che usa le funzioni sperando vada
 
ciao
non conosco pacchetti preconfezionati sempre fatto tutto manina-manina, posso solo schematizzarti come una volta ho fatto (se non ricordo male)

pagina da cui l'utente può chiamare il form di log
PHP:
<?php
session_start();
$_SESSION['code']=rand(1000,9999);//genero un numero casuale ogni accesso alla pagina
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="log.php?code=<?php echo md5($_SESSION['code']);?>">loggati</a>
</body>
</html>

pagina per il log (in puro php senza niente di html)
PHP:
<?php
ob_start();
session_start();
if(!isset($_SESSION['code']) || md5($_SESSION['code']) != $_GET['code']){
	//la richiesta della pagina non provine dalla pagina chiamante
	//se per caso esiste elimini la $_SESSION['code']
	if(isset($_SESSION['code']){unset($_SESSION['code']);}
	//e rimandi ag una pacina che vuoi
	header("location:dove_vuoi_tu.php");
	exit();
}else{
	//l'utente proviene dalla pagina giusta qundi il form di log
?>
	<form action="" method="post">
		username<input name="user" type="text"><br />
		password<input name="pass" type="password"><br />
		<input type="submit" name="log" value="log">
	</form>
<?php
	if(isset($_POST['log']){
		$user=addslashes(trim($_POST['user']));
		$pass=trim($_POST['pass']);//la password dovrebbe essere codificata, come minimo con sha1
		if($user!="" || $pass!=""){
			//l'utente ha inserito qualcosa e quindi verifichi se iscritto
			//i dati per la connessione
			$link = mysqli_connect($host,$username,$password,$db);
			$ris = mysqli_query ( $link , "SELECT * FROM utenti WHERE username='$user' AND password='".sha1($pass)."'" );
			if(mysqli_num_rows($ris)==1){
				//l'utente esiste ed è registrato
				$riga = mysqli_fetch_array($result, MYSQLI_ASSOC);
				//passi in sessione user e pass
				$_SESSION['username']=$riga['username'];
				$_SESSION['password']=$riga['password'];
				header("location:pagina_riservata.php");
				exit();
			}
		}
		//l'utente ha sbagliato o non esiste, distuggi le eventuali sessioni
		if(isset($_SESSION){$_SESSION=array();}
		//e rimandi dove vuoi
		header("location:dove_vuoi_tu.php");
		exit();
	}
}
ob_end_flush();
?>

pagina riservata
PHP:
<?php
session_start();
if(!isset($_SESSION['username']) || !isset($_SESSION['password']){
	//tentativo di accesso non consentito, es. tramite link diretto alla pagina
	if(isset($_SESSION){$_SESSION=array();}
		//e rimandi dove vuoi
		header("location:dove_vuoi_tu.php");
		exit();
	}else{
?>
		<!DOCTYPE html>
		<html>
		<head>
		</head>
		<body>
<?php
		echo "ciao ".$_SESSION['username']."sei nella pagina riservata";
		//eccetera... tutto quello che ti serve php e/o html
?>
		</body>
		</html>
<?php
	}
}
?>

p.s.
per mysqli ho usato il procedurale, odio la programmazione ad oggetti
 
grazie prenderò spunto e provero qualche cosa del genere

Io sto appena iniziando a capire qualche cosa di php ora :D
 

Discussioni simili