phpDocumentor VFront
[ class tree: VFront ] [ index: VFront ] [ all elements ]

Source for file password_recover.php

Documentation is available at password_recover.php

  1. <?php
  2. /**
  3. * File per la gestione della password smarrita.
  4. * Questa pagina viene utilizzata per gestire la password, generandone una nuova casuale.
  5. @package VFront
  6. @author Mario Marcello Verona <marcelloverona@gmail.com>
  7. @copyright 2007 Mario Marcello Verona
  8. @version 0.90
  9. @license http://www.gnu.org/licenses/gpl.html GNU Public License
  10. */
  11.  
  12.  
  13. require_once("./inc/conn.php");
  14. require_once("./inc/layouts.php");
  15. require_once("./inc/func.comuni.php");
  16.  
  17. /**
  18.  * @desc Funzione di generazione di password (pseudo)casuale
  19.  * @return string Nuova password per gli utenti
  20.  */
  21. function genera_password(){
  22.     
  23.     $consonanti=array("b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","y","x","z");
  24.     
  25.     $vocali=array("a","e","i","o","u");
  26.     
  27.     $PWD='';
  28.     
  29.     for($i=0;$i<4;$i++){
  30.         $c=rand(0,(count($consonanti)-1));
  31.         
  32.         $v=rand(0,4);
  33.         
  34.         $PWD.=$consonanti[$c];
  35.         $PWD.=$vocali[$v];
  36.         
  37.         if(strlen($PWD)==4$PWD.="-";
  38.     }
  39.     
  40.     return $PWD;
  41. }
  42.  
  43.  
  44.  
  45. if(isset($_POST['email'])){
  46.     
  47.     $_dati=pulisci_dom($_POST);
  48.     
  49.     // verifica che la email esista
  50.     $q=vmsql_query("SELECT * from {$db1['frontend']}.utente WHERE email='".$_dati['email']."'",$link);
  51.     
  52.     
  53.     // se c'è l'email ed il codice di sicurezza è giusto...
  54.     if(vmsql_num_rows($q)==&& ($_SESSION['image_random_value']==md5($_dati['secure_txt']))){
  55.         
  56.         
  57.         unset($_SESSION['image_random_value']);
  58.         
  59.         // vai avanti
  60.         
  61.         $RS=vmsql_fetch_assoc($q);
  62.         
  63.         $new_passgenera_password();
  64.         
  65.         $q_up=vmsql_query("UPDATE {$db1['frontend']}.utente SET passwd='".md5($new_pass)."' WHERE id_utente=".intval($RS['id_utente']),$link);
  66.         
  67.         if(vmsql_affected_rows($link,$q_up)==1){
  68.             header("Location: ".$_SERVER['PHP_SELF']."?feed=ok");
  69.             
  70.             
  71.             // -------------------------------------------------------------
  72.             // manda l'email -----------------------------------------------
  73.             
  74.             include_once("./plugins/phpmailer/class.phpmailer.php");
  75.             
  76.             $mail new PHPMailer();
  77.  
  78.             $mail->Subject="[VFront] Modifica Password";
  79.             $mail->Body="Tu o qualcuno per te ha richiesto il ".dataoraITA(date("Y-m-d H:i"))." la modifica della tua password.\nLa tua nuova password è:\n$new_pass\n";
  80.             $mail->From=$conf_mail['MAIL_SENDER'];
  81.             $mail->FromName="VFront";
  82.             
  83.  
  84.             // se è configurato come invio da SMTP esplicitato
  85.             if($conf_mail['SMTP_AUTH']==true){
  86.                 
  87.                 $mail->Mailer='smtp';
  88.         
  89.                 $mail->Host=$conf_mail['SMTP'];
  90.         
  91.                 $mail->SMTPAuth=$conf_mail['SMTP_AUTH'];
  92.         
  93.                 // Se è impostata l'autenticazione SMTP
  94.                 $mail->Username=$conf_mail['SMTP_AUTH_USER'];
  95.                 $mail->Password=$conf_mail['SMTP_AUTH_PASSW'];
  96.         
  97.             }
  98.             
  99.             $mail->AddAddress($_dati['email']);
  100.             $mail->Send();
  101.             
  102.             // -------------------------------------------------------------
  103.             // -------------------------------------------------------------
  104.             
  105.             
  106.         }
  107.         else{
  108.             header("Location: ".$_SERVER['PHP_SELF']."?feed=ko");
  109.         }
  110.     }
  111.     
  112.     else{
  113.         
  114.             header("Location: ".$_SERVER['PHP_SELF']."?feed=n");        
  115.     }
  116.     
  117.     exit;
  118. }
  119.  
  120.  
  121. echo openLayout1("Recupero password");
  122.  
  123.  
  124. echo "<h1>Recupero password smarrita</h1>\n";
  125.  
  126. if(isset($_GET['feed'])){
  127.     
  128.     if($_GET['feed']=='ok'){
  129.         
  130.         echo "<h2 class=\"verde\">Password modificata correttamente!</h2>\n";
  131.         echo "<p>Ora puoi controllare la posta per accedere con la tua nuova password</p>\n";
  132.         echo "<p><a href=\"index.php\">Torna al login</p>\n";
  133.     }
  134.     elseif($_GET['feed']=='n'){
  135.         
  136.         echo "<h2 class=\"var\">Errore nella modifica della password!</h2>\n";
  137.         echo "<p><a href=\"index.php\">Torna al login</p>\n";
  138.     }
  139.     else{
  140.         
  141.         echo "<h2 class=\"var\">Errore nella modifica della password!</h2>\n";
  142.         echo "<p><a href=\"index.php\">Torna al login</p>\n";
  143.     }
  144.     
  145.     
  146. }
  147. else{
  148.  
  149.     echo "<p>Hai perso la password?<br /> Inserisci la tua email ed una nuova password sar&agrave; spedita al tuo indirizzo</p>\n";
  150.     
  151.     echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" >
  152.     
  153.         <label for=\"email\">Email:</label><br />
  154.         <input type=\"text\" name=\"email\" id=\"email\" size=\"45\" maxlength=\"200\" value=\"\" />
  155.         
  156.         <br />
  157.         <br />
  158.         <label for=\"secure_txt\">Codice di sicurezza:</label><br />
  159.         <img src=\"img_rand.php\" alt=\"codice di sicurezza\" /> 
  160.         <input type=\"text\" name=\"secure_txt\" id=\"secure_txt\" size=\"10\" maxlength=\"10\" value=\"\" />
  161.         <br />
  162.         <br />
  163.         <input type=\"submit\" name=\"invia\" id=\"invia\" value=\"Inviami una nuova password\" />
  164.         </form>\n";
  165.  
  166. }
  167.  
  168.  
  169. echo closeLayout1();
  170.  
  171. ?>

Documentation generated on Sat, 22 Sep 2007 11:51:04 +0200 by phpDocumentor 1.4.0a2