Ir para conteúdo

POWERED BY:

Arquivado

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

AndrewRodrigues

[Resolvido] Restringir STYLE

Recommended Posts

fala pessoal,

bom to com um problema aqui chato e to a dias procurando e não acho...

Bom é o seguinte, quando o admin insere um texto "copiado" no campo de texto do "CKEDITOR" ele vem com o (style) da fonte onde foi copiado. Porém, onde vai aparecer no site tem que ter apenas uma cor padrão ou seja ROXO, mas também tem que aparecer o negrito em ROXO, e entre outras propriedades mas que não altere a cor roxa, só que ele não está respeitando CSS e altera a cor do texto...

 

porfavor, se possível ajudar fico muito grato !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou fazendo teste com esse texto.

 

Seção 1.10.32 de "de Finibus Bonorum et Malorum", escrita por Cícero em 45 AC

 

"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"

 

para o banco de dados ele vai assim

 

<p>

 </p>

<h3>

Seção 1.10.32 de "de Finibus Bonorum et Malorum", escrita por Cícero em 45 AC</h3>

<p>

"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"</p>

 

para inserir estou usando

 

<?php

include("includes/conexao.php");

 

if(isset($_POST['acao']) && $_POST['acao'] == 'upload'){

 

$n_titulo = $_POST['n_titulo'];

$n_site = $_POST['n_site'];

$n_news = $_POST['n_news'];

$n_texto = $_POST['n_texto'];

$n_youtube= $_POST['n_youtube'];

 

$dados = array_map("mysql_real_escape_string", $_POST);

 

$pasta = 'includes/uploads/arquivos/';

$tmp_name = $_FILES["arquivo"]["tmp_name"];

 

$i = 0;

do {

 

if ($i) {

$file_nome = $_FILES["arquivo"]["name"]."({$i})";

$uploadFile = $pasta.$file_nome;

} else {

$file_nome = $_FILES["arquivo"]["name"];

$uploadFile = $pasta.$file_nome;

}

$i++;

 

} while ( file_exists($uploadFile) ) ;

 

if(move_uploaded_file($tmp_name, $uploadFile)) {

 

$insert = mysql_query("INSERT INTO f_noticias (n_titulo,n_site,n_news,n_foto,n_texto,n_data,n_youtube) VALUES ('".$n_titulo."','".$n_site."','".$n_news."','{$file_nome}','".$n_texto."',NOW(),'".$n_youtube."')");

 

$info = '<script LANGUAGE="JavaScript" TYPE="text/javascript">alert ("Enviado com sucesso!")</SCRIPT>';

}else{

$info = '<script LANGUAGE="JavaScript" TYPE="text/javascript">alert ("Falha ao enviar arquivo!")</SCRIPT>';

}

}

if(isset($info)){echo $info;}

 

?>

 

tchê não sei oque está acontecendo mas agora simplesmente ele não está dando mais o erro

não alterei nada...

mas antes ele mandava a style pro banco de dados. Tem alguma explicação lógica para isso?

simplesmente o php se alterar de uma hora para outra!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa matheus minha falta de informação para te facilitar.

 

bom o texto estava indo assim

 

"<p style="RGB (0 , 0 , 0); font-size:12px;">MATHEUS TAVARES</p>"

 

ou seja MATHEUS TAVARES

 

e eu gostaria que ele fosse assim <p style="font-size:12px;">MATHEUS TAVARES</p>

 

para que quando eu receba o valor da tabela não altere a cor da div.

 

ASSIM É MEU INSERT NO BANCO :.

 

<?php
include("includes/conexao.php");

