Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Link conferma modifica perde l'id.

    Buon giorno, arrivo al punto.
    All'atto della registrazione invio una mail dove è incluso un link per confermare la registrazione.
    Tralasciando il form vorrei soffermarmi sullo script di inserimento dati nel DB e l'invio della mail.
    Il problema è che ci sono utenti che ricevono il link completo di "hash" e id dell'utente appena creato e a chi gli manca l'id.
    es:
    - Senza Id
    modifica
    - COn Id
    modifica

    Quindi ne consegue che, ricevendo la mail senza l'id la registrazione o la modifica di un qualcosa non andrà a buon fine.
    Questa è la pagina:
    codice:
    <?php 
    	include('decripta_password/EncDec.class.php');
    
    	$txtG 		= $_POST['txtG'];
    	$txtM 		= $_POST['txtM'];
    	
    	$txtUserName 		= $_POST['txtUserName'];
    	$txtNewUserName		= $_POST['txtNewUserName'];
    	
    	$txtPassword 		= $_POST['txtPassword'];
    	$txtMail 			= $_POST['txtMail'];
    
    echo "<div id='container'>";
    
    if(!$Connessione){
    	echo "Non è possibile connettersi";
    	exit;
    }
    else{
    	if($txtG!="" && $txtM != ""){
    		$sql = "SELECT Username FROM TBESTERNI WHERE Username=\"".$txtNewUserName."\"";
    		$rsUser= mysql_query($sql) or die ("Impossibile connettersi!" . mysql_error());
    		$num_righe = mysql_num_rows($rsUser);
    		
    		$cPassword = str_crypt($txtPassword, $txtNewUserName);
    			
    			if ($num_righe == false) {
    				//se la nuova user non è presente nel db allora la cambia
    				//*******************UPDATE - INSERT ***********************//
    				$sql =	"UPDATE TBESTERNI SET"
    						."  Username=\"".$txtNewUserName."\""
    						.", Pwd=\"".$cPassword."\""
    						.", dModifica=\"".date("Y-m-d G:i:s")."\""
    						.", abilita=\"0\""
    						."  WHERE Username = \"".$txtUserName."\" and (Mat=\"".$txtM."\" and Giu=\"".$txtG."\")";
    				$rsUser= mysql_query($sql) or die ("Impossibile connettersi!" . mysql_error());
    				$Update = "1";
    
    				//********SPAZIO PER REGISTRAZIONE*****************//
    				$hash_generato = md5(session_id()."##".mktime()).md5($txtNewUserName+$txtMail);
    				$sql1 = "SELECT IdUserEsterno FROM TBESTERNI WHERE UserName=\"".$txtNewUserName."\" and (Mat=\"".$txtM."\" and Giu=\"".$txtG."\")";
    				$rsUser2= mysql_query($sql1) or die ("Impossibile connettersi!" . mysql_error());
    				$row = mysql_fetch_row($rsUser2);
    
    				$sql2 =	"INSERT INTO TBREGISTRAZIONE ("
    						."id, hash,id_utente"
    						."  ) VALUES ("
    						." \"\""
    						.", \"".$hash_generato."\""
    						.", \"".$row[0]."\""
    						."  )";
    				$rsUser2= mysql_query($sql2) or die ("Impossibile eseguire l'insert nella tabella registrazione!" . mysql_error());
    				$Insert = "1";
    				//mysql_free_result($rsUser);
    				//*******************UPDATE - INSERT ***********************//				
    			}
    			else{
    				//verifico se le user(vecchia e nuova) appartengono alla matricola e rg digitati
    				$sql = "SELECT Username FROM TBESTERNI WHERE UserName=\"".$txtNewUserName."\" and (Mat=\"".$txtM."\" and Giu=\"".$txtG."\")";
    				$rsUser= mysql_query($sql) or die ("Impossibile connettersi!" . mysql_error());
    				$rowOldUser = mysql_num_rows($rsUser);
    				
    				if ($num_righe == false) {
    					echo "	Errore: La UserName da lei scelta è già presente in archivio, pertanto non è possibile procedere.
    
    							Torni al modulo scegliendo una Username diversa da quella appena digitata.";
    							exit;
    				}
    				else{
    					//se la nuova user non è presente nel db allora la cambia
    					//*******************UPDATE - INSERT ***********************//
    					$sql =	"UPDATE TBESTERNI SET"
    							."  Username=\"".$txtNewUserName."\""
    							.", Pwd=\"".$cPassword."\""
    							.", dModifica=\"".date("Y-m-d G:i:s")."\""
    							.", abilita=\"0\""
    							."  WHERE Username = \"".$txtUserName."\")";
    					$rsUser= mysql_query($sql) or die ("Impossibile connettersi!" . mysql_error());
    					$Update = "1";
    	
    					//********SPAZIO PER REGISTRAZIONE*****************//
    					$hash_generato = md5(session_id()."##".mktime()).md5($txtNewUserName+$txtMail);
    					$sql1 = "SELECT IdUserEsterno FROM TBESTERNI WHERE UserName=\"".$txtUserName."\"";
    					$rsUser2= mysql_query($sql1) or die ("Impossibile connettersi!" . mysql_error());
    					$row = mysql_fetch_row($rsUser2);
    	
    					$sql2 =	"INSERT INTO TBREGISTRAZIONE ("
    							."id, hash,id_utente"
    							."  ) VALUES ("
    							." \"\""
    							.", \"".$hash_generato."\""
    							.", \"".$row[0]."\""
    							."  )";
    					$rsUser2= mysql_query($sql2) or die ("Impossibile eseguire l'insert nella tabella registrazione!" . mysql_error());
    					$Insert = "1";
    					//mysql_free_result($rsUser);
    					//*******************UPDATE - INSERT ***********************//
    				}
    			}
    		}	
    		else{
    			echo "	Errore: 
    					
    
    Si &egrave; verificato un problema al momento del recupero riprovate pi&ugrave; tardi oppure contattare l&rsquo;amministratore se il problema persiste.
    					
    
    					La ringraziamo per la sua collaborazione.Buona giornata.
    					</p>";
    					exit;
    		}
    	//}
    	mysql_close();
    
    	
    	if (strlen($_SESSION['SessMailUserEsterno']) > 0) {
    		$destinatari  = $txtMail ;//$_SESSION['SessMailUserEsterno'];
    		$oggetto = "Segnalazione";
    		$messaggio = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'
    					.'<html>'
    					.'	<head>'
    					.'		<title>Conferma ricezione della Vostra Registrazione del '.date("Y-m-d G:i:s").'</title>'
    					.'		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">'
    					.'	</head>'
    					.'	<body>';
    
    					if($Update != "" || $Insert!=""){
    						if($Update=="1"){
    							$messaggio .='
    
    I dati sono stati modificati in data '.date("Y-m-d G:i:s").'.</p>';
    						}
    						$messaggio .=	 '
    
    
    												Per confermare la modifica e ottenere i nuovi dati deve cliccare qui 
    													Conferma Modifica.
    										  </p>';
    					}
    					
    		$messaggio .='
    
    Un cordiale saluto.</p>.'
    					.'	</body>'
    					.'</html>'
    					.'';
    
    		/* Per inviare email in formato HTML, si deve impostare l'intestazione Content-type. */
    		$intestazioni = "";
    		$intestazioni .= "MIME-Version: 1.0\r\n";
    		$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
    		$intestazioni .= "From: AZienda <webmaster@miosito.it>\r\n";
    		
    		/* ed infine l'invio */
    		if(isset($_SESSION['verificaInvioMail'])){
    			if(@mail($destinatari, $oggetto, $messaggio, $intestazioni)) {
    				$_SESSION['verificaInvioMail'] = "1";
    				
    				if($Update == "1"){
    					echo "	DATI AGGIORNATI!!!
    							
    
    							LE ABBIAMO INVIATO UNA MAIL NELLA QUALE TROVER&Aacute; UN LINK(COLLEGAMENTO) PER CONFERMARE LA MODIFICA!
    							
    
    							FINQUANDO NON CLICCHER&Agrave; IL LINK, IL SUO PROFILO NON SAR&Agrave; ATTIVO.
    							
    
    							EMAIL INOLTRATA.
    							
    
    							Tra qualche secondo sar&agrave; reindirizzato all&rsquo;interno del sito.";
    				}
    				elseif($Insert == "1"){
    					echo "	LE ABBIAMO INVIATO UNA MAIL NELLA QUALE TROVER&Aacute; UN LINK(COLLEGAMENTO) PER CONFERMARE LA REGISTRAZIONE!
    							
    
    							FINQUANDO NON CLICCHER&Agrave; IL LINK, IL SUO PROFILO NON SAR&Agrave; ATTIVO.
    							
    
    							EMAIL INOLTRATA.";
    				}
    				else{
    					echo "UTENTE CANCELLATO - EMAIL INOLTRATA";
    				}
    			}
    			else{
    				echo "Problemi nell'invio della mail!Controlla eventualmente nella tua casella di posta se ti è arrivata la nostra mail.";
    			}	
    		}	
    		else{
    			echo "OPERAZIONE GI&Agrave; ESEGUITA ED EMAIL GI&Agrave; INOLTRATA";
    			$_SESSION['verificaInvioMail'] = "";
    		}
    		header("Refresh: 15; URL=LogOut.php");
    	}
    }
    echo "</div>";
    ?>
    La mia domanda:
    sapete dirmi per favore per quale motivo alcuni ricevono il link completo di id e altri no?
    PS: il valore che indica l'id è riferito a row[0].
    Grazie mille e buona giornata.

  2. #2
    Ciao,

    ad una prima vista manca
    session_start();

    devi metterlo all'inizio dello script.

  3. #3
    Codice PHP:
        //********SPAZIO PER REGISTRAZIONE*****************//
    $hash_generato =md5(session_id()."##".mktime()).md5($txtNewUserName+$txtMail);
    $sql1 "SELECT IdUserEsterno FROM TBESTERNI WHERE UserName=\"".$txtNewUserName."\" and (Mat=\"".$txtM."\" and Giu=\"".$txtG."\")";
    $rsUser2mysql_query($sql1) or die ("Impossibile connettersi!" .mysql_error());
    $row mysql_fetch_row($rsUser2);
    $sql2 "INSERT INTO TBREGISTRAZIONE (" 
    ."id, hash,id_utente" 
    ."  ) VALUES ("
    ." \"\""
    .", \"".$hash_generato."\""
    .", \"".$row[0]."\"" 
    ."  )";
    $rsUser2mysql_query($sql2) or die ("Impossibile eseguire l'insert nella tabella registrazione!" mysql_error());
    $Insert "1";
    //mysql_free_result($rsUser); 
    Codice PHP:
    //********SPAZIO PER REGISTRAZIONE*****************// 
    $hash_generato =md5(session_id()."##".mktime()).md5($txtNewUserName+$txtMail);
    $sql1 "SELECT IdUserEsterno FROM TBESTERNI WHERE UserName=\"".$txtUserName."\"";
    $rsUser2mysql_query($sql1) or die ("Impossibile connettersi!" .mysql_error());
    $row mysql_fetch_row($rsUser2);
    $sql2 ="INSERT INTO TBREGISTRAZIONE ("
    ."id, hash,id_utente"
    ."  ) VALUES ("
    ." \"\""
    .", \"".$hash_generato."\""
    .", \"".$row[0]."\""
    ."  )";
    $rsUser2mysql_query($sql2) or die ("Impossibile eseguire l'insert nella tabella egistrazione!" mysql_error());
    $Insert "1"

    prova a stamparti la query $sql1.

  4. #4
    le due query sono diverse, la prima la stampa con Username e (Mat e Giu) la seconda solo con Username...
    Però continuo a non capire....
    cioè, il problema si presenta solo per pochissimi utenti, e quindi non per tutti.
    Vorrei capire il perchè si presenta...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.