unico files che controlla e attiva l user

ciao  sto continuasndo  a modificare quello script per l invio della  password  adesso il problema e questo   io lo script l ho inserito  tutto dentro ad un files    all inizio  fa i controlli dell user e dell email se trova questi dati   inserisce una password   criptata e invia l email all utente  adesso pero   nell email  ho messo anche il link   per l attivazione      e nel form   che  sono due  ho messo una  condizione del tipo se verita e uguale ad 1  fai vedere il form di cambio password  se non e uno,   mostra il form dell  controllo  pero  sia quando e 1 o 0 mida su tutto i controlli  del form di controllo email     vi posto il codice    magari ci date un occhiata  e mi date qualche vostro parere o mi dite cosa sbaglio$DB = new DB(); session_start(); unset($_SESSION['nick']); unset($_SESSION['email']); // Si connette $DB->connect(); //No need to change anything below ... // Gets the date and time from your server $date = date("d/m/Y H:i:s");

// Gets the IP Address if ($_SERVER['REMOTE_ADDR'] == "") { $ip = "no ip"; } else { $ip = gethostbyaddr($_SERVER['REMOTE_ADDR']); }

// Gets the POST Headers - the Flash variables $action = $_REQUEST['action'] ; $nickname = $_REQUEST['nick'] ; $m = $_REQUEST['email'] ;

$CONFIG['check_table'] = array( "name" => "check_global", "email" => "check_global" ); function check_username($nickname,$m) { global $CONFIG;

$nickname = trim($nickname); $m = trim($m);

if (($nickname == "")||($m == ""))

{return"Compilare i campi $value<br>";}

if (!preg_match("/^[-0-9A-Z_\.]{1,50}@([-0-9A-Z_\.]+\.){1,50}([0-9A-Z]){2,4}$/i", $m)) {return"Il seguente indirizzo email :<b>$m</b><br>E'composto da caratteri non ammessi!<br><br>";         }

else { //$query = @mysql_query("SELECT  FROM utenti WHERE nick='$nickname' || email='$m'") or die("Errore nella query"); $query = mysql_query("SELECT * FROM `utenti` WHERE `nick` ='$nickname' AND `email` =  '$m' and `stato` = '1' LIMIT 0 , 1"); if (@mysql_num_rows($query) == 0){  return"L' email<b> " .$_REQUEST['email']."</b> e il seguente username <b>"  .$_REQUEST['nick']."</b>  <br>Non corrispondono! ";}else{return"OK";}

if (@mysql_num_rows($query) != 0){ return" Controllo avenuto con successo ";}{return"OK";} } }