if(isset($_POST['acao']) && $_POST['acao'] == 'upload'){

 $n_titulo = $_POST['n_titulo'];
 $n_site   = $_POST['n_site'];
 $n_news   = $_POST['n_news'];
 $n_texto  = $_POST['n_texto'];
 $n_youtube= $_POST['n_youtube'];

	$dados = array_map("mysql_real_escape_string", $_POST);

$pasta = 'includes/uploads/arquivos/';
$tmp_name = $_FILES["arquivo"]["tmp_name"];

$i = 0;
do {

	if ($i) {
		$file_nome = $_FILES["arquivo"]["name"]."({$i})";
		$uploadFile = $pasta.$file_nome;
	} else {
		$file_nome = $_FILES["arquivo"]["name"];
		$uploadFile = $pasta.$file_nome;
	}
	$i++;

} while ( file_exists($uploadFile) ) ;

if(move_uploaded_file($tmp_name, $uploadFile)) {

$insert = mysql_query("INSERT INTO f_noticias (n_titulo,n_site,n_news,n_foto,n_texto,n_data,n_youtube) VALUES ('".$n_titulo."','".$n_site."','".$n_news."','{$file_nome}','".$n_texto."',NOW(),'".$n_youtube."')");

	$info = '<script LANGUAGE="JavaScript" TYPE="text/javascript">alert ("Enviado com sucesso!")</SCRIPT>';
}else{
	$info = '<script LANGUAGE="JavaScript" TYPE="text/javascript">alert ("Falha ao enviar arquivo!")</SCRIPT>';
}
}
if(isset($info)){echo $info;}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummmm.. entendi agora.

Ele está enviando essa string indesejada no atributo style: "RGB (0 , 0 , 0);".

 

Acredito que através do seu editor WYSIWYG (ckeditor), você possa configurar para que ele não inclua esse atributo, porém, para facilitar a solução do problema, vou te mostrar um exemplo de como podemos solucionar:

 

Levando em conta que o texto esteja na variável $n_texto.

 

EDITADO

$n_texto = preg_replace( '/RGB *\([ 0-9,]*\) ?; ?/' , '' , $n_texto );

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmmmmm!!!!!

 

eu tentei usar esse preg_replace puxando php.net.

Tu tem como explicar ele?

 

não itendi como utilizar ele

no termo ai tu boto /RGB *\ <<< significa que ele vai elimina a style RGB que tenha o valor de 0-9?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu código seria assim:

 

$n_texto  = $_POST['n_texto'];
$n_texto = preg_replace( '/RGB *\([ 0-9,]*\) ?; ?/' , '' , $n_texto );

 

Ou numa linha só, mesmo:

 

$n_texto = preg_replace( '/RGB *\([ 0-9,]*\) ?; ?/' , '' , $_POST['n_texto'] );

 

O funcionamento das REGEXP (Expressões regulares), você pode (e deve) estudar através das numerosas fontes de pesquisa, não apenas no nosso fórum, mas pela internet à fora.

Mais tarde eu volto nesse tópico e explico o funcionamento da expressão usada acima, se você quiser.

 

:bye:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos lá:

 

A expressão toda que utilizamos foi a seguinte:

/RGB *\([ 0-9,]*\) ?; ?/

 

1. O interpretador das expressões utilizado no PHP (PCRE) exige que delimitemos o padrão de consulta por algum caractere que não seja alfanumérico ou contra-barra (\). Isso significa que em volta de toda a expressão devemos ter algum caractere especial que a delimite. No exemplo, eu utilizei a barra normal (/). Essa regra é explicada nessa página: http://php.net/manual/pt_BR/intro.pcre.php

 

2. Logo após a primeira barra, exigi que o padrão se casasse somente com os caracteres RGB, nessa ordem e quantidade.

 

3. Após isso determinei um espaço em branco seguido de um asterisco. " *". Isso significa: pode possuir quantos espaços forem necessários, de 0 à infinitos.

 

4. Após, abri um parêntese escapado: \(. A contra-barra antes dele serve para informar ao interpretador de que se trata de um caractere literal, e não de um grupo. Grupos em REGEXP são delimitados pelos parênteses, exemplo: (...) isso é um grupo. Pesquise a respeito para se aprofundar em detalhes.

 

5. Então determinei que o sistema pode entrar qualquer um destes caracteres: "0-9" (zero à nove), vírgula e espaço. Todos em qualquer posicionamento e quantidade, pois utilizei o asterisco * após essa lista. O trecho completo que estou me referindo é esse: [ 0-9,]*

 

6. Então, utilizei o mesmo método do item 4, fechando o parêntese literal, escapando-o. O trecho é esse: \)

 

7. Após, determinei que o padrão adotado deve encontrar um ponto-e-vírgula (;)

 

8. E finalmente, ele pode encontrar um espaço, ou não. Se encontrar, ele será removido, senão não faz diferença. Trecho: " ?"

 

Pode parecer complicado, pela quantidade de informação que eu escrevi, mas tentei deixar o mais resumido e completo, simultaneamente possível. Regexp na verdade são bastante simples, é pura prática.

 

Se restar alguma dúvida, avise.

 

[]'s! :natallaugh:

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.