Ir para conteúdo

POWERED BY:

Arquivado

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

kidh0

Como fazer para as aspas não darem problema

Recommended Posts

Fala gurizada... tudo tri http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif ?

 

Estou com um problema...

 

estou fazendo um sisteminha de noticias. o meu problema é quando edito a notícia

 

por exemplo:

 

O titulo da notícia é: Não há "terrorismo" no mundo

 

o cadastro da notícia é normal.. fica legal... o problema é na edição da noticia

 

Quando o input recebe o titulo da noticia, só recebe 'não há'.

 

Tem que fazer alguma coisa para as aspas duplas e simples???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Naum... você recupera os dados da sua string dentro dessa função... tipo$variavel = addslashes($resultado_sql[n]);Dai quando você mandar imprimir a $variavel ele vai aaprecer com as "

Compartilhar este post


Link para o post
Compartilhar em outros sites

A diretiva do PHP magic_quotes_gpc é on por padrão, e ela essencialmente executa addslashes() para todos dados de GET, POST e COOKIE. Não use addslashes() em strings que já foram escapadas com magic_quotes_gpc já que você acabara escapando duas vezes. A função get_magic_quotes_gpc() pode dar uma mão para conferir isto.

 

http://br.php.net/manual/pt_BR/function.ge...-quotes-gpc.php

 

stripslashes -- Desfaz o efeito de addslashes()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae... eu confundi.... :) sorry

Compartilhar este post


Link para o post
Compartilhar em outros sites
você ta enganado wolf

 

Tem que usar addslashes ante de gravar no bc

 

Opa você nao leu o que eu escrevi acima?

 

A diretiva do PHP magic_quotes_gpc é on por padrão, e ela essencialmente executa addslashes() para todos dados de GET, POST e COOKIE.Não use addslashes() em strings que já foram escapadas com magic_quotes_gpc já que você acabara escapando duas vezes. A função get_magic_quotes_gpc() pode dar uma mão para conferir isto.

 

 

dai nesse caso você pode usar a função get_magic_quotes_gpc para ver se ta o magic_quotes_gpc esta on

 

if (!get_magic_quotes_gpc()) {

  $lastname = addslashes($_POST['lastname']);

} else {

  $lastname = $_POST['lastname'];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu caso, está sendo gravado no bd sem problemas, com as aspas e tal... quando eu mostro a noticia na página noticia.php, as aspas aparecem normal. Agora quando eu quero editar a notícia é que está o problema.Quando eu chamo o campo do bd dentro do input, só aparece até a primeira aspa. Como eu faria para não dar esse problema??o código que resgata do bd é o seguinte...<input name"teste" value="<?php echo mysql_result($sql, $i, 'titulo'); ?>">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu postar na notícia: Londres declara "guerra" ao terrorismo'

 

No banco de dados cadastra normal, consigo mostrar na página normalmente. Agora quando eu busco do bd e jogo num campo input para editar, aparece somente Londres declara .

 

Corta o resto. consegui explicar bem???

 

como assim só aparece até a primeira aspa ?

 

posta o resultado ai como fica

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código do incluir_noticia.php:

 

PHP

[*]<?php

[*] require_once("verifica.php");

[*]

[*] if ($_POST[cadastrar])

[*] {

[*] $erro = 0;

[*] $cadastrado = 0;

[*] $max_size=50000;

[*] if (($_POST[txt_titulo] == "") || ($_POST[txt_chamada] == "") || ($_POST[txt_corpo] == "" ) || ($_POST[txt_fonte] == "" ) || ($_POST[txt_data] == "" ))

[*] {$erro = 1; echo "<script>alert('Preencha todos os campos!')</script>";}

[*] if ($_FILES[txt_foto][name])

[*] {

[*] if (!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $_FILES[txt_foto][type]))

[*] {$erro = 2; echo "<script>alert('Arquivo em formato inválido! Somente são permitidos jpeg, bmp, gif ou png!')</script>";}

[*] if ($_FILES[txt_foto] > $max_size)

[*] {$erro = 3; echo "<script>alert('Imagem com o tamanho acima do permitido (50kb)!')</script>";}

[*] }

[*] if ($erro==0)

[*] {

[*] require_once("../conecta.php");

[*] $data=implode('-',array_reverse(explode('/',$_POST[txt_data])));

[*] if ($_FILES[txt_foto][name])

[*] {

[*] $arquivo=$_FILES[txt_foto];

[*] $nome = date(dmy)."_".str_replace(' ', '_', $arquivo['name']);

[*] $diretorio = ".././upload/";

[*] move_uploaded_file($arquivo['tmp_name'], $diretorio.$nome);

[*] $caminho = $nome;

[*] }

[*] $sql=mysql_query("INSERT INTO tb_noticias (titulo, chamada, corpo, fonte, foto, data, tipo) VALUES ('$_POST[txt_titulo]', '$_POST[txt_chamada]', '$_POST[txt_corpo]', '$_POST[txt_fonte]', '$caminho', '$data', '$_POST[txt_capa]')") or die ("Não foi possível fazer a conexão");

[*] if ($sql)

[*] {

[*] echo "<link href='sw_admin.css' rel='stylesheet' type='text/css'>";

[*] echo "<br><br><br><br>A notícia foi cadastrada com sucesso!";

[*] echo "<script>opener.location='principal.php?cod=noticias';</script>";

[*] echo "<br><br><a href='java script: window.close()'>Fechar</a>";

[*] $cadastrado = 1;

[*] }

[*] }

[*] }