if ($action == "send") { //Innanzitutto controlliamo la var.le name: $controllo = check_username($nickname,$m);

if ($controllo != "OK") { echo $controllo;

//Qui potresti anche far visualizzare una cosa del genere: echo "<BR><A HREF='$urlpatch/user/rememberpass.php'>Ritorna alla registrazione</A>"; } else { /*dopo aver fatto i vari controlli iniziamo ad creare la password  a random*/ for ($i=0;$i<=7;$i++) { $new_pass .= chr(rand(97, 122)); }

//echo"$new_pass<BR>";//andranno cancellati solamente per testare lo script prima di criptare la password $user_dati = " SELECT * FROM utenti WHERE `nick` ='$nickname' AND `email` =  '$m' "; $result = mysql_query($user_dati); // controllo l'esito if (!$result) {    die("Errore nella query $user_dati: " . mysql_error()); } while($row = mysql_fetch_array($result)) { $ragionesociale = $row['ragionesociale']; $nome = $row['nome']; $cognome = $row['cognome']; $codicefiscale = $row['codicefiscale']; $nazione = $row['nazione']; $adress = $row['adress']; $city = $row['city']; $provincia = $row['provincia']; $kap = $row['kap']; $phone = $row['phone']; $m = $row['email']; $dat_iscrizione = $row['date']; $date_ultimemod_user = $row['date_ultimemod_user']; $numero_a_caso = $row['caso']; } require ("../includes/include.php"); mail ( "$adminaddress","informazioni", "In data $date , \n L'utente  $nome  $cognome\n Ha fatto richiesta di una nuova password! ========================================= ".LOGIN_USER."   $nickname ".EMAIL_USER."   $m ".PHONE_USER."   $phone ".DATE_ISCRIZIONE_USER."   $dat_iscrizione ".DATE_ULTIMA_MODIFICA_USER." $date_ultimemod_user ========================================= " ) ;     //This sends a confirmation to your visitor mail ("$m","Recupero password:", "Salve $nome $cognome  ,\n Le inviamo la nuova password.\n ============================== ".LOGIN_USER."   $nickname ".EMAIL_USER."   $m ============================== Nuova password: $new_pass ============================== ".DATE_ISCRIZIONE_USER."   $dat_iscrizione ".DATE_ULTIMA_MODIFICA_USER." $date_ultimemod_user ============================== ============================== ricevi questa email perche' hai  richiesto una  nuova password  su $urlpatch .

La nuova password deve essere attivata. Per farlo devi cliccare sul link sottostante.\n"  .$urldelvostrosito."user/sendtest.php?user=$nickname&email=$m&check=$numero_a_caso ==============================

Saluti dallo Staff di $sitename    By    $siteaddress","FROM:$adminaddress ") ;     /*qui  codifico la password*/ $new_pass = criptpass ($new_pass);

//echo"$new_pass<BR>"; questa sara visualizzata solamente per testare /*qui  per testare lo script uso  il valore insert  in un altro database */ //$aggiorno_pass_utente = "INSERT INTO mailing (name,email) VALUES ('$name','$new_pass')";

$aggiorno_pass_utente = "UPDATE utenti SET pass= '$new_pass',`stato` = '0'   , date_ultimemod_user ='".date('Y-m-d H:i:s')."' WHERE email ='$m' " ;

if (mysql_query($aggiorno_pass_utente)) { echo "La vuova password l'è stata inviata nel suo indirizzo di posta elettronica<br >";  echo "<meta http-equiv=\"Refresh\" content=\"3; URL=".$_SERVER['PHP_SELF']."\">"; } else { die(mysql_error());

}

// Chiude $DB->disconnect();

} }// ##################################################################################################################### //ATTIVAZIONE INDIRIZZO EMAIL ##################################################################################################################### $DB = new DB(); $DB->connect(); $nickname = $_GET[user]; $m = $_GET[email]; $check_user = $_GET[check];

if($nickname){ $nickname = $_GET[user]; } else {$nickname = "1";}

if($m){ $m = $_GET[email]; } else {$m = "1";}

if(is_numeric($check_user)){ $check_user = $_GET[check]; } else {$check_user = "1";}

