Utenti online

Stato
Chiusa ad ulteriori risposte.

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
funziona grazie, ultime cosa:
Come faccio a sapere chi è loggato perchè dovrei creare una chat tipo questa:
http://www.mrwebmaster.it/php/articoli/chat-stile-facebook-php-jquery_1223_2.html
ed ho bisogno di una colonna per vedere chi è loggato, vi riporto il codice modificato:


PHP:
<?php
# inclusione del file di configurazione
@include_once 'config.php';
# definizione della classe che conterrà i metodi per la gestione degli iscritti
class Iscrizioni {
  
  # definizione del costruttore
  public function __construct() 
  {
    # istanza della classe per la connessione al database
    $data = new DATA_Class();
  }

  # metodo per la registrazione 
  public function registra($nome_reale, $nome_utente, $password, $email) 
  {
    # cifratura della password
    $password = @sha1($password);
    # confronto degli input con i dati contenuti in tabella
	$query = @mysql_query("SELECT id_utente, livello FROM iscritti WHERE email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente' and password = '$password'") or die('Errore: ' . mysql_error());      # controllo sulla presenza di corrispondenze prodotte dal confronto
    $conta = @mysql_num_rows($query);
    # se il confronto non genera corrispondenze..
    if ($conta == 0) 
    {
      # ..si procede con la registrazione..
      $risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error());
      return $risultato;
    }else{
      # ..altrimenti l'esito della registrazione sarà negativo
      return FALSE;
    }
  }

  # metodo per l'autenticazione
  public function verifica_login($email_o_nome_utente, $password) 
  {
    # cifratura della password
    $password = @sha1($password);
    # confronto degli input con i dati contenuti in tabella
	$query = @mysql_query("SELECT id_utente, livello FROM iscritti WHERE email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente' and password = '$password'") or die('Errore: ' . mysql_error());      $conta = @mysql_num_rows($query);
    $row = @mysql_fetch_assoc($query);
    # se il confronto genera una corrispondenza..
    if ($conta == 1) 
    {
      # ..viene generata la sessione di login..
           
      $risultato = @mysql_fetch_object($query);
      $_SESSION['login'] = true;
      $_SESSION['id_utente'] = $risultato->id_utente;	
      $_SESSION['livello'] = $row['livello']; 
      return TRUE;
    }else{
      # ..altrimenti l'esito dell'autenticazione sarà negativo
      return FALSE;
    }
  }

  # metodo per la visualizzazione del nome dell'utente loggato
  public function mostra_utente($id_utente) 
  {
    # estrazione del nome reale sulla base dell'identificatore memorizzato in sessione
    $query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error());
    $risultato = @mysql_fetch_object($query);
    # stampa a video del nome reale dell'utente
    echo $risultato->nome_reale;
  }

  # metodo per il controllo sulla sessione
  public function verifica_sessione() 
  {
    # il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata
    if(isset($_SESSION['login']))
    {
      return $_SESSION['login'];
    }else{
      return FALSE;
    }
  }
  
  
  # metodo per il logout
  # la sessione viene distrutta a seguito di uno specifico input dell'utente
  public function esci() {
    $_SESSION['login'] = FALSE;
    @session_destroy();
    }
  }
?>
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
c'è un problema, quando provo ad inserire l'username giusto e la password sbagliata mi effettua lo stesso il login come mai, ho controllato il codice ma non trovo l'errore:

PHP:
<?php
# inclusione del file di configurazione
@include_once 'config.php';
# definizione della classe che conterrà i metodi per la gestione degli iscritti
class Iscrizioni {
  
  # definizione del costruttore
  public function __construct() 
  {
    # istanza della classe per la connessione al database
    $data = new DATA_Class();
  }

  # metodo per la registrazione 
  public function registra($nome_reale, $nome_utente, $password, $email) 
  {
    # cifratura della password
    $password = @sha1($password);
    # confronto degli input con i dati contenuti in tabella
    $query = @mysql_query("SELECT id_utente, livello FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error());
    # controllo sulla presenza di corrispondenze prodotte dal confronto
    $conta = @mysql_num_rows($query);
    # se il confronto non genera corrispondenze..
    if ($conta == 0) 
    {
      # ..si procede con la registrazione..
      $risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error());
      return $risultato;
    }else{
      # ..altrimenti l'esito della registrazione sarà negativo
      return FALSE;
    }
  }