[*] if ($cadastrado == 0)

[*] {

[*]?>

[*]<link href='sw_admin.css' rel='stylesheet' type='text/css'>

[*]<form name"frmincluirnoticia" action="incluir_noticia.php" method="post" enctype="multipart/form-data">

[*]<table width="242" height="297" border='0' cellpadding="2" cellspacing="0">

[*]  <tr bgcolor="#ffffcc">

[*] <td height="18" colspan='2' align="center" style='border:1px solid #ffcc00'><b>Cadastro de noticias</b></td>

[*] </tr>

[*] <tr>

[*] <td width="59" height="21"><div align="right">Titulo:</div></td>

[*] <td width="175"><input name="txt_titulo" type="text" class="formulario" id="txt_titulo" size="35" maxlength="125"></td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="57"><div align="right">Chamada:</div></td>

[*] <td><textarea name="txt_chamada" cols="31" rows="3" class="formulario" id="txt_chamada"></textarea></td>

[*] </tr>

[*] <tr>

[*] <td height="105"><div align="right">Corpo:</div></td>

[*] <td><textarea name="txt_corpo" cols="31" rows="7" class="formulario" id="txt_corpo"></textarea></td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="21"><div align="right">Fonte:</div></td>

[*] <td><input name="txt_fonte" type="text" class="formulario" id="txt_fonte" size="35" maxlength="125"></td>

[*] </tr>

[*] <tr>

[*] <td height="24"><div align="right">Foto:</div></td>

[*] <td><input name="txt_foto" type="file" class="formulario" id="txt_foto" size="20"></td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="21"><div align="right">Data:</div></td>

[*] <td><input name="txt_data" type="text" class="formulario" id="txt_data" value="<?php echo date("d/m/Y");?>" size="11" maxlength="11"

[*] (dd/mm/aaaa)  </td>

[*] </tr>

[*] <tr>

[*] <td height="21"><div align="right">Tipo:</div></td>

[*] <td valign="middle"><input name="txt_capa" type="radio" value="0" checked>

[*] Normal

[*] <input name="txt_capa" type="radio" value="1">

[*] Destaque

[*] </td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="30" colspan="2">

[*] <div align="right">

[*] <input name="limpar" type="reset" class="formulario" id="limpar" value="<< Limpar"> <input name="cadastrar" type="submit" class="formulario" id="cadastrar" value="Cadastrar >>">

[*] </div></td>

[*] </tr>

[*]</table>

[*]</form>

[*]<?php

[*] }

[*]?>

 

e o do altera_noticia.php (onde está dando o problema das aspas)

 

PHP

[*]<?php

[*] require_once("verifica.php");

[*] require_once("../conecta.php");

[*] $id= $_GET[id];

[*] if ($_POST[alterar])

