Ir para conteúdo
Fórum CódigoFonte.net
serginho_pv

APOSTROFO

Recommended Posts

Necessito gravar um campo que contém apóstrofo.

Entretanto sempre dá uma mensagem de erro não permitido a gravação do mesmo. Tentei utilizar o addslashes mas não obtive exito. Os dados serão gravados no SQL Server 2000.

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver][sql Server]Line 1: Incorrect syntax near 'l'., SQL state 37000 in SQLExecDirect in C:\SITES\csv\gmsr0001.php on line 91

O código utilizado é:

$sqlinsert = "INSERT INTO reserva (des_reserva,cod_horario) VALUES(addslashes('$desreserva'),'$codhorainicio')"; $incluir = odbc_exec($con, $sqlinsert);

Compartilhar este post


Link para o post
Compartilhar em outros sites

se n me engano, slashes não funcionam com aspas simples...

tenta fazer um replace..

$valor = ereg_replace("'", "", $valor);

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola serginho_pv

Bom caso sua apostrofe possa ser descartada...a melhor solução é oq o nosso amigo "codigofonte" recomendou...com certeza!!! wink.gif

Porem, infelizmente, ja me deparei com casos onde naum poderia simplesmente excluir o apostrofe oq qq outro caractere inconveniente...!!!

entaum segue minha dica codificar a variavel...!!!

vejamos como ficariam os exemplos de 2 modos de codificação.

-------------------------------------------------------------

modo1:

<?php

$variavel = "dani`´'^'el";

$codificada = urlencode ($variavel);//dani%60%B4%27%5E%27el

$decodificada = urldecode ($codificada);//dani`´'^'el

?>

--------------------------------------------------------------

modo2:

<?php

$variavel = "dani`´'^'el";

$codificada = base64_encode($variavel);//ZGFuaWC0J14nZWw=

$decodificada = base64_decode($codificada);//dani`´'^'el

?>

--------------------------------------------------------------

ohmy.gif lembre-se q qdo vc codifica uma informção para quarda-la no BD...sempre qdo for retornar ela precisa lembrar de decodificar...!!!

espero ter ajudado...!!! smile.gif

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei estas duas funções: uma para mostrar dados HTML arquivados no banco e outra para retirar as tags HTML, apostrofos, barras invertidas, dentre outros.

São elas:

<?php

  // exibe informações em HTML para melhor compatibilidade com banco de dados

  function comhtml($conteudo) {

    $transcreve = get_html_translation_table (HTML_ENTITIES);

    $transcreve = array_flip($transcreve);

    $conteudo = stripslashes($conteudo);

    $conteudo = strtr($conteudo, $transcreve);

    return preg_replace('/&#(\d+);/me',"chr('\\1')",$conteudo);

  }

  // retira barras invertidas apostrofos e tags HTML por segurança

  function semhtml($conteudo) {

    $conteudo = htmlspecialchars($conteudo);

    $conteudo = addslashes($conteudo);

    return $conteudo;

  }

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ouw, basta colocar a barra \ antes do ' ou " que ele aceita os simbolos como strings e nao como termino dela. obs.: Se nao for essa \ é / .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×
×
  • Criar Novo...