Codice PHP:
<?php
//Includo i files MySQL
include("../DataBase/FunzioniMysql.php");
$Oggetto = new MySQL();
$Oggetto->Connetti();
// Interfaccia
interface Controllo_Form {
public function Controllo_ID();
public function Controllo_Pwd();
public function Controllo_EMail();
public function Controllo_Nome();
public function Controllo_Cognome();
public function Controllo_Nascita();
public function Controllo_Tutto();
public function Set_Messaggi_Di_Errore($Errori);
}
// Classe Dati_Errori
abstract class Dati_Errori implements Controllo_Form {
public $ID;
public $Pwd;
public $Pwd1;
public $EMail;
public $Nome;
public $Cognome;
public $Nascita;
public $Messaggi_Di_Errore = array (
'ID1' => 'Il Nome Utente deve essere composto dai 3 ai 20 Caratteri.',
'ID2' => 'Il Nome utente può contenere solo lettere e/o numeri.',
'ID3' => 'Il Nome Utente scelto è gia in uso da un altro utente.',
'Password1_1' => 'La password può contenere dai 3 ai 12 caratteri.',
'Password1_2' => 'La password deve contenere lettere e/o numeri.',
'Password2_1' => 'La password di conferma può contenere dai 3 ai 12 caratteri.',
'Password2_2' => 'La password di conferma deve contenere lettere e/o numeri.',
'Confronto' => 'Le due password inserire non coincidono.',
'EMail' => 'L\' E-Mail inserita non è valida.',
'Nome1' => 'Il nome può contenere dai 3 ai 12 caratteri.',
'Nome2' => 'Il nome deve contenere solo lettere.',
'Cognome1' => 'Il cognome può contenere dai 3 ai 12 caratteri.',
'Cognome2' => 'Il cognome deve contenere solo lettere.',
'Nascita' => 'L\'anno di nascita inserito non è valido.',
);
private $Messaggi_Di_Errore_Tutti = '';
public $Dati_Validi = array();
// Costruttore
public function __construct()
{
$this->ID = trim($_POST['ID']);
$this->Pwd = trim($_POST['Pwd']);
$this->Pwd1 = trim($_POST['Pwd1']);
$this->EMail = trim($_POST['EMail']);
$this->Nome = trim($_POST['Nome']);
$this->Cognome = trim($_POST['Cognome']);
$this->Nascita = trim($_POST['Nascita']);
}
// Metodi di segnalazione di errori
protected function Segna_Errori($field) {
if($this->Messaggi_Di_Errore[$field]) {
$this->Messaggi_Di_Errore_Tutti .= "
" . $this->Messaggi_Di_Errore[$field] . "</p>";
}
else {
$this->Errori_Interni();
}
}
protected function Ricevi_Messaggi_Di_Errore() {
if($this->Messaggi_Di_Errore_Tutti != '') {
echo "<center><h1>Ricontrolla i dati inseri nella pagina.</h1></center>";
include("Form.php");
echo "<center>";
echo $this->Messaggi_Di_Errore_Tutti;
echo "</center>";
return false;
}
else {
echo "<h1>I dati sono stati inviat correttamente</h1>";
return true;
}
}
protected function Errori_Interni() {
trigger_error('Errore indefinito.', E_USER_WARNING);
}
}
class Controlla_Form extends Dati_Errori {
// Metodi Di controllo
public function Controllo_ID()
{
$Convalida = mysql_query("SELECT * FROM Utenti WHERE UserName = '$this->ID'");
$a = 0;
if(strlen($this->ID)<3 || strlen($this->ID)>20)
{
$this->Segna_Errori('ID1');
}
if(!is_string($this->ID) || !ctype_alnum($this->ID))
{
$this->Segna_Errori('ID2');
}
if(mysql_num_rows($Convalida) != $a)
{
$this->Segna_Errori('ID3');
}
if(strlen($this->ID)>=3 && strlen($this->ID)<=20 && is_string($this->ID) && ctype_alnum($this->ID) && mysql_num_rows($Convalida) == $a)
{
$this->Dati_Validi['ID'] = htmlentities($this->ID, ENT_QUOTES);
}
}
public function Controllo_Pwd()
{
if(strlen($this->Pwd)<3 || strlen($this->Pwd)>12)
{
$this->Segna_Errori('Password1_1');
}
if(!is_string($this->Pwd) || !ctype_alnum($this->Pwd))
{
$this->Segna_Errori('Password1_2');
}
if(strlen($this->Pwd1)<3 || strlen($this->Pwd1)>12)
{
$this->Segna_Errori('Password2_1');
}
if(!is_string($this->Pwd1) || !ctype_alnum($this->Pwd1))
{
$this->Segna_Errori('Password2_2');
}
if($this->Pwd != $this->Pwd1)
{
$this->Segna_Errori('Confronto');
}
if(strlen($this->Pwd)>=3 && strlen($this->Pwd)<=12 && is_string($this->Pwd) && ctype_alnum($this->Pwd) && strlen($this->Pwd1)>=3 && strlen($this->Pwd1)<=12 && is_string($this->Pwd1) && ctype_alnum($this->Pwd1) && $this->Pwd != $this->Pwd1)
{
$this->Dati_Validi['Password'] = $this->Pwd;
}
}
public function Controllo_EMail()
{
if(is_string($this->EMail)) {
$this->Dati_Validi['EMail'] = strip_tags($this->EMail);
}
else {
$this->Segna_Errori('EMail');
}
}
public function Controllo_Nome()
{
if(strlen($this->Nome)<3 || strlen($this->Nome)>20)
{
$this->Segna_Errori('Nome1');
}
if(!is_string($this->Nome) || !ctype_alnum($this->Nome))
{
$this->Segna_Errori('Nome2');
}
if(strlen($this->Nome)>=3 && strlen($this->Nome)<=20 && is_string($this->Nome) && ctype_alnum($this->Nome))
{
$this->Dati_Validi['Nome'] = htmlentities($this->Nome, ENT_QUOTES);
}
}
public function Controllo_Cognome()
{
if(strlen($this->Cognome)<3 || strlen($this->Cognome)>20)
{
$this->Segna_Errori('Cognome1');
}
if(!is_string($this->Cognome) || !ctype_alnum($this->Cognome))
{
$this->Segna_Errori('Cognome2');
}
if(strlen($this->Cognome)>=3 && strlen($this->Cognome)<=20 && is_string($this->Cognome) && ctype_alnum($this->Cognome))
{
$this->Dati_Validi['Cognome'] = htmlentities($this->Cognome, ENT_QUOTES);
}
}
public function Controllo_Nascita() {
if((intval($this->Nascita) >= 1920) && (intval($this->Nascita) <= 2010)) {
$this->Dati_Validi['Nascita'] = (int)$this->Nascita;
}
else {
$this->Segna_Errori('Nascita');
}
}
// Funzione Controllo_Tutto
public function Controllo_Tutto() {
$this->Controllo_ID();
$this->Controllo_Pwd();
$this->Controllo_EMail();
$this->Controllo_Nome();
$this->Controllo_Cognome();
$this->Controllo_Nascita();
return $this->Ricevi_Messaggi_Di_Errore();
}
public function Set_Messaggi_Di_Errore($Errori) {
foreach($Errori as $Messaggi_Di_Errore_Tutti => $txt) {
$this->Messaggi_Di_Errore[$Messaggi_Di_Errore_Tutti] = $txt;
}
}
}
$Form = new Controlla_Form();
if(!$Form->Controllo_Tutto()) {
exit();
}
else {
echo "
[b]Nome Utente:[/b]" . $Form->Dati_Validi['ID'] . "</p>";
echo "
[b]Password:[/b]" . trim($_POST['Pwd']) . "</p>";
echo "
[b]Indirizzo E-Mail:[/b]" . $Form->Dati_Validi['EMail'] . "</p>";
echo "
[b] Nome:[/b]" . $Form->Dati_Validi['Nome'] . "</p>";
echo "
[b]Cognome:[/b]" . $Form->Dati_Validi['Cognome'] . "</p>";
echo "
[b]Anno di nascità:[/b]" . $Form->Dati_Validi['Nascita'] . "</p>";
echo "clicca <a href=\"../../Home.php\">qui</a> per tornare alla home";
// Query per inserire i dati
//Codice di conferma
include("Random.php");
$Obj = new Random();
$Obj -> Genera();
$Codice = $Obj->Stringa;
//Dati
$_1 = strtolower($Form->Dati_Validi['ID']);
$_2 = sha1(trim($_POST['Pwd']));
$_3 = $Form->Dati_Validi['EMail'];
$_4 = strtolower($Form->Dati_Validi['Nome']);
$_5 = strtolower($Form->Dati_Validi['Cognome']);
$_6 = $Form->Dati_Validi['Nascita'];
$_8 = "NC";
$_9 = trim($Codice);
//Inserisco I Dati Nel DB
$Oggetto -> Query("INSERT INTO Utenti (UserName, Password, EMail, Nome, Cognome, Nascita, Iscrizione, Convalida, Codice )
VALUES
('$_1','$_2','$_3','$_4','$_5','$_6','now()','$_8','$_9')") or die (mysql_error());
//Invio della mail
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$Destinatario = "$Form->Dati_Validi['EMail']";
// IL SOGGETTO DELLA MAIL
$Oggetto = "Convalida la registrazione a GoldMyr";
// COSTRUZIONE DEL CORPO DEL MESSAGGIO
$Messaggio = "Grazie per esserti iscritto a GoldMyr.\n";
$Messaggio .= "Per convalidare l'iscrizione clicca qui:\n";
$Messaggio .= "http://goldmyr.com/1/GestioneUtenti/2/Convalida.php\n";
$Messaggio .= "Speriamo che il sito ti piaccia e che tu partecipi alle varie attività";
// INVIO DELLA MAIL
@mail($Destinatario,$Oggetto,$Contenuto);
if(@mail($Destinatario,$Oggetto,$Contenuto))
{
echo "Entro poco ti arrivera una mail con un link per confermare l'iscrizione.";
}
else
{
echo "Si sono verificati dei problemi nell'invio della mail di conferma.";
}
//Invio della mail
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$Destinatario = "$Form->Dati_Validi['EMail']";
// IL SOGGETTO DELLA MAIL
$Oggetto = "Convalida la registrazione a GoldMyr";
// COSTRUZIONE DEL CORPO DEL MESSAGGIO
$Messaggio = "Grazie per esserti iscritto a GoldMyr.\n";
$Messaggio .= "Per convalidare l'iscrizione clicca qui:\n";
$Messaggio .= "http://goldmyr.com/1/GestioneUtenti/2/Convalida.php\n";
$Messaggio .= "Speriamo che il sito ti piaccia e che tu partecipi alle varie attività";
// INVIO DELLA MAIL
@mail($Destinatario,$Oggetto,$Contenuto);
if(@mail($Destinatario,$Oggetto,$Contenuto))
{
echo "Entro poco ti arrivera una mail con un link per confermare l'iscrizione.";
}
else
{
echo "Si sono verificati dei problemi nell'invio della mail di conferma.";
}
//Disconnetti Dal DataBase
$Oggetto->Disconnetti();
}
?>
Mi sembra che ci sia ttt