$controllo_utente = mysql_query ("SELECT * FROM `utenti` WHERE `email` = '$m' AND nick ='$nickname'

LIMIT 0 , 1 ");

$verita =  mysql_num_rows($controllo_utente); if ($verita =="1") {

 $aggiorno_utente = mysql_query ("UPDATE `utenti` SET `stato` = '1' ,`date_ultimemod_user` ='".date('Y-m-d //H:i:s')."' WHERE `email` ='$m' ") ;

}          else          {          mysql_error();          }

// Chiude $DB->disconnect();

########################################################################################################################### ##                                                                                                                       ## ##qui dice   se  verita che equivale al controllo del database  a il valore 1                                            ## ##fa visualizzare il form per il cambio password se no   mi da quello per il controllo                                   ## ##                                                                                                                       ## ###########################################################################################################################

if ($verita =="1") { echo " $nickname $m $check_user  e corretto lo script  qui dovrebbe iniziare la procedura di cambio password";  echo"<div id='formremember'>\n<br><br>";  echo"<FORM METHOD=POST ACTION='' name='test'>\n";   echo"<table  id='rememberpass'>\n";     echo"<tr>\n";     echo"<td id='spacerremember'></td>\n";     echo"<td id='spacerrememberpass'><label>Password</label></td>\n";     echo"<td><INPUT TYPE='password' NAME='pass'></td>\n";     echo"</tr>\n";     echo"<tr>\n";     echo"<td id='spacerremember'></td>\n";     echo"<td id='spacerrememberpass'><label>nuova Password</label></td>\n";     echo"<td><INPUT TYPE='password' NAME='newpass'></td>\n";     echo"</tr>\n";      echo"<tr>\n";      echo"<td id='spacerremember'></td>\n";        echo" <td id='spacerrememberpass'><label>Conferma password</label></td>\n";         echo"<td><INPUT TYPE='password' NAME='confirmnewpass'></td>\n";           echo"</tr>\n";            echo" <tr>\n";              echo"<td></td> <td></td>\n";                echo"<td><input name='submit' type='submit' value='Invia'> <input type='hidden' name='action' value='send'>";                echo"<input name='reset' type='reset' value='reset'></td>\n";            echo"</tr>\n";        echo" </table>\n";     echo"</FORM>\n"; echo"</div>\n";

} else {  echo"<div id='formremember'>\n<br><br>";  echo"<FORM METHOD=POST ACTION='' name='test'>\n";   echo"<table  id='rememberpass'>\n";     echo"<tr>\n";     echo"<td id='spacerremember'></td>\n";     echo"<td id='spacerremembertext'><label>name</label></td>\n";     echo"<td><INPUT TYPE='text' NAME='nick'></td>\n";     echo"</tr>\n";      echo"<tr>\n";      echo" <td id='spacerremember'></td>\n";        echo" <td id='spacerremembertext'><label>email</label></td>\n";         echo"<td><INPUT TYPE='text' NAME='email'></td>\n";           echo"</tr>\n";            echo" <tr>\n";              echo"<td></td> <td></td>\n";                echo"<td><input name='submit' type='submit' value='Invia'> <input type='hidden' name='action' value='send'>";                echo"<input name='reset' type='reset' value='reset'></td>\n";            echo"</tr>\n";        echo" </table>\n";     echo"</FORM>\n"; echo"</div>\n"; }

################################################################################################################################### #################//QUI CERCHERO DI FARE  IL CONTROLLO PER L INSERIMENTO DELLA NUOVA PASSWORD!!!!          :)      ################# ###################################################################################################################################

?>

inviato 9 anni fa
roccochiolo
X 0 X

mica pretenderai che ci leggiamo tutto quel papiro di script :giveup:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

gianni   ciao  non pretendo niente    io comunque    ho dovuto postare   tutto quello script  in quanto per fare  capire quale potrebbe essere il problema  comunque  come puoi vedere  lo script e diviso in due  files  uno fa il controllo  e  crea la nuova password  e la  invia  all email dell utente   invece il secondo   attiva la password  e dovrebbe   dare la possibilita di  cambiarsi la password    sempre  se la password e  corretta    dammi na mano gianni plis   per te  sicuramente e come bere un caffe   nel senso che e facile  ciao

risposto 9 anni fa
roccochiolo
X 0 X

We  scusatemi mentre mi rileggevo lo script    mi sono accorto che ho postato  quello  senza   il controllo della password   lo posto solo quel pezzo     tra  venti minuti  scusate ancora

risposto 9 anni fa
roccochiolo
X 0 X

ecco l script  per il controllo della password  ragazzi so nbranato :D

###################################################################################################
######              QUESTO E IL CONTROLLO DELLA PASSWORD                                     ###### 
###################################################################################################


$DB = new DB();
session_start();
unset($_SESSION['email']);
unset($_SESSION['pass']);

// Si connette
    $DB->connect();
    $nickname = $_GET[user];
    $m = $_GET[email];
   

    $m =  $_POST['email'];
    $action =  $_REQUEST['action'];
    $pass = $_REQUEST['pass'];
   $newpsw = $_REQUEST['newpsw'];
   $confirmnewpsw = $_REQUEST['confirmnewpsw'];
   
 
     
$CONFIG['check_table'] = array(
"pass" => "check_global",
"newpsw" => "check_global",
"confirmnewpsw" => "check_global"
);
function check_username($pass,$newpsw,$confirmnewpsw)
{
global $CONFIG;


  $pass = trim(addslashes($_POST[pass]));
  $newpsw = trim(addslashes($_POST[newpsw]));
  $confirmnewpsw = trim(addslashes($_POST[confirmnewpsw]));
  
  
if(($pass=='') || ($newpsw=='')|| ($confirmnewpsw==''))
   {return"campi obbligatori";} 
   
   //if (preg_match("/^[0-9A-Z@]{6,20}$/i", $pass)){return"1campi obbligatori";} 
   //if (preg_match("/^[0-9A-Z@]{6,20}$/i", $newpsw)){return"2campi obbligatori";} 
   //if (preg_match("/^[0-9A-Z@]{6,20}$/i", $confirmnewpsw)){return"3campi obbligatori";}
   else
{
$pass = criptpass($pass);
$query = mysql_query("SELECT *
FROM `utenti`
WHERE `email` ='$m'
AND `pass` =  '$psw_per_db' and `stato` = '1'
LIMIT 0 ,1");
$ok_login = mysql_num_rows($query);


if($ok_login!=0)
{
$_SESSION[pass]= $psw_per_db;
echo "OK";
}
else
{
 echo "PASSWORD SBAGLIATA $name".mysql_error();

//if (@mysql_num_rows($query) == "0"){$_SESSION[pass]= $psw_per_db;  return"La password non corrisponde $pass ";}else{return"OK";}
//if (@mysql_num_rows($query) != "0"){$_SESSION[pass]= $psw_per_db;  return " Controllo avenuto con successo ";}
//{return"OK";}
}
}
}




   if ($action == "send") { 
//Innanzitutto controlliamo la var.le name: 
$controllo = check_username($pass,$newpsw,$confirmnewpsw); 

if ($controllo != "OK") 
{ 
echo $controllo; 
} 
else
{
echo"qui parte  l 'azione del controllo   ";

//Qui potresti anche far visualizzare una cosa del genere: 
//echo "<BR><A HREF='$urlpatch/user/rememberpass.php'>Ritorna alla registrazione</A>"; 
}  
}   
risposto 9 anni fa
roccochiolo
X 0 X

ciao gianni  l ho risolto il problema   adesso  fa il controlla ma   mi da un problema  con  i controlli  della lunghezza e del tipo di caratteri  perche     lo script  mi da il controllo della password gia finita    esempio    lui   dice  che  /if (preg_match("/^[0-9A-Z@]{6,20}$/i", $pass)){return"1campi obbligatori";} if (preg_match("/^[0-9A-Z@]{6,20}$/i", $newpsw)){return"2campi obbligatori";} if (preg_match("/^[0-9A-Z@]{6,20}$/i", $confirmnewpsw)){return"3campi obbligatori";}

La  password  puo contenere  i seguenti caratteri e puo essere  massimo 20 caratteri  adesso succede che lui la password la vede criptata   e mi da errore  cosa mi consigli   non apro un altra discussione perche   e la stessa   su lo stesso script  quindi   

poi  sai come ho risolto il problema   lo script  non capiva su che cosa si doveva  basare a fare il controllo  su quale email io ho fatto cosi   

    $query = mysql_query("SELECT * FROM `utenti` WHERE `pass` ='$pass' AND `email` =  '".$_GET['email']."' and `stato` = '1' LIMIT 0 ,1"); e ora va  ;D

risposto 9 anni fa
roccochiolo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda