aiuti su login/logout?

  • Creatore Discussione Creatore Discussione caste90
  • Data di inizio Data di inizio

caste90

Nuovo Utente
16 Ott 2013
2
0
0
Ciao,ho fatto in locale questo sistema di login e logout tramite l'ip degli utenti ($IP = $_SERVER[ 'REMOTE_ADDR' ];) e va benissimo ma volevo sapere la differenza tra questo metodo e il sistema con i cookie di cui si trovano tante guide in internet: pro e contro di tutti e due i metodi e quindi quale metodo è migliore e la differenza tra un metodo e l'altro per la pubblicazione online e di conseguenza quale è più idoneo per la pubblicazione online.
Potete anche dirmi come fare il reindirizzamento automatico quando un utente si logga?
Grazie :)
REGISTRAZIONEUTENTE.PHP
PHP:
<html>
<head>
<title>registrazione</title>
</head>
<body>
<?php
$db = "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\sitofilmografia\DATABA SE\italian_movie_review.mdb";
$sc = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db;";

// creo l'oggetto COM contenente l'oggetto Connection per interfacciarmi al data base Access

$cn=new COM("ADODB.Connection");

// apro la connessione

$cn->open($sc); //richiamo il metodo open sull'oggetto $cn

//definisco la query
$datanascita= $_POST['giorno']."/".($_POST['mese']+1)."/".$_POST['anno'];
print "<br>La data trasmessa->".$datanascita;

$query=" INSERT INTO Utente (Mail,Pass,Nome,Cognome,DataNascita,Amministratore ) VALUES ('".$_POST['mail']."' , '".$_POST['pass']."', '".$_POST['nome']."', '".$_POST['cognome']."', '$datanascita','0' )";

// Effettuo l'inserimento dei dati

$cn->Execute($query); //richiamo il metodo execute sull'oggetto $cn

//Lancio un messaggio di conferma

print " <p> Registrazione utente effettuata con successo</p> ";
print " <br> <a href='index_movie.php'> HOME </a>";

//Chiuso la connessione

$cn->close();
?>

</body>
</html>
LOGIN.PHP
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="css_movie.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> login.php </title>
</head>

<body>
<body bgcolor="#080023">
<?PHP
$db = "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\sitofilmografia\DATABA SE\italian_movie_review.mdb";
$sc = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db;";

$cn = new COM("ADODB.Connection");
$cn->open($sc);

$recset = new COM("ADODB.Recordset");
$mail=$_POST['mail_login'];
$pass=$_POST['pass_login'];
$query= "select * from utente where mail='".$mail."' AND pass='".$pass."'";
$recset->open($query,$sc);
if ($recset->EOF==FALSE)
{
print "<p> Login riuscito </p>";
if ($recset->fields['amministratore']->value==-1){
print"<a href='amministratore/index.html'> Premi qui per andare alla pagina di amministrazione </a> <br>";
print"<a href='index_movie.php'> HOME </a>";
}
else
{
$IP = $_SERVER[ 'REMOTE_ADDR' ];
$query2 = "INSERT INTO Sessione (mail,ip) VALUES ('".$recset->fields[mail]."','".$IP."')";
$cn->Execute($query2);
print"<p> <a href='index_movie.php'> <u> HOME </u> </p>";
}
}
else
{
print "<p> Login non riuscito!</p> <br>";
print "<p> E-mail e/o password errati </p><br>";
print" <p> <a href='index_movie.php'> <u> HOME </u> </p>";
}

?>
</body>
</html>


LOGOUT.PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="css_movie.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> logout.php </title>
</head>

<body>

<?PHP
$db = "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\sitofilmografia\DATABA SE\italian_movie_review.mdb";
$sc = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db;";

$cn = new COM("ADODB.Connection");
$cn->open($sc);

$ip=$_POST['ip'];
$query= "DELETE from sessione where ip='".$ip."'";
$cn->Execute($query);
print "Logout riuscito";
print"<p> <a href='index_movie.php'> <u> HOME </u> </p>";
$cn->close();

?>
</body>
</html>
 
Ultima modifica di un moderatore:
ciao, scusa il mio breve intervento, ma hai considerato che moltissimi utenti on line hanno un indirizzo ip dinamico quindi lo stesso ip in questo momento è mio e domani lo è di un'altra persona ?
ciao ancora e scusa se sono fuori tema perchè magari non ho capito .....
 
più che altro, come dice Marino, anche il fatto che non puoi trasportarti i dati senza sessioni... Trasporti solamente l'IP, quindi o salvi tramite il get dell'ip i vari dati, oppure ogni pagina nuova li perdi... A meno che non usi solamente l'IP come trasportatore...
Una cosa che mi viene all'occhio, perchè hai deciso di utilizzare dei DB in Access , piuttosto che mysql,postgree,firebird etc?
Le query in sql sono molto più rapide in esecuzione di quelle access... Senza contare che sei vincolato ad utilizzare MS ACCESS e soprattutto non hai strumenti tipo PHPMYADMIN che ti aiutano...
 
questo sito era un vecchio progetto di maturità che ho ripreso adesso dopo un bel po' di tempo e a scuola avendoci insegnato l'interazione con access il progetto l'ho fatto di conseguenza.. riguardo al sistema login/logout non ricordo come ma l'avevo trovato (un po' a caso) e non ci avevo proprio pensato alla storia dell'ip dinamico :) adesso pian piano lo rifaccio con mysql e al momento giusto ci sarà la pubblicazione
 

Discussioni simili