Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

magnetu

[Resolvido] Remover Caracteres Especiais

Recommended Posts

Boa tarde eu dinovo.

 

Alguem pode me ajudar tenho o seguinte código que cria uma mascara para digitação de dados do campo telefone, porem quero que ao enviar para mysql va o campo sem caracteres especiais

 

Segue o script.

function maskIt(w,e,m,r,a){
// Cancela se o evento for Backspace
   if (!e) var e = window.event
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;

// Variáveis da função
var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();        
var mask = (!r) ? m : m.reverse();        
var pre  = (a ) ? a.pre : "";        
var pos  = (a ) ? a.pos : "";        
var ret  = "";        

if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;

// Loop na máscara para aplicar os caracteres
for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
	if(mask.charAt(x)!='#'){
		ret += mask.charAt(x); x++;
		} else{
			ret += txt.charAt(y); y++; x++;
			}
		}

		// Retorno da função
		ret = (!r) ? ret : ret.reverse()
		w.value = pre+ret+pos;}

		// Novo método para o objeto
		String.prototype.reverse = function(){
			return this.split('').reverse().join('');
			};


 

 

Agora onde estou utilizando a mascara como posso proceder para enviar somente valores?

 

<input type="text" name="usoTelefone" value="" size="32"  onkeyup="maskIt(this,event,'(##)####-####')"/>

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada a ver o utf8_decode()

 

faça um str_replace() removendo os caracteres que você não quer.

http://php.net/str_replace

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou fazendo assim

 

<input type="text" name="usoTelefone" value="<?php echo $string = str_replace("-","",$string);?>" size="32"  onkeyup="maskIt(this,event,'(##)####-####')"/>

 

mas não ta resolvendo não, eu preciso fazer isso em alguns campos especificos tipo telefone e cep

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa essa função aki

<?php

function    Tir($v){
  $v = str_replace("(", "", $v); 
  $v = str_replace(")", " ", $v);
  $v = str_replace("-", "", $v);
  $v = str_replace(".", " ", $v);  /*eu preciso fazer isso em alguns campos especificos tipo telefone e cep 
*/
  #caso queira remover mais caracteres, vai adicionando str_replace("caractere que quer remover", "caractere de saida", $v);
  return $v;
  	}

$numero = "(12) 9984-3216";
  echo Tir($numero);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é para usar no input, mas somente na hora de mandar para a string sql q vai pro banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou preciso de uma conversão que va dentro desta linha <input value""> para enviar ao BD.

 

não é para usar no input, mas somente na hora de mandar para a string sql q vai pro banco.

 

 

Então... faz umas 3 semanas que comecei a mexer com php e mysql, então string e esses outros termos hehehehe é grego... como posso proceder segue o codigo todo.

 