[*] {

[*] $erro = 0;

[*] $alterado = 0;

[*] if (($_POST[new_titulo] == "") || ($_POST[new_chamada] == "") || ($_POST[new_corpo] == "" ) || ($_POST[new_fonte] == "" ) || ($_POST[new_data] == "" ))

[*] {$erro = 1; echo "<script>alert('Preencha todos os campos!')</script>";}

[*] if ($erro==0)

[*] {

[*] require_once("../conecta.php");

[*] $data=implode('-',array_reverse(explode('/',$_POST[new_data])));

[*] $sql1=mysql_query("UPDATE tb_noticias SET titulo='$_POST[new_titulo]' , chamada='$_POST[new_chamada]', corpo='$_POST[new_corpo]', fonte='$_POST[new_fonte]', data='$data', tipo='$_POST[new_tipo]' WHERE id='$id'") or die ("Não foi possível fazer a conexão");

[*] if ($sql1)

[*] {

[*] echo "<link href='sw_admin.css' rel='stylesheet' type='text/css'>";

[*] echo "<br><br><br><br>A notícia foi alterada com sucesso!";

[*] echo "<script>opener.location='principal.php?cod=noticias';</script>";

[*] echo "<br><br><a href='java script: window.close()'>Fechar</a>";

[*] $alterado = 1;

[*] }

[*] }

[*] }

[*] if ($alterado==0)

[*] {

[*] $sql = mysql_query("SELECT * FROM tb_noticias WHERE id = $id") or die ("Não foi possível conectar");

[*] if ($sql)

[*] {

[*]?>

[*]<link href='sw_admin.css' rel='stylesheet' type='text/css'>

[*]<form name="frmalteranoticia" action="alterar_noticia.php?id=<?php echo $id; ?>" method="post">

[*]<table width="242" height="318" border='0' cellpadding="2" cellspacing="0">

[*]  <tr bgcolor="#ffffcc">

[*] <td height="18" colspan='2' align="center" style='border:1px solid #ffcc00'><b>Cadastro de noticias</b></td>

[*] </tr>

[*] <tr>

[*] <td width="59" height="21"><div align="right">Titulo:</div></td>

[*] <td width="175"><input name="new_titulo" type="text" class="formulario" id="new_titulo" value="<?php echo mysql_result($sql,0,'titulo'); ?>" size="35" maxlength="125"></td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="57"><div align="right">Chamada:</div></td>

[*] <td><textarea name="new_chamada" cols="31" rows="3" class="formulario" id="new_chamada"><?php echo mysql_result($sql,0,'chamada')?></textarea></td>

[*] </tr>

[*] <tr>

[*] <td height="105"><div align="right">Corpo:</div></td>

[*] <td><textarea name="new_corpo" cols="31" rows="7" class="formulario" id="new_corpo"><?php echo mysql_result($sql,0,'corpo')?></textarea></td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="21"><div align="right">Fonte:</div></td>

[*] <td><input name="new_fonte" type="text" class="formulario" id="new_fonte" value="<?php echo mysql_result($sql,0,'fonte'); ?>" size="35" maxlength="125"></td>

[*] </tr>

[*] <tr>

[*] <td height="24"><div align="right">Foto:</div></td>

[*] <td><b><?php echo mysql_result($sql,0,'foto')?></b></td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="21"><div align="right">Data:</div></td>

[*] <td><input name="new_data" type="text" class="formulario" id="new_data" value="<?php echo implode('/',array_reverse(explode('-',mysql_result($sql,0,'data')))); ?>" size="11" maxlength="11"

[*] (dd/mm/aaaa)  </td>

[*] </tr>

[*] <tr>

[*] <td height="21"><div align="right">Tipo:</div></td>

[*] <td valign="middle"><input name="new_tipo" type="radio" value="0" <?php if (mysql_result($sql,0,'tipo') == 0) echo "checked"?>>

[*] Normal

[*] <input name="new_tipo" type="radio" value="1" <?php if (mysql_result($sql,0,'tipo') == 1) echo "checked"?>>

[*] Destaque </td>

[*] </tr>

[*] <tr bgcolor="#FFFFFF">

[*] <td height="30" colspan="2">

[*] <div align="right">

[*] <input name="alterar" type="submit" class="formulario" id="alterar" value="Alterar >>">

[*] </div></td>

[*] </tr>

[*]</table>

[*]</form>

[*]<?php

[*] }

[*] }

[*]?>

 

Um detalhe, nos campos textarea não dá problema, é só nos input text...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há... e no bd as " e ' aparecem normal... tipo: teste de "noticia".Será que é por isso que está dando problema??? No bd não deveria estar \"? Se for, como contornar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gurizada... consegui arrumar usando o htmlspecialcharsconverti as aspas simples e as duplas antes de cadastrar no bd e deu certo!Vlw pelas dicas...

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.