Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Novamente aqui com um pepinão.
Graças a Deus existe o Fórum iMasters pra colocar a gente novamente na rodovia.
Meu problema é o seguinte: eu desenvolvi um padrãozinho de str_replace() pra converter caracteres especiais, tipo á, é, Á, É... que eventualmente façam parte do field 'descricao' enviados pelo form. Para isso, fiz dois arrays (reduzi muito o código pra deixa apenas onde o problema aparece):
//Array dos caracteres especiais
$special_char = array('á', 'é', 'A', 'É');
//Array das entidades
$html_ent = array('á', 'é', 'Á', 'É');
$string_to_form = mysql_real_escape_string(str_replace($special_char, $html_ent, $_POST['descricao']));
// A palavra 'até' entraria no DB como 'até'
// No view, o str_replace() inverteria isso, mais ou menos como uso sempre no . e , para unidades monetárias.
Aí... quando fiz esse teste, funcionou (mais ou menos, na verdade, com uma ou outra ressalva no uso do mysql_real_escape_string() x str_replace()... mas funfou).
Só que quando foi ajustar para o usar com arrays, if() e for() descambou tudo hehehehe
//Array dos caracteres especiais
$special_char = array('á', 'é', 'A', 'É');
//Array das entidades
$html_ent = array('á', 'é', 'Á', 'É');
// usr == 01 >> ADILSON
if ($usr == '01'){
$usrtbl = 'adilson';
for ($i=1; $i<=21; $i++) {
// Busca a variavel do formulario
$string_to_form_[$i] = mysql_real_escape_string(str_replace($special_char, $html_ent, $_POST['descricao-'.$i]));
// Query
$qry_form = "UPDATE $usrtbl SET
$usrtbl.DESCRICAO='$string_to_form_[$i]'
WHERE $usrtbl.ID='$i'";
mysql_query($qry_form, $con) or die(mysql_error());
}
}
Simplesmente parou de funcionar!!! Tentei jogar os arrays como variáveis $i para dentro do for(), mas não funcionou também. Tentei tirar o mysql_real_escape_string(). Nada. Ele continua gravando Á, é, á, É no banco e não as entidades html como no teste.
Aí dei uma olhada nos posts antigos aqui do fórum e encontrei isso na forma de função. Aí fiz:
function chars_to_ent($str) {
$html_ent = array('Á', 'É');
$special_chars = array('Á', 'É');
return str_replace($special_chars, $html_ent, $str);
}
$string_to_form_[$i] = chars_to_ent($_POST['descricao-'.$i]);
E... nada. Alguém sabe onde estou errando?
Putz.. nem uma visualização ainda hehe =]
Carregando comentários...