Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Quote Originariamente inviata da Punix Visualizza il messaggio
    nulla...anche avendo aggiunto ste due righe sono punto e a capo...vengo rispedito alla pagina html sia con attivato a 0 che 1
    Evidentemente le metti nel posto sbagliato

    $row = mysql_fetch_array($result);
    va prima di
    if ( $row['attivato'] == 1 )

    mentre
    $this->login_iduser = $row['id'];

    va prima di
    return TRUE;

  2. #12
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Warning: mysql_query(): Access denied for user 'u686410779'@'10.1.2.59' (using password: NO) in /home/u686410779/public_html/conferma_reg.php on line 23
    Ti sta dicendo che c'è un problema di connessione al DB.
    Nello specifico ti stai collegando senza password, il tuo DB prevede l'uso di password per la connessione? Se la risposta è sì, allora aggiungila nel codice che esegue la connessione.

  3. #13
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    158
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Evidentemente le metti nel posto sbagliato

    $row = mysql_fetch_array($result);
    va prima di
    if ( $row['attivato'] == 1 )

    mentre
    $this->login_iduser = $row['id'];

    va prima di
    return TRUE;
    Grande si , era proprio quello il problema , e questa è fatta pure ... devo sistemare adesso soltanto il file php di conferma registrazione che mi va a modificare lo 0 in attivato ad 1 quando confermo l-email... pensavo che richiamando lo script responsabile della connessione a MySQL
    require 'Users.class.php';

    avrebbe fatto tutto lui ma a quanto pare c'è un problema...io comunque nello script responsabile della connessione ,
    nel campo password ho dovuto inserire la password per connettermi al dat
    abase altrimenti non mi funzionava, quindi presumo di si, utilizzo una password per la connesione al db
    ho anche qualche dubbio nella correttezza del codice del file conferma_reg.php... sto seguendo guide e bozze sparse un po ovunque nel web, quindi potreb
    be esserci qualche errore...a lei come sembra il codice?

  4. #14
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    158
    ho cambiato codice, ho fatto in questo modo :

    conferma_reg.php (il file a cui verranno rimandati gli utenti che cliccano nel link di conferma e che si occuper� di accedere al database e cambiare il valore dell utente nella colonna attivato da 0 a 1 )


    codice:
     <?php
    session_start();
    
    // controllo sul parametro d'invio
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    { 
      // controllo sul formato dell'email
      if((!isset($_POST['email'])) || (!preg_match("/^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$/i", $_POST['email'])))
      {
        echo "Attenzione, formato email non valido.";
      }
      // controllo sul formato della password
      elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])))
      {
        echo "Attenzione, password non corretta.";
      }else{
        // se i parametri sono in formato corretto interroghiamo il database
        $email = $_POST['email'];
        $password = $_POST['password'];
    
        // includiamo il file di configurazione
        @include "Users.class.php";
    
        // controlliamo se i parametri sono presenti in tabella
        $ctrl_login = @mysql_query("SELECT id FROM users WHERE email='$email' AND password='$password'") or die (mysql_error());
        if(@mysql_num_rows($ctrl_login)==0)
        {
          // esito login negativo
          echo "Login incorretto.";
        }else{
          // esito login positivo quindi rendiamo l'utente attivo
          $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
          $query_attivo = @mysql_query("UPDATE users SET attivato='1' WHERE id=".$obj->id) or die (mysql_error());
    
          // creiamo un id di sessione corrispondente all'utente
          $_SESSION['id'] = $obj->id;
    
          // redirect alla pagina degli iscritti
          @header("Location: iscritti.php");
        }
      } 
    }else{
      // form per la conferma
      ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:<br>
    <input name="email" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
      <?
    }
    ?>
    cosa fa questo script..praticamente l utente clicca nel link di registrazione, viene riportato nella pagina conferma_reg.php dove si trova davanti 2 form , uno per l email e uno per la password...per attivare l account deve inserirli e poi fare click sul tasto conferma....fino a qui tutto bene... il problema sorge appunto appena clicco nel tasto conferma... se i dati sono giusti una volta cliccato su conferma lo script dovrebbe entrare sul db e modificare il valore nella colonna attivato da 0 a 1 e nel frattempo rimandare l utente ad un pagina che ti dice che la registrazione � andata a buon fine (io l ho chiamata iscritti.php)

    iscritti.php
    codice:
    <?php
    session_start();
    
    // controlliamo se � stata inizializzata la sessione
    if(isset($_SESSION['id']))
    {
      //controllo id con esito positivo
      echo "Benvenuto! Processo di attivazione concluso positivamente!";
      $link_address = 'http://sitoprova.96.lt/login.php';
      echo "<a href='".$link_address."'>Clicca qui per andare nella pagina di accesso!</a>";
    }else{
      //controllo sessione con esito negativo
      @header("Location: conferma_reg.php");
    }
    ?>
    il problema � che quando clicco sul tasto conferma, mi salta fuori il famoso access denied

    codice:
    Access denied for user 'u686410779'@'10.1.2.59' (using password: NO)
    lo script quindi non riesce ad accedere al db e moficiare il valore dell utente

    dov� che sbaglio...su conferma_reg.php ho messo un

    codice:
     @include "Users.class.php";
    nel file users.class.php la parte di codice che si occupa della connesione al db dovrebbe essere questa...

    codice:
     // error_reporting(E_ALL | E_DEPRECATED | E_STRICT);  
          
        Class Users{  
            /******************************** 
            SETTING 
            *********************************/  
            // le credenziali di accesso al database  
            private $host_db = 'XXXXXXXXXX';  
            private $user_db = 'XXXXXXXXXX';  
            private $pass_db = 'XXXXXXXXXX';  
            private $name_db = 'XXXXXXXXXX';  
              
           
            /*risorse di connessione*/  
            protected $conn;  
            protected $selezione_db; 
       
              
            // il costruttore attiva la connessione a mysql  
            public function __construct(){  
                $this->connessione();  
                }  
    
            /****************** 
            CONNESSIONE A MYSQL 
            ******************/  
            protected function connessione(){  
                $this->conn = mysql_connect($this->host_db, $this->user_db, $this->pass_db) or die(mysql_error());  
                $this->selezione_db = mysql_select_db($this->name_db, $this->conn) or die(mysql_error());  
                return TRUE;  
                }
    ai tempi ho dovuto inserire la password per accedere al db perch� lasciando il campo vuoto dava problemi con registrazione e login degli utenti.. help

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    158
    uuuuuuuh ho risolto il problema della connessione al db..... rimane SOLTANTO un piccolo problemino ....quando inserisco e-mail e password nei form di attivazione mi riporta al messaggio di errore "login incoretto"...allora ho pensato...non è perchè la password sul database è criptata in SHA1 ...allora ho inserito la password criptata e va tutto a buon fine!! come faccio a criptare la password in sha1 su conferma_reg.php?


    questo è il codice

    codice:
     <?php
    session_start();
    
    // controllo sul parametro d'invio
    if( isset($_POST['submit']) && (trim($_POST['submit']) == "Conferma") )
    { 
      // controllo sul formato dell'email
      if((!isset($_POST['email'])) || (!preg_match("/^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$/i", $_POST['email'])))
      {
        echo "Attenzione, formato email non valido.";
      }
      // controllo sul formato della password
      elseif((!isset($_POST['password'])) || ($_POST['password'] == "") || (!preg_match("/^[a-z0-9]+$/i", $_POST['password'])))
      {
        echo "Attenzione, password non corretta.";
      }else{
        // se i parametri sono in formato corretto interroghiamo il database
        $email = $_POST['email'];
        $password = $_POST['password'];
    
        // richiamo il file di configurazione
    require 'config.php';
    
    // richiamo lo script responsabile della connessione a MySQL
    require 'connect.php';
    
        // controlliamo se i parametri sono presenti in tabella
        $ctrl_login = @mysql_query("SELECT id FROM users WHERE email='$email' AND pass='$password'") or die (mysql_error());
        if(@mysql_num_rows($ctrl_login)==0)
        {
          // esito login negativo
          echo "Login incorretto.";
        }else{
          // esito login positivo quindi rendiamo l'utente attivo
          $obj = @mysql_fetch_object($ctrl_login) or die (mysql_error());
          $query_attivo = @mysql_query("UPDATE users SET attivato='1' WHERE id=".$obj->id) or die (mysql_error());
    
          // creiamo un id di sessione corrispondente all'utente
          $_SESSION['id'] = $obj->id;
    
          // redirect alla pagina degli iscritti
          @header("Location: iscritti.php");
        }
      } 
    }else{
      // form per la conferma
      ?>
    <h1>Modulo di conferma:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Email:<br>
    <input name="email" type="text" size="20"><br>
    Password:<br>
    <input name="password" type="password" size="20"><br>
    <input name="submit" type="submit" value="Conferma">
    </form>
      <?
    }
    ?>

  6. #16
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    158
    risolto anche questo potete chiudere.

    codice:
    $password = sha1 ($_POST['password']);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.