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