0
Hi good evening/morning/afternoon. I’m having a problem with a simple registration input. It just doesn’t recognize the "-" character. I made an email to test "[email protected]" only when you return with the message whether or not it was sent it says that the email was sent to "[email protected]". I have no idea what it is (HERE GOES THE CODE PART OF THE FORM
`
<tbody>
<tr>
<th height="27" align="left">
Email: <font style="color:#FF0000;font-size:10px;">*</font>
</th>
<th align="left">
Confirma email: <font style="color:#FF0000;font-size:10px;">*</font>
</th>
</tr>
<tr>
<td align="left">
<input id="email" type="text" style="width:340px;" autocomplete="off" name="email"></input>
</td>
<td align="left">
<input id="confirm_email" type="text" style="width:340px;" autocomplete="off" name="email2"></input>
</td>
</tr>
</tbody>
</table>`
and php:
<?php
/*
*/
include('../_conf/conf.php');
$validacaocord = "check";
$ck_Config = mssql_fetch_array(mssql_query("SELECT * FROM ".DB_ACC.".dbo.SITE_CONFIG"));
if($ck_Config['Cadastrar'] == 0)
{
include('../_erros/manutencao_sistema.php');
}
if(anti_injection($_POST['checkregister']) != $validacaocord)
{
include header('Location: ../index.php');
}
else
{
if ($_POST['sbmtReg']) {
if($_GET['write'] == true)
if(preg_match("/[^0-9a-zA-Z]/i", $_GET['write']))
{
include header('Location: ../index.php');
}
function valid_email($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}
$userName = anti_injection($_POST['userName']);
$userPwd = anti_injection($_POST['userPwd']);
$userPwd2 = anti_injection($_POST['userPwd2']);
$email = anti_injection($_POST['email']);
$email2 = anti_injection($_POST['email2']);
$PergSecreta = anti_injection($_POST['PergSecreta']);
$RespPergun = anti_injection($_POST['RespPergun']);
$Hash = md5(uniqid());
$Chave = anti_injection($_POST['Chave']);
$Nome = anti_injection($_POST['Nome']);
$Cidade = anti_injection($_POST['Cidade']);
$Enquete = anti_injection($_POST['Enquete']);
$sexo = anti_injection($_POST['sexo']);
//TEMPJOGO// 0
$Apelido = anti_injection($_POST['Apelido']);
$cpf = anti_injection($_POST['cpf']);
//Ativado// 0
$Pais = anti_injection($_POST['Pais']);
$cep = anti_injection($_POST['cep']);
$tel = anti_injection($_POST['tel']);
$localizacao = anti_injection($_POST['localizacao']);
$MyTermos = anti_injection($_POST['termoss']);
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::://
$captcha = anti_injection($_POST['captcha']);
$captchafinal = anti_injection($_POST['captchafinal']);
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::://
///////////Restricao de Nomes login////////////
$string = anti_injection($userName);
$os = array("ADM", "Admin", "GM", "GameMaster", "origi", "machine1", "mania", "adminlixo", "adminnub", "gmlixo", "mamotinho", "mamotinho1", "jeffynho", "serverlixo", "gamenub", "servernub", "falido", "nexus", "sonny", "proxy", "gamemaxx", "estsoft", "cbgames", "pirata", "piratagames", "brutal", "thief");
/////////////END Names/////////////////
/////////////SISTEMA DE IMPEDI DOMINIO DE E-MAIL TEMPORARIO///////////////////////////
$dominioT1 = substr ($email2, strpos ($email2, '@')+1); // Divisão de Dominio após¨ "@"
///////////Restricao de Nomes login////////////
$RestDominio = array("boxtemp.com.br", "getairmail.com", "guerrillamail.com", "sharklasers.com", "mailinator.com", "trashymail.com", "dunflimblag.mailexpire.com", "trbvm.com", "meltmail.com", "mailnesia.com", "filzmail.com", "trashmail.com", "yopmail.com", "mailtemp.net", "ce.mintemail.com", "mt2014.com");
/////////////THE END DE IMPEDI DOMINIO DE E-MAIL TEMPORARIO///////////////////////////
$SQL_Q1 = mssql_query("SELECT 1 FROM ".DB_ACC.".dbo.cabal_auth_table WHERE ID ='". $userName ."';");
$SQL1 = mssql_num_rows($SQL_Q1);
$SQL_Q2 = mssql_query("SELECT 1 FROM ".DB_ACC.".dbo.cabal_auth_table WHERE Email='". $email ."';");
$SQL2 = mssql_num_rows($SQL_Q2);
$SQL_Q3 = mssql_query("SELECT 1 FROM ".DB_CCA.".dbo.CashAccount WHERE ID='". $userName ."';");
$SQL3 = mssql_num_rows($SQL_Q3);
if($SQL1 > 0)
$Error .= "<li>Login ".$userName." ja esta em uso.</li> ";
if($SQL2 > 0)
$Error .= "<li>Email ".$email." ja esta em uso.</li> ";
if($SQL3 > 0)
$Error .= "<li>Login ".$userName." esta registrado no banco de dados (Cash) por favor entre em contato com a administração.</li> ";
if(valid_email($email)==FALSE)
$Error .= "<li> Email , formato invalido, exemplo [email protected] </li>";
if($email2 <> $email)//VERIFICAR SI E-MAIL CORRESPONDE AO MESMO RE-DIGITADO //
$Error .= "<li> E-Mail Nao Corresponde ao primeiro E-Mail Digitado Acima. <br> </li>";
if(strlen($userName) < 4 || strlen($userName) > 15)
$Error .= "<li> Login requer minimo 4 e maximo 15 digitos </li>";
if(preg_match("/[^0-9a-zA-Z]/i", $userName))
$Error .= "<li> Login , digite apenas letras ou numeros </li>";
if(strlen($userPwd) < 5 || strlen($userPwd) > 15)//Verificacao de Password //
$Error .= "<li> Senha requer minimo 5 e maximo 15 digitos </li>";
if(preg_match("/[^0-9a-zA-Z]/i", $userPwd))
$Error .= "<li> Senha , digite apenas letras ou numeros </li>";
if($captcha != $captchafinal)//ERRO CALCULO CAPTACHE//
$Error .= "<li> Os caracteres mostrados na imagem acima nao corresponde aos caracteres que voce digitou </li>";
if (in_array($string, $os))//Restricao de Nomes de Usuario//
$Error .= "<li> Voce nao pode ultilizar a palavra ( $userName ) no Campo Login. </li>";
if (in_array($dominioT1, $RestDominio))//RESTRINGIR DOMINIO TEMPORARIO//
$Error .= "<li> Desculpe esse é um E-Mail Temporario Não Permitimos, tente utilizar outro dominio de E-Mail. </li>";
if($MyTermos != 1)
$Error .= "<li>É Obrigatorio você aceite os termos de serviço</li>";
if($userPwd2 <> $userPwd)// verificacao de pasword //
$Error .= "<li> Re-senha incorreta <br> </li>";
if(strlen($userPwd2) < 5 || strlen($userPwd2) > 15)
$Error .= "<li> Re-senha requer minimo 5 e maximo 15 digitos </li>";
if(strlen($Chave) < 4 || strlen($Chave) > 19)
$Error .= "<li> Palavra Chave requer minimo 4 e maximo 19 digitos </li>";
if(strlen($Nome) < 3 || strlen($Nome) > 15) //Verificacao de Quantidade de Caracteres Digitados no Campo "NOME"
$Error .= "<li> Nome requer minimo 4 e maximo 10 digitos </li>";
if(preg_match("/[^0-9a-zA-Z]/i", $Nome))
$Error .= "<li> Nome , digite apenas letras </li><br/><li> Nome , Nao Use Espacos </li>";
if(preg_match("/[^a-zA-Z]/i", $Apelido))
$Error .= "<li> Apelido , digite apenas letras </li><br/><li> Apelido , Nao Use Espacos </li>";
if($Apelido == '')
$Error .= "<li> Campo Apelido não pode fica em branco. </li>";
if(strlen($Apelido) < 3 || strlen($Apelido) > 15) //Verificacao de Quantidade de Caracteres Digitados no Campo "Apelido"
$Error .= "<li> Apelido requer minimo 4 e maximo 14 digitos </li>";
if(preg_match("/[^0-9a-zA-Z]/i", $RespPergun))
$Error .= "<li> Resposta Secreta , digite apenas letras </li><br/><li> Resposta Secreta , Nao Use Espacos </li>";
if(strlen($RespPergun) < 3 || strlen($RespPergun) > 16)
$Error .= "<li> O Campo Resposta Secreta Reque no Minimo 4 e no Maximo 15 Caracteres! </li>";
if(preg_match("/[^a-zA-Z]/i", $Cidade))
$Error .= "<li> Cidade , digite apenas letras </li><br/><li> Apelido , Nao Use Espacos </li>";
if($Cidade == '')
$Error .= "<li> Nao e possivel completo o cadastro com o Campo Cidade Em Branco! </li>";
if($Sobrenome == $Nome) //Error Sobrenome Igual a Nome e um uma formar de valida o nome correto d apessoa caso tente coloca os 2 nome iguais//
$Error .= "<li> Error no Campo ,Sobrenome. por favor nao tente nos enganar colocando nome e sobrenome iguais!</li>";
if(preg_match("/[^0-9a-zA-Z]/i", $userName))
$Error .= "<li> Palavra Chave , digite apenas letras ou numeros </li>";
if(empty($Error) == false)
echo '<div class=\'checar\' style=\'text-align:left;\'>
<b><font style=\'color:#F30F06; font-size:14px;\'>Erros encontrados</font></b><br />
<ul>
<li>'.$Error.'</li>
</ul>
</div>';
else
{
require("../smtp/class.phpmailer.php");
$mail = new PHPMailer();
$mail->SetLanguage("br", "smtp/"); //Idioma
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = MAIL_HOST; //Host do servidor SMTP
$mail->Username = MAIL_USER; //Nome do usuario SMTP
$mail->Password = MAIL_PASS; //Senha do usuario SMTP
$mail->From = MAIL_FROM; //Email de quem envia
$mail->FromName = MAIL_NAME; //nome de quem ta enviando, vai aparecer na coluna "De:"
//INICIO --- Quem vai receber-----------------------------------------------
$mail->AddAddress("$email");
//FIM --- Quem vai receber--------------------------------------------------
$mail->AddReplyTo(MAIL_FROM); //Quem ira receber a resposta (quando a pessoal responder)
$mail->IsHTML(true);
$mail->CharSet = 'UTF-8';
//Assunto
$mail->Subject = "A batalha vai começar...";
//Corpo da mensagem, pode usar tags html
$mail->Body ="";
if(!$mail->Send())
{
echo "A mensagem nao pode ser enviada. <p>";
echo "Erro do envio: " . $mail->ErrorInfo;
exit;
}
//FUNÇÃO SEPARAR DATA DE NASCIMENTO COM VIRGULA//
$CreatDate = $CampoData;
$Dat1 = substr($CreatDate, 0, 2); // Dia
$Dat2 = substr($CreatDate, 2,2); // Mês
$Dat3 = substr($CreatDate, 4, 4); // Ano
$DatFinal = "$Dat1-$Dat2-$Dat3";
//END FUNÇÃO SEPARAR DATA DE NASCIMENTO COM VIRGULA//
$ROOT = $_SERVER["REMOTE_ADDR"];
$MEUIP = str_replace("." , "" , $ROOT ); // Primeiro tira os pontos
$confirm_code= md5 (uniqid(rand())).sha1($email.$userName);
$hash = md5(date('[d-m-Y]'));
mssql_query('exec '.DB_ACC.'.dbo.tool_registerAccount "'. $userName .'", "'. $userPwd .'", "'. $email .'", "'. $PergSecreta .'", "'. $RespPergun .'", "'. $Hash .'", "'. $Chave .'", "'. $Nome .'", "'. $Cidade .'", "'. $Enquete .'", "'. $sexo .'", 0, "'. $Apelido .'", 0, "'. $Pais .'", "'. $cep .'", "'. $tel .'", "'. $localizacao .'"');
echo '<div class=\'ferror\'> <b><font style="color:#FFD20F;">CADASTRO CONCLUIDO:</font></b><br />
<ul>
<li><font color="#FFF"><b>Seu registro foi efetuado com sucesso!</b></font> </li>
<li><font color="#FFF"><b> E Obrigatorio voce Realizar a Ativacao de sua conta,</b></font></li>
<li><font color="#FFF"><b> Foi enviado um Email para <font color="FFFFFF">'.$email.'</font> com os dados e instrucoes</b></font></li>
<li><font color="#FFF"><b> Si a Mensagem nao estiver na Caixa de Entrada , Verifique sua Lixeira</b></font></li>
</ul>
</div>';
exit;
}
}
}
?>
and PHP where it is, publish it
– user60252
Yeah, without PHP it’s hard. Edit your question in more detail.
– Ramos
@Leocaracciolo :'(
– Luiz Rebonatto
@Branches I added, but could not add to a block of text :'(
– Luiz Rebonatto
if I were you would test without applying anti_injection
– user60252
@Leocaracciolo sorry Leo, but which one of the "anti_injection" you’re talking about ?
– Luiz Rebonatto
email, that’s not the question of the question?
– user60252
Your error is in the e-mail validation. Try your <input type="email" form.... > and remove this email validation from your PHP. I believe it will work. Just leave the html validating the email.
– Ramos
And to validate with message: <span class="assertive" ng-show="formCadastroUser.email. $invalid && formCadastroUser.email. $Dirty">Fill in the E-mail field.</span>
– Ramos
If you do not accept type="email", try to validate in the form itself: <input type="text" name="email" Pattern="[^ @]@[^ @]"> but I think the first option better...
– Ramos