Salve ho scaricato questo pacchetto da qui: http://forum.it.altervista.org/how/1...strazione.html
Ho configurato config con i miei dati db, quando registro un account un invia il codice di conferma all'email, da questo errore: Problemi durante invio email
Ecco i codici:
funzioni.php
index.phpcodice:<?php /* © by alemoppo (Moroni Alessandro) */ $ACCOUNT_DB = '#[=<account>]'; #[=<account>] $INDIRIZZO_REDIRECT = '#[=<account>.altervista.org]'; #[=<account>.altervista.org] $EMAIL = '#[=<account>@altervista.org]'; #[=<account>@altervista.org] $COLORE = '#[=#9370DB]'; #[=#9370DB] $COLORE = '#D3D3D3'; define('HEADER_MAIL','From: '.(isset($EMAIL)?$EMAIL:(nick().'@altervista.org<')).(isset($EMAIL)?('<'.$EMAIL.'>'):(nick().'>'))); function colore() { global $COLORE; if(isset($COLORE)) return $COLORE; else return '#9370DB'; } function nick() { return substr($_SERVER['SERVER_NAME'],0,(strpos($_SERVER['SERVER_NAME'],'.')===FALSE)?strlen($_SERVER['SERVER_NAME']):strpos($_SERVER['SERVER_NAME'],'.')); } function stringa_random() { $str = 'ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz123456789'; $r = ''; $l = 8+rand(0,5); for($i=0;$i<$l;$i++) $r .= $str{rand(0,strlen($str))}; return $r; } function cartella() //ritorna il percorso dei file { $arr = parse_url($_SERVER['PHP_SELF']); $t = strrpos(substr($arr['path'],1),'/'); return substr($arr['path'].'/',1,$t?$t+1:0); } function redirect_home($param = '') { global $INDIRIZZO_REDIRECT; if(isset($INDIRIZZO_REDIRECT)) { if(!headers_sent()) header('Location: http://'.$INDIRIZZO_REDIRECT.'/?'.$param); else die('<meta HTTP-EQUIV="REFRESH" content="0; url=http://'.$INDIRIZZO_REDIRECT.'/?'.$param.'">'); } else { if(!headers_sent()) header('Location: http://'.nick().'.altervista.org/?'.$param); else die('<meta HTTP-EQUIV="REFRESH" content="0; url=http://'.nick().'.altervista.org/?'.$param.'">'); } exit; } ?>
iscrizione.phpcodice:<?php session_start(); ?> <?php include('iscrizione.php');?>
login.phpcodice:<?php/* © by alemoppo (Moroni Alessandro) */ require_once('./funzioni.php'); if(isset($_POST['username'],$_POST['password'],$_POST['verify_password'],$_POST['email'],$_POST['captcha'])) { session_start(); $stop = FALSE; if($_POST['captcha'] != $_SESSION['captcha']) { $stop = TRUE; echo('Codice di conferma errato'); } $_SESSION['captcha'] = ''; //se torna indietro, il captcha non è più valido if(empty($_POST['username'])) { $stop = TRUE; echo('username vuoto!'); } if(empty($_POST['password'])) { $stop = TRUE; echo('Password vuota!'); } if(empty($_POST['verify_password'])) { $stop = TRUE; echo('password di verifica vuota!'); } if(empty($_POST['email'])) { $stop = TRUE; echo('email vuota!'); } if($_POST['verify_password'] != $_POST['password']) { $stop = TRUE; echo('Le due password non coincidono'); } if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email'])) { $stop = TRUE; echo('Email non valida'); } if(!$stop) { require('./config.php'); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); $q = mysql_query('SELECT username FROM utenti WHERE username = \''.$username.'\''); if(mysql_num_rows($q) == 1) echo 'Questo utente risulta esistente'; else { $attivazione = stringa_random(); $q = mysql_query('INSERT INTO utenti (username,password,email,attivazione) VALUES (\''.$username.'\',\''.md5($password).'\',\''.$email.'\',\''.$attivazione.'\')'); if(!$q) echo 'Problemi durante la query: '.mysql_error(); else { $oggetto = 'Registrazione su '.nick().'.altervista.org'; $testo = "Ti sei registrato correttamente su .altervista.org.\n\nNick: ".$username."\nPassword: ".$password."\n\n Visita questa pagina per attivare l\'account: \n\nhttp://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?att=".$attivazione."\n\nGrazie per esserti registrato!"; if(mail($email,$oggetto,$testo,$HEADER_MAIL)) echo 'Iscrizione avvenuta correttamente. Prima di poter usare l\'account, è necessario seguire il link sulla email.'; else echo 'Problemi durante invio email'; } } mysql_close($db); } } else if(isset($_GET['att']) || isset($_GET['riatt'])) { require('./config.php'); if(isset($_GET['att'])) $attivazione = mysql_real_escape_string($_GET['att']); else { $attivazione = mysql_real_escape_string($_GET['riatt']); $q = mysql_query('SELECT pass FROM utenti WHERE attivazione = \''.$attivazione.'\''); if($q === FALSE) echo 'Errore durante una query: '.mysql_error(); else if(mysql_num_rows($q) == 1) { $q = mysql_fetch_assoc($q); if(!empty($q['pass'])) if(!mysql_query('UPDATE utenti SET password = \''.$q['pass'].'\' WHERE attivazione = \''.$attivazione.'\'')) echo 'Errore durante una query: '.mysql_error(); } } if(mysql_query('UPDATE utenti SET attivazione = \'\' WHERE attivazione = \''.$attivazione.'\'')) if(mysql_affected_rows($db) == 1) echo 'Account attivato correttamente!<br>'; else echo 'Problemi con attivazione account.<br>'; if(isset($INDIRIZZO_REDIRECT)) echo '<a href="http://'.$INDIRIZZO_REDIRECT.'">Premi qui per continuare</a>'; else echo '<a href="http://'.nick().'.altervista.org">Torna alla home</a>'; mysql_close($db); } else { ?> <form action="<?= $_SERVER['PHP_SELF']; ?>" method="post"> <table style="cellpadding:5px; background-color:<?php require_once('./funzioni.php'); echo colore(); ?>; width:200px;" > <tr><td>Username:</td><td><input type="text" name="username" value=""></td></tr> <tr><td>Password:</td><td><input type="password" name="password" value=""></td></tr> <tr><td>Verifica Password:</td><td><input type="password" id="verify_password" name="verify_password" value=""></td></tr> <tr><td>Email:</td><td><input type="text" name="email" value=""></td></tr> <tr><td><img src="./config.php?captcha=1&r=<?= time(); ?>"></td><td>Conferma codice:<br><input type="text" name="captcha" value="" maxlength="5"></td></tr> <tr><td colspan="2" style="text-align:center;"><input type="submit" id="submit" name="submit" value="Invia" /></td></tr> </table> </form> <?php } ?>
recupero.phpcodice:<?php/* © by alemoppo (Moroni Alessandro) */ session_start(); require_once('./funzioni.php'); require('./config.php'); if(isset($_SESSION['utente'])) echo 'benvenuto, '.$_SESSION['utente']; else if(isset($_COOKIE['user'],$_COOKIE['pass'])) { $user = mysql_real_escape_string($_COOKIE['user']); $pass = mysql_real_escape_string($_COOKIE['pass']); #rinnovo i cookie setcookie('user',$user,time()+(60*60*24*30)); //dura 30 gg setcookie('pass',$pass,time()+(60*60*24*30)); //dura 30 gg } if(isset($_POST['username'],$_POST['password'])) { $user = mysql_real_escape_string($_POST['username']); $pass = md5(mysql_real_escape_string($_POST['password'])); } if(isset($user,$pass)) { $q = mysql_query('SELECT attivazione,pass FROM utenti WHERE username = \''.$user.'\' AND password=\''.$pass.'\' LIMIT 1'); mysql_close($db); if(!$q) echo 'Errore durante la query: '.mysql_error(); else if(mysql_num_rows($q) == 1) { $q = mysql_fetch_assoc($q); if(empty($q['attivazione']) || (!empty($q['pass']))) { $_SESSION['utente'] = htmlentities($user); if(isset($_POST['ricordami'])) { setcookie('user',$user,time()+(60*60*24*30)); //dura 30 gg setcookie('pass',$pass,time()+(60*60*24*30)); //dura 30 gg } redirect_home(); } else echo 'Account non attivato. Attivalo dall\'indirizzo specificato nell\'email!.'; } else echo 'I dati non sono corretti.'; } if(!isset($_SESSION['utente'])) { ?> <form name="login" method="post" action="<?= $_SERVER['PHP_SELF']; ?>"> <table style="cellpadding:5px; background-color:<?php require_once('./funzioni.php'); echo colore(); ?>" > <tr><td>Username:</td><td><input type="text" name="username"></td></tr> <tr><td>password:</td><td><input type="password" name="password"></td></tr> <tr><td colspan="2">Ricordami<input type="checkbox" name="ricordami" value="on" class="check"></td></tr> <tr><td colspan="2"><input type="submit" value="Invia" name="submit" id="submit" class="button"></td></tr> </table> </form> <?php } ?>
Dove sbaglio? Grazie in anticipocodice:<?php/* © by alemoppo (Moroni Alessandro) */ if(isset($_POST['user'],$_POST['email'])) { require('./config.php'); require_once('./funzioni.php'); $procedi = FALSE; if(!empty($_POST['user'])) { $username = mysql_real_escape_string($_POST['user']); $q = mysql_query('SELECT email FROM utenti WHERE username = \''.$username.'\' LIMIT 1'); if(!$q) echo 'Errore durante la query 1'.mysql_error(); if(mysql_num_rows($q) != 1) { echo 'Nessun utente '.$_POST['user'].' trovato. <br>'; } else { $row = mysql_fetch_assoc($q); $email = $row['email']; $procedi = TRUE; } } else if(!empty($_POST['email'])) { $email = mysql_real_escape_string($_POST['email']); $q = mysql_query('SELECT username FROM utenti WHERE email=\''.$email.'\' LIMIT 1'); if(!$q) echo 'Errore durante la query1: '.mysql_error(); if(mysql_num_rows($q) != 1) { echo 'Nessuna email '.$_POST['email'].' trovata. <br>'; } else { $row = mysql_fetch_assoc($q); $username = $row['username']; $procedi = TRUE; } } else echo 'Occorre inserire o username, o email.<br>'; if($procedi) { $new_pass = stringa_random(); $attivazione = stringa_random(); $q = mysql_query('UPDATE utenti SET pass = \''.md5($new_pass).'\', attivazione=\''.$attivazione.'\' WHERE username = \''.$username.'\''); if(!$q) echo 'Errore durante la query2: '.mysql_error(); else { $oggetto = 'Reset password'; $testo = "Reset effettuato correttamente.\n\nNuova password: $new_pass\n(potrai modificarla)\n\nUtente: $username\n\nVisita questo indirizzo per confermare:\nhttp://".$_SERVER['SERVER_NAME'].'/'.cartella()."iscrizione.php?riatt=".$attivazione."\n"; if(!mail($email,$oggetto,$testo,HEADER_MAIL)) echo 'Errore invio durante email'; else echo 'Abbiamo inviato un email con la nuova password generata automaticamente. Prima che diventi attiva, occorre confermare dall\'email.<br>'; } } mysql_close($db); } ?> Immetti nome utente o email per ricevere via email una nuova password: <form name="login" method="post" action="<?= $_SERVER['PHP_SELF']; ?>"> <table style="cellpadding:5px; background-color:<?php require_once('./funzioni.php'); echo colore(); ?>" > <tr><td>Username:</td><td><input type="text" name="user"></td></tr> <tr><td>email:</td><td><input type="text" name="email"></td></tr> <tr><td align="center" colspan="2"><input type="submit" value="Invia" name="submit"></td></tr> </table> </form>

Rispondi quotando