<?php require_once('Connections/conexao.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

//confere se a senha combina
$cadastro = false;
if($_POST['usoSenha']== $_POST['usoSenha2']){
	$cadastro = true;
}
if($cadastro){

 $insertSQL = sprintf("INSERT INTO `user` (usoNome, usoEndereco, usoBairro, usoCidade, usoEstado, usoCEP, usoTelefone, usoData, usoDia, usoMes, usoAno, usoSexo, usoEmail, usoSenha, usoCodigo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['usoNome'], "text"),
                      GetSQLValueString($_POST['usoEndereco'], "text"),
                      GetSQLValueString($_POST['usoBairro'], "text"),
                      GetSQLValueString($_POST['usoCidade'], "text"),
                      GetSQLValueString($_POST['usoEstado'], "text"),
                      GetSQLValueString($_POST['usoCEP'], "text"),
                      GetSQLValueString($_POST['usoTelefone'], "int"),
                      GetSQLValueString($_POST['usoData'], "text"),
                      GetSQLValueString($_POST['usoDia'], "text"),
                      GetSQLValueString($_POST['usoMes'], "text"),
                      GetSQLValueString($_POST['usoAno'], "text"),
                      GetSQLValueString($_POST['usoSexo'], "text"),
                      GetSQLValueString($_POST['usoEmail'], "text"),
                      GetSQLValueString(md5($_POST['usoSenha']), "text"),
                      GetSQLValueString($_POST['usoCodigo'], "text"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 $insertGoTo = "login.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
 }else{
	$msg_erro = 'As senhas digitadas não conferem';
}
}

mysql_select_db($database_conexao, $conexao);
$query_user_estado = "SELECT * FROM user_estado";
$user_estado = mysql_query($query_user_estado, $conexao) or die(mysql_error());
$row_user_estado = mysql_fetch_assoc($user_estado);
$totalRows_user_estado = mysql_num_rows($user_estado);

mysql_select_db($database_conexao, $conexao);
$query_user_dia = "SELECT * FROM user_dia";
$user_dia = mysql_query($query_user_dia, $conexao) or die(mysql_error());
$row_user_dia = mysql_fetch_assoc($user_dia);
$totalRows_user_dia = mysql_num_rows($user_dia);

mysql_select_db($database_conexao, $conexao);
$query_user_mes = "SELECT * FROM user_mes";
$user_mes = mysql_query($query_user_mes, $conexao) or die(mysql_error());
$row_user_mes = mysql_fetch_assoc($user_mes);
$totalRows_user_mes = mysql_num_rows($user_mes);

mysql_select_db($database_conexao, $conexao);
$query_user_ano = "SELECT * FROM user_ano";
$user_ano = mysql_query($query_user_ano, $conexao) or die(mysql_error());
$row_user_ano = mysql_fetch_assoc($user_ano);
$totalRows_user_ano = mysql_num_rows($user_ano);

mysql_select_db($database_conexao, $conexao);
$query_uso_data = "SELECT usoData FROM `user`";
$uso_data = mysql_query($query_uso_data, $conexao) or die(mysql_error());
$row_uso_data = mysql_fetch_assoc($uso_data);
$totalRows_uso_data = mysql_num_rows($uso_data);

mysql_select_db($database_conexao, $conexao);
$query_usoData = "SELECT CONCAT(usoDia,'/',usoMes,'/', usoAno) AS usoData FROM user";
$usoData = mysql_query($query_usoData, $conexao) or die(mysql_error());
$row_usoData = mysql_fetch_assoc($usoData);
$totalRows_usoData = mysql_num_rows($usoData);
?>
<script>
function maskIt(w,e,m,r,a){
// Cancela se o evento for Backspace
   if (!e) var e = window.event
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;

// Variáveis da função
var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();        
var mask = (!r) ? m : m.reverse();        
var pre  = (a ) ? a.pre : "";        
var pos  = (a ) ? a.pos : "";        
var ret  = "";        

if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;

// Loop na máscara para aplicar os caracteres
for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
	if(mask.charAt(x)!='#'){
		ret += mask.charAt(x); x++;
		} else{
			ret += txt.charAt(y); y++; x++;
			}
		}

		// Retorno da função
		ret = (!r) ? ret : ret.reverse()
		w.value = pre+ret+pos;}

		// Novo método para o objeto
		String.prototype.reverse = function(){
			return this.split('').reverse().join('');
			};

</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php if(isset($msg_erro)):?>
<?php echo $msg_erro;?>
<?php endif; ?>

<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
 <table align="center">
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Nome:</td>
     <td><input type="text" name="usoNome" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Endereco:</td>
     <td><input type="text" name="usoEndereco" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Bairro:</td>
     <td><input type="text" name="usoBairro" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Cidade:</td>
     <td><input type="text" name="usoCidade" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Estado:</td>
     <td><select name="usoEstado">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_estado['estado']?>" ><?php echo $row_user_estado['estado']?></option>
       <?php
} while ($row_user_estado = mysql_fetch_assoc($user_estado));
?>
     </select></td>
   </tr>
   <tr> </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">CEP:</td>
     <td><input type="text" name="usoCEP" value="" size="32"  onkeyup="maskIt(this,event,'#####-###')"/></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Telefone:</td>
     <td><input type="text" name="usoTelefone" value="" size="32"  onkeyup="maskIt(this,event,'(##)####-####')"/></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Data de Nas:</td>
     <td><select name="usoDia">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_dia['dia']?>" ><?php echo $row_user_dia['dia']?></option>
       <?php
} while ($row_user_dia = mysql_fetch_assoc($user_dia));
?>
     </select>
     <select name="usoMes">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_mes['mes']?>" ><?php echo $row_user_mes['mes']?></option>
       <?php
} while ($row_user_mes = mysql_fetch_assoc($user_mes));
?>
     </select>
     <select name="usoAno">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_ano['ano']?>" ><?php echo $row_user_ano['ano']?></option>
       <?php
} while ($row_user_ano = mysql_fetch_assoc($user_ano));
?>
     </select></td>
   </tr>
   <tr> </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Sexo:</td>
     <td><input type="text" name="usoSexo" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Email:</td>
     <td><input type="text" name="usoEmail" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Senha:</td>
     <td><input type="text" name="usoSenha" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Confirma Senha:</td>
     <td><input type="text" name="usoSenha2" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right"> </td>
     <td><input type="submit" value="Enviar" /></td>
   </tr>
 </table>  
 <input type="hidden" name="usoData" value="<?php echo $row_usoData['usoData']; ?>" />
 <input type="hidden" name="usoCodigo" value="<?php echo md5(uniqid(microtime()));?>" />
 <input type="hidden" name="MM_insert" value="form1" />
