Pergunta

Então, eu estou usando FCKeditor eo problema que estou tendo é que quando o usuário grava o documento informações, por vezes, é copiado do Word, outras vezes está escrito diretamente no editor e outras vezes isso poderia ser feito em ambos os sentidos. O que isto me deixa com no DB é um conjunto de marcas que estão abertos e nunca fechada. Isto está jogando meu layout dramaticamente e eu estou tentando encontrar uma solução.

Eu mudei o arquivo de configuração para colar como texto simples, que eu assumi iria parar Palavra formatação de transferir mais, e ele ainda está fazendo isso.

Então agora eu estou tentando descobrir uma maneira de procurar as tags de abertura e de excluí-los antes que a informação é enviada para o DB é possível. Ou há alguma opção função FCKeditor / config que eu estou ausente para me ajudar?

Todas as sugestões sobre como devo proceder?

Graças
Levi

Foi útil?

Solução

Assim como uma precaução de segurança que irá abordar ambos os problemas de segurança relacionados com o (como tags <script> sendo inserido pelos usuários, por exemplo - que você provavelmente não quer) e problemas de apresentação relacionada < em> (tais como marcas não-fechados) , você pode usar uma ferramenta como HTMLPurifier no seu servidor , sobre o que você está recebendo a partir do navegador.

É claro, isso não vai resolver o primeiro problema, o fato de que os usuários podem inserir o que quiserem no FCKEditor; mas ele vai garantir o seu HTML é válido e seguro.

Na verdade, mesmo se FCKEditor não estava recebendo você HTML não-válido, você ainda pode usar HTMLPurifier, apenas por segurança.

A idéia é que você fornecer uma lista de:

  • permitidos etiquetas
  • permitidos atributos para as tags

E, em troca, HTMLPurifier dá-lhe HTML limpo e válido.

Outras dicas

Editar: Parece que você está executando em um bug no editor. Você pode tentar um diferente, e / ou usar um script do lado do servidor que atravessa e tiras tags div incomparáveis.

HTML permite que a maioria das tags para ser deixada em aberto. Se ele está deixando marcas abrir que deve ser deixado fechado, você poderia branca ou lista negra para pesquisar e tira aqueles fora serverside. Caso contrário, você está muito presa com a compreensão de que o HTML não é XML, FCKeditor gera HTML, e HTML não irá validar como XML. Se ele está jogando sua impressão off, tentar envolver a saída FCKeditor em um div.

Caso contrário, por favor incluir exemplos concretos de entrada e saída que é bagunçar o layout da página.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top