[Yii1][RISOLTO]Errore apertura link di conferma registrazione utente

Salve a tutti,

ho questa action nel controller che permette a un’ utente di registrarsi al sito.

Gli invio la mail di conferma dove includo un link sul quale cliccare per attivare l’ account.

Quando clicco sul link, nonostante i parametri di verifica (quindi codice_fiscale e codice_verifica…che passo nel link) sono corretti mi genera comunque un errore e mi dice che la action è inestistente.

Credo vi sia un’ errore sul link che genero per l’ attivazione ma non riesco a risolverlo!!!

Action in SiteController;




public function actionRegistrazioneUtente()

{




$model=new RegistrazioneUtente;

//////VALIDAZIONE AJAX


if(isset($_POST['ajax']) && $_POST['ajax'] === 'form')

{

echo CActiveForm::validate($model);

Yii::app()->end();

}


if (isset($_POST['RegistrazioneUtente']))

{

$tipovia=$_POST['RegistrazioneUtente']['tipovia'];

$codicefisc_inserito = $_POST['RegistrazioneUtente']['codice_fiscale'];

$codice_verifica = $_POST['RegistrazioneUtente']['codice_verifica'];

$model->attributes = $_POST['RegistrazioneUtente'];

if(!$model->validate())

{

$model->addError('ripeti_password', 'Errore durante l\' invio dei dati');	

}


else

{	

////SE PASSA LA VALIDAZIONE REGISTRA L'UTENTE NELLA TABELLA GRAZIE ALLA FUNZIONE INSERITA NEL MODEL InserimentoUtenteDb

$salvauser = new InserimentoUtenteDb();

$salvauser->salva_utente(

$model->nome,

$model->cognome,

$model->nome_cognome,

$model->codice_fiscale,

$model->email,

$model->password,

$model->username,

$model->codice_verifica

);


///////////RICERCA L' ID UTENTE DALLA TABELLA

$ricerca = User::model()->findAllByAttributes(array('codice_fiscale'=>array($codicefisc_inserito)));

foreach($ricerca as $codice);

			

//////////RECUPERA L' ID UTENTE DALLA TABELLA

$id_user = $codice->id;


//////////DIRETTIVE PER I DATI RICEVUTI DA INSERIRE NELLA TABELLA			

$nome = $_POST['RegistrazioneUtente']['nome'];

$cognome = $_POST['RegistrazioneUtente']['cognome'];

$codice_fiscale = $_POST['RegistrazioneUtente']['codice_fiscale'];

$tipovia = $_POST['RegistrazioneUtente']['tipovia'];

$indirizzo = $_POST['RegistrazioneUtente']['indirizzo'];

$civico = $_POST['RegistrazioneUtente']['civico'];

$cap = $_POST['RegistrazioneUtente']['cap'];

$comune = $_POST['RegistrazioneUtente']['comune'];

$provincia = $_POST['RegistrazioneUtente']['provincia'];

$email = $_POST['RegistrazioneUtente']['email'];

$p_iva = $_POST['RegistrazioneUtente']['p_iva'];

$codice_verifica= $salvauser->codice_verifica;

$abilitato = '0';

$data_registrazione = date('Y-m-d');


 ////////////INIZIO LA CONNESSIONE ALLA TABELLA E INSERISCO I DATI

$connessionewebuser = Yii::app()->db;

$inserimentowebuser = "INSERT INTO webuser (nome, cognome, codice_fiscale, tipovia, indirizzo, civico, cap,

 comune, provincia, email, p_iva, id_user, abilitato, data_registrazione, codice_verifica) 

VALUES ('$nome', '$cognome', '$codice_fiscale', '$tipovia', '$indirizzo', '$civico', '$cap', '$comune', 

'$provincia', '$email', '$p_iva', '$id_user', '$abilitato', '$data_registrazione', '$codice_verifica')";

$risultato = $connessionewebuser->createCommand($inserimentowebuser)->execute();

///////////FINE INSERIMENTO DATI NELLA TABELLA


	

///ED INVIA EMAIL DI CONFERMA

$email = new InviaEmail;

									

$subject = "Conferma Registrazionen al sito www.miodominio.it ";

$subject .= Yii::app()->name;

$message = "Salve "  .$cognome. " ricevi questa email perchè ti sei registrato sul sito www.nuoviufficipostali.it.";

$message .= "<br />";

$message .="Per attivare il tuo account clicca sul lilnk seguente: ";

$message .= "<br />";

$message .="<a href='http://www.miodominio.it/Site/RegistrazioneUtente&codice_fiscale=".$model->codice_fiscale."&codice_verifica=".$salvauser->codice_verifica."'>Conferma Attivazione</a>";

$message .= "<br />";

$message .="Per favore non rispondere a questo messaggio poichè è stato generato automaticamente solo a scopo informativo.";

$message .= "<br />";

$message .="Cordialmente";


					

					

$email->Invia_Email

(

array(Yii::app()->params['NoReplyEmail'], Yii::app()->name),

array($model->email, $model->username),


$subject,

$message

);

				  

				  

////////////////RIPULISCO IL FORM DAI DATI INSERITI

$model->nome = '';

$model->cognome = '';

$model->codice_fiscale = '';

$model->tipovia = '';

$model->indirizzo = '';

$model->civico = '';

$model->cap = '';

$model->comune = '';

$model->provincia = '';

$model->email = '';

$model->p_iva = '';

$model->password = '';

$model->ripeti_password = '';

$model->username = '';


//////////////INIZIO CON L' INVIO DEL MESSAGGIO

 Yii::app()->user->setFlash('registrazione_avvenuta', 

'<div class="alert alert-success" role="alert" style="width:70%; vertical-align:middle;">

Il suo account è stato creato on successo. Le abbiamo inviato un\' email per confermare l\' attivazione.

</div>'

);

}

}

