<?php
session_start();
?>
<script type="text/javascript">
<!--
//Funzione per inserire gli slash nell'inserimento della data di nascita
function addSlashes(input) {
var v = input.value;
if (v.match(/^\d{2}$/) !== null) {
input.value = v + '/';
} else if (v.match(/^\d{2}\/\d{2}$/) !== null) {
input.value = v + '/';
}
}
//-->
</script>
<script type="text/javascript">
<!--
//Script per far apparirre i placeholder anche in IE
//Prima controlla che si stia usando IE poi se fosse così applica lo script
$(document).ready(function() {
if($.browser.msie) {
$('[placeholder]').focus(function() {
var element = $(this);
if (element.val() == element.attr('placeholder')) {
element.val('');
element.removeClass('placeholder');
}
}).blur(function() {
var element = $(this);
if (element.val() == '' || element.val() == element.attr('placeholder')) {
element.addClass('placeholder');
element.val(element.attr('placeholder'));
}
}).blur();
$('[placeholder]').parents('form').submit(function() {
$(this).find('[placeholder]').each(function() {
var element = $(this);
if (element.val() == element.attr('placeholder')) {
element.val('');
}
})
})
}
});
//-->
</script>
<script type="text/javascript">
<!--
//Controllo forza password
$(document).ready(function(){
var width = $('#result').width();
var actRate = 0;
$('#bar').css({'height':'100%','width':0,'background-color':'red'});
var lowerCase = /[a-z]+/;
var upperCase = /[A-Z]+/;
var numbers = /[0-9]+/;
var specialChars = /[\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\072\073\074\075\076\077\100\133\135\137\173\174\175]+/;
var specialCharsBonus = /[\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\072\073\074\075\076\077\100\133\135\137\173\174\175]{4,}/;
$('#password').keyup(function(){
var pwd = $('#password').val()
var rate = 0;
if(pwd.length >= 6)
{
if(lowerCase.test(pwd))
{
rate += 10;
}
if(upperCase.test(pwd))
{
rate += 10;
}
if(numbers.test(pwd))
{
rate += 10;
}
if(specialChars.test(pwd))
{
rate += 20;
}
if(specialCharsBonus.test(pwd))
{
rate += 30;
}
if(pwd.length > 12)
{
rate += 20;
}
}
var barWidth = rate * (width / 100);
$('#bar').animate({
width: barWidth
},500, function(){
if(rate < 25)
{
$('#bar').css('background-color', 'red');
}
if(rate >= 25 && rate < 50)
{
$('#bar').css('background-color', '#FF7F2A');
}
if(rate >= 50 && rate < 75)
{
$('#bar').css('background-color', '#AAFF55');
}
if(rate >= 75)
{
$('#bar').css('background-color', 'green');
}
});
});
});
//-->
</script>
<style type="text/css">
#result
{
border: 1px solid black;
background-color:#CCC;
padding: 2px;
width: 200px;
height: 10px;
}
.radius {
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
}
</style>
</head>
<body>
<div id="contenitore">
<?php
include 'header3.php';
?>
<div id="contenuto_reg" class="clearfix">
<?php
if(isset($_POST['invia'])){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//Filtro dati con MYSQLI
$nome = $mysqli->real_escape_string(trim($_POST['nome']));
$cognome = $mysqli->real_escape_string(trim($_POST['cognome']));
$eta = $mysqli->real_escape_string(trim($_POST['nascita']));
$email = $mysqli->real_escape_string(trim($_POST['email']));
$interessi = $mysqli->real_escape_string(trim($_POST['interessi']));
$username = $mysqli->real_escape_string(trim($_POST['username']));
$password = $mysqli->real_escape_string(trim($_POST['password']));
$password2 = $mysqli->real_escape_string(trim($_POST['password2']));
$codiceconferma = md5(uniqid(rand()));
/**
* checkdnsrr for Windows (from php.net)
*
* @param string $host a hostname
* @param string $type dns type check
* @return boolean
*/
function win_checkdnsrr($host, $type='MX') {
if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') {
return false;
}
if (empty($host)) {
return false;
}
$types = array('A', 'MX', 'NS', 'SOA', 'PTR', 'CNAME', 'AAAA', 'A6', 'SRV', 'NAPTR', 'TXT', 'ANY');
if (!in_array($type, $types)) {
user_error("checkdnsrr() Type '$type' not supported", E_USER_WARNING);
return false;
}
@exec('nslookup -type=' . $type . ' ' . escapeshellcmd($host), $output);
foreach ($output as $line) {
if (preg_match('/^' . $host . '/', $line)) {
return true;
}
}
return false;
}
// Definisco la funzione
if (!function_exists('checkdnsrr')) {
function checkdnsrr($host, $type='MX') {
return win_checkdnsrr($host, $type);
}
}
/**
* Email_Validator 1.0
*
* <code>
* $email = '[email protected]';
* if(Email_Validador::validate($email))
* echo "Valid email address.";
* else echo "Invalid email address.";
* </code>
*
* @author David Tavarez <[email protected]>
* @version 1.0
*/
final class Email_Validador {
/**
* Lista dei domini in black list.
*
* @var array
* @access private
*
static private $_blacklist_domains = array("bl.spamcop.net", "list.dsbl.org", "sbl.spamhaus.org");
/**
* Verify if a domain is on black list.
*
* @param string $domain domain name.
* @access public
* @return boolean
*/
public static function check_domain_is_blacklisted($domain) {
if (preg_match("/^[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/i", $domain)) {
$ip = gethostbyname($domain);
$reverse_ip = implode(".", array_reverse(explode(".", $ip)));
foreach (self::$_blacklist_domains as $dnsbl_list) {
if (checkdnsrr($reverse_ip . "." . $dnsbl_list . ".", "A"))
return $reverse_ip . "." . $dnsbl_list;
}
}
return false;
}
/**
* Verifico che l'email sia nel formato corretto
*
* @param string $email an email adress.
* @access public
* @return boolean
*/
public static function check_string($email) {
return preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])' . '(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i', $email);
}
/**
* Completo la validazione dell'indirizzo email
*
* @param string $email a email adress.
* @access public
* @return boolean
*/
public static function validate($email) {
if (self::check_string($email)) {
$ar = explode("@", $email);
$domain = $ar[1];
unset($ar);
if (self::check_domain_is_blacklisted($domain)) {
if (self::validate_domain($domain))
return true;
}
}
return false;
}
/**
* Verifico che sia valido il dominio
*
* @param string $domain a domain name.
* @access public
* @return boolean
*/
public static function validate_domain($domain) {
if (preg_match("/^[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/i", $domain)) {
if ($this->_domain_is_blacklisted($domain) === false) {
if (checkdnsrr($domain, 'MX'))
return true;
if (checkdnsrr($domain, 'A'))
return true;
}
}
}
}
//Funzione di controllo dell'inserimento dati corretti.
function ver_testo($testo,$min,$max){
// $pattern="/^(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,15}){".$min.",".$max."}$/"; //Controllo lunghezza username tra 6 e 15 caratteri compresi i jolly
$pattern="/^[a-zA-Z0-9]{".$min.",".$max."}$/";//non prende direttamente il min e il max
if(preg_match($pattern, $testo)){
//testo ok
return TRUE;
}else{
return FALSE;
}
} //Chiudo funzione verifica lunghezza dati inseriti
//preparo un messaggio a vuoto per gli errori
$ok_ko="";
$visibilità = "hidden";
if(!ver_testo($username,6,15)){$ok_ko.="Username non corretto, deve essere compreso tra 6 e 15 caratteri compresi i caratteri jolly <br />";
echo "<meta http-equiv='Refresh' content='200; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";}
if(!ver_testo($password,6,12)){$ok_ko.="La password deve essere composta da 6 a 12 caratteri <br />";
echo "<meta http-equiv='Refresh' content='200; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";}
if(!ver_testo($password2,6,12)){$ok_ko.="La password di conferma non coincide con la prima <br />";}
if($password != $password2){$ok_ko.="Le password non coincidono <br />";}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){$ok_ko.="L'indirizzo email non è valido <br />";}
function controllodata($eta){
//"/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/"
if (!preg_match("/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/", $eta)) {
return false;
} else {
$arrayData = explode("/",$eta );
$Giorno = $arrayData[0];
$Mese = $arrayData[1];
$Anno = $arrayData[2];
if(!checkdate($Mese,$Giorno,$Anno)){
return FALSE;
} else {
return TRUE;
}
}
}
if(!controllodata($eta)){$ok_ko.="La data non è stata inserita in modo corretto <br />";}
//if(preg_match("/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/", $eta)){$ok_ko.="Devi inserire la tua eta <br />";};
if ($ok_ko != "") {
$visibilità = "visibile";
echo"<div style=\"visibility:$visibilità;\" class=\"ok_ko\"></div>";
$ok_ko ="";
echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
if($ok_ko == ""){
//se è rimasto vuoto non ci sono errori
//Controllo se già presente un username o email nel DB
$verificauser = $mysqli->query("SELECT * FROM utenti WHERE username='$username' OR email='$email'");
if ($userusato = ($verificauser->num_rows == 1)){
//avvisi e torni al form pulito
echo '<div id="errore">ATTENZIONE: Username o Email già esistenti, scegline un altro. <br /></div>';
echo "<meta http-equiv='Refresh' content='5; URL=TEST%20FORM%20REAL%20TIME.php'>";
//echo "ATTENZIONE: Username o Email già esistenti, scegline un altro. <br />";
//echo "<meta http-equiv='Refresh' content='300; URL=TEST%20FORM%20REAL%20TIME.PHP'>";
} else {
//Invio i dati dell'utente al db
$inviautentitemp = $mysqli->query("INSERT INTO utenti_temp (codiceconferma, nome, cognome, eta, interessi, username, password, email) VALUES ('$codiceconferma', '$nome', '$cognome', '$eta', '$interessi', '$username', '$password', '$email')")or die ($mysqli->error);
if ($inviautentitemp) {
var_dump($inviautentitemp);
//se tutto è OK da qua preparo l'invio della mail di conferma per l'avvenuta registrazione.
include_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // attiva l'invio tramiteSMTP
$mail->isHTML(true);
$mail->SMTPDebug= 4;
$mail->Host = "smtps.aruba.it"; // ok mail SMTP aruba con SSL
$mail->Port = 465; //Porta SSL con autenticazione
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Username = "[email protected]"; //username della casella di posta creata ad hoc
$mail->Password = "pass"; //Password dellac asella di posta
// Impostazioni invio mail al cliente
$mail->Setfrom ("[email protected]","Biblionet"); //Inserire la mail dell'amministratore ed il nome del sito
$mail->AddReplyTo("[email protected]","Amministratore");
$mail->AddAddress ($email); //Mail di chi si è iscritto che riceverà la richiesta di conferma
$mail->AltBody = "Il tuo client di posta non è settato per la ricezione in HTML";
$mail->Subject = "Conferma di registrazione al sito www.biblionetsanmaurizio.com";
$testo="<p>Ecco il tuo codice di attivazione</p><br />";
$testo.="<p>Clicca sul link per confermare la registrazione</p><br />";
$testo.="<a href=\"http://siti/Biblionet%20Nuova%20Live%20validation/benvenuto.php?passkey=$codiceconferma\">Clicca qui</a>";
$mail->Body =$testo;
if ($mail->Send())
{
echo "Mail inviata con successo";
} else {
echo "Si e' verificato un errore nell'invio della mail";
//echo $mail->ErrorInfo;
}
}
else {
//Se non riesco ad inviare la mail do questo errore
echo "ERRORE di connessione, ti preghiamo di riprovare più; tardi<br />";
echo "<meta http-equiv='Refresh' content='500; URL=Newindex.php'>";
}
}
} else {
//Se i campi danno errori do questo avviso
echo $ok_ko;
echo "<meta http-equiv='Refresh' content='100; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
}
} else {
?>
<div id="content">
<form id="jform" action='<?php echo $_SERVER['PHP_SELF']; ?>' method="post">
<!--<form id="jform" action="registrazioneuser2A.php" method="post">-->
<fieldset>
<legend>Informazioni Personali</legend>
<p>
<label for="nome" class="block">Nome:</label>
<input type="text" name="nome" id="nome" placeholder="Il tuo Nome" />
</p>
<p>
<label for="cognome" class="block">Cognome:</label>
<input type="text" name="cognome" id="cognome" placeholder="Il tuo Cognome" />
</p>
<p>
<label for="nascita" class="block">Data di nascita <small>(gg/mm/aaaa)</small>:</label>
<input type="text" name="nascita" id="nascita" placeholder="Quando sei nato" onKeyUp="addSlashes(this);" value=""/>
</p>
</fieldset>
<fieldset>
<legend>Username</legend>
<p>
<label for="username" class="block">Username</label>
<input type="text" name="username" id="username" placeholder="Nickname di fantasia"/>
</p>
</fieldset>
<fieldset>
<legend>Email</legend>
<p>
<label for="email" class="block">Email <small>([email protected])</small>:</label>
<input type="text" name="email" id="email" placeholder="La tua mail"/>
</p>
</fieldset>
<fieldset>
<legend>Interessi</legend>
<p>
<label for="interessi" class="block"></label>
<textarea id="interessi" name="interessi" cols="55" rows="10" placeholder="Scrivici qualcosa su di te." ></textarea>
</p>
</fieldset>
<fieldset>
<p>
<label for="password" class="block">Password:</label>
<input type="password" name="password" id="password" />
</p>
<label><small>Quanto è forte la tua password?</small></label>
<div id="result" class="radius">
<div id="bar" class="radius"></div>
</div>
<p>
<label for="password2" class="block">Conferma Password:</label>
<input type="password" name="password2" id="password2" />
</p>
</fieldset>
<!-- <fieldset>
<p>
<img id="siimage" style="border: 1px solid #000; margin-right: 15px; margin-top: 15px" src="./securimage/securimage_show.php?sid=<?php echo md5(uniqid()) ?>" alt="CAPTCHA Image" align="left">
<object type="application/x-shockwave-flash" data="securimage/securimage_play.swf?bgcol=#ffffff&icon_file=./images/audio_icon.png&audio_file=./secureimage_play.php"
height="32" width="32">
<param name="movie" value="./securimage_play.swf?bgcol=#ffffff&icon_file=./images/audio_icon.png&audio_file=./securimage_play.php" />
</object>
<a tabindex="-1" style="border-style: none;" href="#" title="Cambia Immagine" onclick="document.getElementById('siimage').src = 'secureimage/securimage_show.php?sid=' + Math.random(); this.blur(); return false"><img src="securimage/images/refresh.png"
alt="Reload Image" onclick="this.blur()" align="bottom" border="0"></a><br />
<strong>Inserisci il codice*:</strong><br />
<input type="text" id="captcha_code" name="captcha_code" size="12" maxlength="8" />
</p>
</fieldset>-->
<p>
<button type="submit" id="send" name="invia">Invia</button>
<button type="reset" class="send" onclick="self.location.reload(true)">Reset</button>
</p>
</form>
</div><!-- content -->
<?php
}
?>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="js/validation2.js" charset="utf-8"></script>
</div><!--contenuto-->
</div><!--contenitore-->
<div class="vuoto"></div>
<div id="footer"><p>Copyright - Tutti i diritti sono riservati - E' vietata la riproduzione anche parziale</p></div>
</body>
</html>