Ir para conteúdo

POWERED BY:

Arquivado

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

Marcio_123

Expressões regulares php

Recommended Posts

e ai galera blll

 

to usando uma expressão regular do php preg_replace para remover caracter especial de uma string evitando assim injeção sql.

 

o que ocorre e que quando digite palavras com acentos ela esta removendo as letras. Preciso permitir que passe vogais acentuadas, alguem ai da um help.

 

		$abreviacao = preg_replace('/[^[:alnum:] a-z]/','',$abreviacao);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom ida Omar blll

 

caracteres que podem ser passadas via post tipo aspa simples, sinal de igual.

//pegando o campo do formulario via post
$cliente = $_POST['cliente'];

//limpando o campos de caracteres especiais
$cliente = preg_replace('/[^[:alnum:] ]/','',$cliente);

faça essa limpeza dos caracteres antes de fazer o cadastro no banco, o que ocorre é que se envio palavra com acentos ex â, é, ô, ç, ele esta removendo essas letras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hun... Nesse caso basta fazer a substituição, listando todos os caracteres em um array e usar a função str_replace para substituí-los por nada.

Exemplo:

<?php
$stringInicial = " > 'João' e 'maria' < foram no \"mercado\" comprar = `pão`";
var_dump($stringInicial);

$invalidos = [ // Array com todos tipos de caracteres que queira remover da string;
    '"',
    "'",
    '`',
    '=',
    '-',
    '<',
    '>'
];

$stringLimpa = str_replace($invalidos, null, $stringInicial); // Fazendo a substituição por um valor nulo

echo ("<hr />");
var_dump($stringLimpa);

Lógico que isso irá remover quaisquer caracteres que estejam no array, porém temos nesse termo espaços duplicados como "o asterisco representa um espaço"

Antes: *>*'João'

Depois:  **João

Então basta fazer o tratamento desse termo.

 

Porém se for mesmo questão de usar uma expressão basta usar o regex aceitando acentuações:

<?php
$stringInicial = " > 'João' e 'maria' < foram no \"mercado\" comprar `pão`";
var_dump($stringInicial);

echo ("<hr />");
$stringLimpa = preg_replace('/[^[:alnum:] a-zÀ-ú]/', '', $stringInicial);
var_dump($stringLimpa);

 

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.