</form>
<p> </p>
</body>
</html>

<?php
mysql_free_result($user_estado);

mysql_free_result($user_dia);

mysql_free_result($user_mes);

mysql_free_result($user_ano);

mysql_free_result($uso_data);

mysql_free_result($usoData);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui:

  $insertSQL = sprintf("INSERT INTO `user` (usoNome, usoEndereco, usoBairro, usoCidade, usoEstado, usoCEP, usoTelefone, usoData, usoDia, usoMes, usoAno, usoSexo, usoEmail, usoSenha, usoCodigo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['usoNome'], "text"),
                      GetSQLValueString($_POST['usoEndereco'], "text"),
                      GetSQLValueString($_POST['usoBairro'], "text"),
                      GetSQLValueString($_POST['usoCidade'], "text"),
                      GetSQLValueString($_POST['usoEstado'], "text"),
                      GetSQLValueString($_POST['usoCEP'], "text"),
                      GetSQLValueString($_POST['usoTelefone'], "int"),
                      GetSQLValueString($_POST['usoData'], "text"),
                      GetSQLValueString($_POST['usoDia'], "text"),
                      GetSQLValueString($_POST['usoMes'], "text"),
                      GetSQLValueString($_POST['usoAno'], "text"),
                      GetSQLValueString($_POST['usoSexo'], "text"),
                      GetSQLValueString($_POST['usoEmail'], "text"),
                      GetSQLValueString(md5($_POST['usoSenha']), "text"),
                      GetSQLValueString($_POST['usoCodigo'], "text"));

você faz o insert.

 

nesse momento faça o replace que informei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria assim ? acho que não hehehe num ta funcionando.

 

$insertSQL = sprintf("INSERT INTO `user` (usoNome, usoEndereco, usoBairro, usoCidade, usoEstado, usoCEP, usoTelefone, usoData, usoDia, usoMes, usoAno, usoSexo, usoEmail, usoSenha, usoCodigo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['usoNome'], "text"),
                      GetSQLValueString($_POST['usoEndereco'], "text"),
                      GetSQLValueString($_POST['usoBairro'], "text"),
                      GetSQLValueString($_POST['usoCidade'], "text"),
                      GetSQLValueString($_POST['usoEstado'], "text"),
                      GetSQLValueString($_POST['usoCEP'], "text"),
                      GetSQLValueString($_POST['usoTelefone'], "int"),
                      GetSQLValueString($_POST['usoData'], "text"),
                      GetSQLValueString($_POST['usoDia'], "text"),
                      GetSQLValueString($_POST['usoMes'], "text"),
                      GetSQLValueString($_POST['usoAno'], "text"),
                      GetSQLValueString($_POST['usoSexo'], "text"),
                      GetSQLValueString($_POST['usoEmail'], "text"),
                      GetSQLValueString(md5($_POST['usoSenha']), "text"),
                      GetSQLValueString($_POST['usoCodigo'], "text"));
				   str_replace("-","."," ");

Compartilhar este post


Link para o post
Compartilhar em outros sites

dw so gera essa bostas mesmo troque a parte que o willian disse por isso

function    Tir($v){
  $v = str_replace("(", "", $v); 
  $v = str_replace(")", " ", $v);
  $v = str_replace("-", "", $v);
  $v = str_replace(".", " ", $v);
         $$v = trim($v);
      $$v =  addslashes($$v);
      $$v = htmlspecialchars($$v);
      $$v = strip_tags($$v);
	  $$v = str_replace("'", "¿", $$v);  
         return $$v;
       }






                      $outro = Tir($_POST['usoSenha']);

                      $nome = Tir($_POST['usoNome']);
                      $en = Tir($_POST['usoEndereco']);
                      $ba = Tir($_POST['usoBairro']);
                      $ci = Tir($_POST['usoCidade']);
		 $es = Tir($_POST['usoEstado']);
		 $cep = Tir($_POST['usoCEP']);
                      $tele = Tir($_POST['usoTelefone']);
                      $data = Tir($_POST['usoData']);
                      $dia = Tir($_POST['usoDia']);
                      $mes = Tir($_POST['usoMes']);
                      $ano = Tir($_POST['usoAno']);
                      $sex = Tir($_POST['usoSexo']);
                      $ema = Tir($_POST['usoEmail']);
                      $senha = md5($outro);
                      $cod = Tir($_POST['usoCodigo']);