  # metodo per l'autenticazione
  public function verifica_login($email_o_nome_utente, $password) 
  {
    # cifratura della password
    $password = @sha1($password);
    # confronto degli input con i dati contenuti in tabella
    $query = @mysql_query("SELECT id_utente, livello FROM iscritti WHERE password = '$password' and email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente'") or die('Errore: ' . mysql_error());
    # controllo sulla presenza di una corrispondenza prodotta dal confronto
    $conta = @mysql_num_rows($query);
    $row = @mysql_fetch_assoc($query);
    # se il confronto genera una corrispondenza..
    if ($conta == 1) 
    {
      # ..viene generata la sessione di login..
      $risultato = @mysql_fetch_object($query);
      $_SESSION['login'] = true;
      $_SESSION['id_utente'] = $risultato->id_utente;
      $_SESSION['livello'] = $row['livello'];
      return TRUE;
    }else{
      # ..altrimenti l'esito dell'autenticazione sarà negativo
      return FALSE;
    }
  }

  # metodo per la visualizzazione del nome dell'utente loggato
  public function mostra_utente($id_utente) 
  {
    # estrazione del nome reale sulla base dell'identificatore memorizzato in sessione
    $query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error());
    $risultato = @mysql_fetch_object($query);
    # stampa a video del nome reale dell'utente
    echo $risultato->nome_reale;
  }

  # metodo per il controllo sulla sessione
  public function verifica_sessione() 
  {
    # il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata
    if(isset($_SESSION['login']))
    {
      return $_SESSION['login'];
    }else{
      return FALSE;
    }
  }
  
  # metodo per il logout
  # la sessione viene distrutta a seguito di uno specifico input dell'utente
  public function esci() {
    $_SESSION['login'] = FALSE;
    @session_destroy();
    }
  }