if(isset($_GET['codice_fiscale']) && isset($_GET['codice_verifica']))

{

$codice_fiscale = $_GET['codice_fiscale'];

$codice_verifica = $_GET['codice_verifica'];


/////////////VERIFICO CHE IL CODICE FISCALE SIA NEL FORMATO CORRETTO

if(!preg_match("/^[a-zA-Z0-9]+$/i", $codice_fiscale))	

{

 Yii::app()->user->setFlash('errore_linkmail', 

'<div class="alert alert-success" role="alert" style="width:70%; vertical-align:middle;">

Errore nella conferma del codice di verifica. Account NON attivato.

</div>'

);

}

/////////////VERIFICO CHE IL CODICE DI VERIFICA SIA NEL FORMATO CORRETTO (GENERATO CON SHA1)

else if(!preg_match("/^[a-zA-Z0-9]+$/i", $codice_verifica))

{

Yii::app()->user->setFlash('errore_linkmail2', 

'<div class="alert alert-success" role="alert" style="width:70%; vertical-align:middle;">

Errore nella conferma del codice di verifica. Account NON attivato.

</div>'

);

}


else{

$connessione = Yii::app()->db;

$ricerca_dati = "SELECT codice_fiscale, codice_verifica FROM webuser ";	

$ricerca_dati .="WHERE codice_fiscale='$codice_fiscale' AND codice_verifica='$codice_verifica'";	

$risultato_ricerca = $connessione->createCommand($ricerca_dati);

$fine_ricerche = $risultato_ricerca->query();

$esiste = false;

foreach($fine_recerche as $fine_ricerca)

{

$esiste = true;	

}

if($esiste === true)

{

$attiva_utente = "UPDATE webuser SET abilitato=1 WHERE ";	

$attiva_utente .="codice_fiscale='$codice_fiscale' AND codice_verifica='$codice_verifica'";

$utente_attivato = $connessione->createCommand($attiva_utente)->excecute();


Yii::app()->user->setFlash('account_attivo', 

'<div class="alert alert-success" role="alert" style="width:70%; vertical-align:middle;">

Il tuo account è stato attivato. Puoi ora iniziare a utilizzare i nostri servizi

</div>'

);


}

}

}


$this->render('registrazione', array('model'=>$model));


}



Questo è il link di conferma




http://www.miodominio.it/Site/RegistrazioneUtente&codice_fiscale=plnygg78z01q123c&codice_verifica=93506fc2a3a486df8b42bd66872892d08efb2c5a



Questo è l’ errore che ricevo quando clicco sul link




Error 404

Il sistema non ha potuto trovare l'azione "RegistrazioneUtente&codice_fiscale=plnygg78z01q123c&codice_verifica=93506fc2a3a486df8b42bd66872892d08efb2c5a" richiesta.



Ora capisco che l’ azione non si trova…ma è normale perchè l’ azione è solo RegistrazioneUtente.

Pero non riesco a capire come passargli il link e fargli capire che se codice_fiscale e codice_verifica passano la verifica…debba attivarmi l’ utente e mostrargli il messaggio.

Qualcuno può aiutarmi per favore. Grazie in anticipo

Mi verrebbe da dire 100099045840390348583490 parolacce visto i 2 errori rilevati.

  1. errore nella stringa



$message .="<a href='http://www.miodominio.it/Site/RegistrazioneUtente&codice_fiscale=".$model->codice_fiscale."&codice_verifica=".$salvauser->codice_verifica."'>Conferma Attivazione</a>";



Risolto cambiando il primo & con ?:




$message .="<a href='http://www.miodominio.it/Site/RegistrazioneUtente?codice_fiscale=".$model->codice_fiscale."&codice_verifica=".$salvauser->codice_verifica."'>Conferma Attivazione</a>";



  1. errore:

nel pezzo di codice:




foreach($fine_ricerche as $fine_ricerca)

{

$esiste = true; 

}

if($esiste === true)

{

$connessione = Yii::app()->db;

$attiva_utente = "UPDATE webuser SET abilitato=1 WHERE ";       

$attiva_utente .="codice_fiscale='$codice_fiscale' AND codice_verifica='$codice_verifica'";

$utente_attivato = $connessione->createCommand($attiva_utente)->ecxecute();



in EXECUTE c’è una C davanti alla X.

Quindi risolto scrivendo in modo corretto EXECUTE.

E via a martellate sulle dita!!!!