$inserSQL = mysql_query("INSERT INTO `user` (usoNome, usoEndereco, usoBairro, usoCidade, usoEstado, usoCEP, usoTelefone, usoData, usoDia, usoMes, usoAno, usoSexo, usoEmail, usoSenha, usoCodigo) VALUES (\"$nome\", \"$en\", \"$ba\", \"$ci\", \"$es\", \"$cep\", \"$tele\", \"$data\", \"$dia\", \"$mes\", \"$ano\", \"$sex\", \"$ema\", \"$senha\", \"$cod\")");

 

testa ia se aparecer um erro posta ele ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada a ver o utf8_decode()

 

Achei que os caracteres no qual ele se referiu fosse 'ábcdê' .. coisa do tipo, isso sim seria um possível problema de codificação, no qual a solução seria um utf8_decode(), já que ele quer 'remover caracteres indesejáveis' como '#-' .. é melhor usar o replace mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
no qual a solução seria um utf8_decode()

isso seria um remendo porco e não uma solução.

 

Prefira trabalhar com headers, manter padronização e várias outras boas práticas, antes de partir para um encode/decode.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já não vejo problema em utilizar o utf8_decode, já que a própria função foi criada pra esses propósitos. Se você está trabalhando com codificação iso nos arquivos, normalmente tem esses problemas quando são imprimidas as strings ou até mesmo enviadas pelo usuário através de formulários, o legal é manter a mesma codificação, não só nos arquivos, como também no 'Content-Type', assim fica 'padronizado' como você mesmo disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma vez meu codigo tambem dava isso, então tirei ums if e mudei a $inserSQL de lugar, vai tentando pra ver se consegue

 

Esta assim agora tirei o problema do cadastro duplo bobeira minha, porem retorna esta mensagem.

 

 

Query was empty

 

 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

//confere se a senha combina
$cadastro = false;
if($_POST['usoSenha']== $_POST['usoSenha2']){
	$cadastro = true;
}
if($cadastro){

function    Tir($v){ 
  $v = str_replace("(", "", $v);  
  $v = str_replace(")", " ", $v); 
  $v = str_replace("-", "", $v); 
  $v = str_replace(".", " ", $v); 
         $$v = trim($v); 
             $$v =  addslashes($$v); 
             $$v = htmlspecialchars($$v); 
             $$v = strip_tags($$v); 
                 $$v = str_replace("'", "¿", $$v);   
         return $$v; 
       } 

                      $outro = Tir($_POST['usoSenha']); 
                      $nome = Tir($_POST['usoNome']); 
                      $en = Tir($_POST['usoEndereco']); 
                      $ba = Tir($_POST['usoBairro']); 
                      $ci = Tir($_POST['usoCidade']); 
                      $es = Tir($_POST['usoEstado']); 
                      $cep = Tir($_POST['usoCEP']); 
                      $tele = Tir($_POST['usoTelefone']); 
                      $data = Tir($_POST['usoData']); 
                      $dia = Tir($_POST['usoDia']); 
                      $mes = Tir($_POST['usoMes']); 
                      $ano = Tir($_POST['usoAno']); 
                      $sex = Tir($_POST['usoSexo']); 
                      $ema = Tir($_POST['usoEmail']); 
                      $senha = md5($outro); 
                      $cod = Tir($_POST['usoCodigo']); 
$inserSQL = mysql_query("INSERT INTO `user` (usoNome, usoEndereco, usoBairro, usoCidade, usoEstado, usoCEP, usoTelefone, usoData, usoDia, usoMes, usoAno, usoSexo, usoEmail, usoSenha, usoCodigo) VALUES (\"$nome\", \"$en\", \"$ba\", \"$ci\", \"$es\", \"$cep\", \"$tele\", \"$data\", \"$dia\", \"$mes\", \"$ano\", \"$sex\", \"$ema\", \"$senha\", \"$cod\")");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.