?>
functionslogin.php
PHP:
<?php
# inizializzazione della sessione
@session_start();
# inclusione del file di funzione
@include_once 'functions.php';
# istanza della classe
$obj = new Iscrizioni();
# chiamata al metodo per l'autenticazione
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
  $login = $obj->verifica_login(htmlentities($_POST['email_o_nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES));
  # controllo sull'esito del metodo
  if ($login) {
    # redirect in caso di esito positivo
    @header("location:index.php");
    }else{
    # notifica in caso di esito negativo
    @header("location:errore.php");
  }
}

# controllo sul valore di input per il logout
if (isset($_GET['val']) && ($_GET['val'] == 'fine_sessione')) 
{
  # chiamata al metodo per il logout
  $obj->esci();
  # redirezione alla pagina di login
  @header("location:index.php");
 }

?>
login.php
PHP:
<?php
# inizializzazione della sessione
@session_start();
# inclusione del file di funzione
@include_once 'functions.php';
# istanza della classe
$obj = new Iscrizioni();
# chiamata al metodo per la verifica della sessione
if (!$obj->verifica_sessione())
{
 echo" <!-- Login Starts Here -->
				<div id=\"loginContainer\">
                <a href=\"#\" id=\"loginButton\"><span>Login</span></a>
                <div style=\"clear:both\"></div>
                <div id=\"loginBox\">               
                    <form method=\"POST\" action=\"functionslogin.php\" id=\"loginForm\" name=\"autenticazione\">
                        <fieldset id=\"body\">
                            <fieldset>
                                <label for=\"email\">Email/Username</label>
                                <input name=\"email_o_nome_utente\" type=\"text\" value=\"username\" size=\"25\" onclick=\"this.value=''\"  id=\"email\" />
                            </fieldset>
                            <fieldset>
                                <label for=\"password\">Password</label>
                                <input name=\"password\" type=\"password\" value=\"password\" size=\"25\" onclick=\"this.value=''\" id=\"password\" />
                            </fieldset>
                            <input type=\"submit\" id=\"login\" value=\"Sign in\" />
                            
                        </fieldset>
          </form>
                </div>
            </div>
            <!-- Login Ends Here -->";

      			}
else {
  echo"<td id=\"button_formazione\"><a href=\"inviaformazione.php\" title=\"Invia Formazione\">Formazione</a></td>";
  
	if (isset($_SESSION['livello']) && $_SESSION['livello'] == 'A') {  
  		echo"<td id=\"button_admin\"><a href=\"admin/index.php\" title=\"admin\">Admin</a></td>";
	}
  echo"<td id=\"button_logout\"><a href=\"functionslogin.php?val=fine_sessione\" title=\"Logout\">Logout</a></div></td>";
}
?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.041
146
63
PR
www.borgo-italia.it
ciao
se parli della select seguente prova a mettere una parentesi dopo l'and racchiudendo l'or


PHP:
<?php
//...........
@mysql_query("SELECT id_utente, livello FROM iscritti WHERE password = '$password' and (email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente')") or die('Errore: ' . mysql_error());
//..........
?>
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
Sistema di messaggi

Intanto Buona Pasqua poi ho un altro problemino: allora ho creato un sistema di messaggi privati, solo che quando arriva il messaggio invece dell'id mi dovrebbe comparire il nome, cioè dovrei trasformare l'id in nome del mittente vi posto il codice:

inviamessaggio.php (form)
PHP:
<?php include("header.php");
# inizializzazione della sessione
@session_start();
# inclusione del file di funzione
# istanza della classe
$obj = new Iscrizioni();
# identificativo univoco dell'utente
$id_utente = $_SESSION['id_utente'];
# chiamata al metodo per la verifica della sessione
if (!$obj->verifica_sessione())
{
  #redirect in caso di sessione non verificata
  @header("location:errore2.php");
}
?>
  <!-- Content -->
  <div id="content">
  	<div id="conteiner">
  	<div align="center">
  	<h2>Messaggi</h2>
  	<form name="messaggi" method="POST" action="invia.php"> 
  	<p><b>ID <?php $obj->mostra_utente($id_utente); ?>:</b> <br />
  	<input value="<?php echo $id_utente; ?>" class="tb11" name="mittente" readonly>
  	<p><b>ID Destinatario:</b> <br />
  	<input type="TEXT" class="tb11" name="destinatario"><br>
	<p><b>Messaggio:</b> <br />
	<textarea name="messaggio" class="tb10" rows="6" cols="20"></textarea><br>
	<input name="data" type="hidden" id="data" value="<?php print (date ("d/m/Y - H:i")); ?>" />
	<br>
	<button name="invia">Invia</button>
	</form>
	</div>
  	</div>
    <?php include("sidebar.php"); ?>
  </div>
  
<?php include("footer.php"); ?>
invia.php
PHP:
<?php
include ("header.php");?>
 <!-- Content -->
  <div id="content">
  	<div id="conteiner">
  	<div align="center">
  	<h2>Messaggi</h2>
<?php

include ("connessione.php");
$destinatario=$_POST['destinatario'];
$mittente=$_POST['mittente'];
$messaggio=$_POST['messaggio'];
$data=$_POST['data'];
$connessione = mysql_connect($hostname_connessione,$username_connessione,$password_connessione);
$database_select=mysql_select_db($database_connessione,$connessione);
//ci colleghiamo al database
$query="Insert into `messaggi` (`mittente`,`destinatario`,`messaggio`,`data`) VALUES ('$mittente','$destinatario','$messaggio','$data')";
$result=mysql_query($query,$connessione);
	if($result==1)
	echo"<b><font color=green>Messaggio inviato con successo</font></b>";
	else
	echo"<b><font color=red>Messaggio non inviato</font></b>";

?>
	</div>
  	</div>
    <?php include("sidebar.php"); ?></div><?php include("footer.php"); ?>
ricevuti.php
PHP:
<?php
include ("header.php");
$id_utente = $_SESSION['id_utente'];
?>
 <!-- Content -->
  <div id="content">
  	<div id="conteiner">
  	<div align="center">
  	<h2>Messaggi</h2>
  	
<?php
include ("connessione.php");
    $destinatario=$id_utente;
    $query = "SELECT mittente,messaggio,data FROM messaggi WHERE destinatario='$destinatario' ORDER BY data DESC";
    $result = mysql_query( $query ) or die ("query errata");
        echo "<table style=\"border-collapse: collapse;\" width=\"100%\" border=\"1\"><tr><td style=\"text-align: center; font-weight: bold\" width=\"20%\">Mittente</td><td width=\"60%\" style=\"text-align: center; font-weight: bold\">Messaggio</td><td width=\"20%\" style=\"text-align: center; font-weight: bold\">Data</td></tr>";
        while ($row = mysql_fetch_row($result))
        {
            echo "<tr><td width=\"20%\" align=\"center\">".$row[0]."</td><td width=\"60%\">".$row[1]."</td><td width=\"20%\" align=\"center\" style=\"font-size: 13px;\">".$row[2]."</td></tr>";
        }
        echo "</table>";
  
    ?>
   	</div>
  	</div>
    <?php include("sidebar.php"); ?></div><?php include("footer.php"); ?>
 
Stato
Chiusa ad ulteriori risposte.