Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106

    Registrazione Nuovi Utenti

    Per coloro che possono darmi una mano, sto utilizzando l'articolo pubblicato su freephp per la registrazione di nuovi utenti su DB.
    Il mio problema è sulla conferma dell'avvenuta registrazione: premetto che la mail per la conferma della registrazione mi arriva in locale tramite uno script per settare smtp della mail in locale scaricato proprio da una delle pillole, e che fin'ora non mi ha dato mai problemi.
    Nel momento in cui apro la mail per confermare la registrazione il file confirm.php mi manda questa stringa:

    La registrazione non può essere confermata, probabilmente poichè è scaduta.

    posto il codice di confirm.php:

    codice:
    <?php
    include_once("include/config.php");
    include_once("include/reg.lib.php");
    
    if(isset($_GET['id']) and strlen($_GET['id']) == 32){
    	reg_clean_expired();
    	$status = reg_confirm($_GET['id']);
    	
    	switch($status){
    		case REG_SUCCESS:
    			echo "La tua registrazione è stata confermata; ora puoi effettuare il login.";
    		break;
    		case REG_FAILED:
    			echo "La registrazione non può essere confermata, probabilmente poichè è scaduta.";
    		break;
    	}
    }
    ?>
    e quello relativo a reg.lib.php che è quello realmente che fa il lavoro:

    codice:
    <?php
    function reg_register($data){
    	//registro l'utente
    	global $_CONFIG;
    	
    	$id = reg_get_unique_id();
    	mysql_query("
    	INSERT INTO ".$_CONFIG['table_utenti']."
    	(name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
    	VALUES
    	('".$data['name']."','".$data['surname']."','".$data['indirizzo']."',
    	'".$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
    	'1', '".time()."','".$id."')");
    	
    	//Decommentate la riga seguente per testare lo script in locale
    	//echo "<a href=\"http://localhost/freephp/autenticazione/confirm.php?id=".$id."\">Conferma</a>";
    	if(mysql_insert_id()){
    		return reg_send_confirmation_mail($data['mail'], "test@localhost", $id);
    	}else return REG_FAILED;
    }
    
    function reg_send_confirmation_mail($to, $from, $id){
    	//invio la mail di conferma
    	$msg = "Per confermare l'avvenuta registrazione, clicckate il link seguente:
    	http://localhost/freephp/autenticazione/confirm.php?id=".$id."
    	";
    	return (mail($to, "Conferma la registrazione", $msg, "From: ".$from)) ? REG_SUCCESS : REG_FAILED;
    }
    
    function reg_clean_expired(){
    	global $_CONFIG;
    	
    	$query = mysql_query("
    	DELETE FROM ".$_CONFIG['table_utenti']."
    	WHERE (regdate + ".($_CONFIG['regexpire'] * 60 * 60).") <= ".time()." and temp='1'");
    }
    
    function reg_get_unique_id(){
    	//restituisce un ID univoco per gestire la registrazione
    	list($usec, $sec) = explode(' ', microtime());
    	mt_srand((float) $sec + ((float) $usec * 100000));
    	return md5(uniqid(mt_rand(), true));
    }
    
    function reg_check_data(&$data){
    	global $_CONFIG;
    	
    	$errors = array();
    	
    	foreach($data as $field_name => $value){
    		$func = $_CONFIG['check_table'][$field_name];
    		if(!is_null($func)){
    			$ret = $func($value);
    			if($ret !== true)
    				$errors[] = array($field_name, $ret);
    		}
    	}
    	
    	return count($errors) > 0 ? $errors : true;
    }
    
    function reg_confirm($id){
    	global $_CONFIG;
    	
    	$query = mysql_query("
    	UPDATE ".$_CONFIG['table_utenti']."
    	SET temp='0'
    	WHERE uid='".$id."'");
    	
    	return (mysql_affected_rows () != 0) ? REG_SUCCESS : REG_FAILED;
    }
    ?>
    se qualcuno ha idea del perchè mi viene invalidata la registrazione... non mi dite che è perchè lavoro in locale perchè mi sparo...
    Il sapere appartiene al mondo

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    up
    Il sapere appartiene al mondo

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.