HTML Arıtma seçici özel karakterler yeme

1 Cevap php

UTF-8 uyumlu veritabanı karşı PHP kullanarak. Burada girdi içeri gider nasıl

  1. textarea içine kullanıcı türleri girdi
  2. textarea javascript kaçış ile kodlanmış ()
  3. HTTP posta yoluyla geçti
  4. PHP rawurldecode ile çözülür ()
  5. varsayılan ayarlarla HTMLPurifier geçirilir
  6. MySQL için kaçtı ve bir veritabanında saklanır

Ve her zamanki gibi çıkıyor ve ben sayfa yük Unescape () çalıştırın. Bu insanlar, diyelim ki, kopyalama ve yapıştırma doğrudan bir kelime belge ve akıllı tırnaklar göstermek için izin vermektir.

Smartquotes% u2024 falan kaçmak ve veritabanına yol gitmek Ama ise HTMLPurifier,% D6 kaçar Ö, gibi basit% ifadesi, non-UTF-8 özel karakterler, (kaçış olanlar) clobbering gibi görünüyor. Bu özel karakteri ve bir hemen ardından hem dışarı alır.

Ben bu süreçte bir şey değiştirmeniz gerekir. Belki birden fazla şeyleri değiştirmek gerekiyor.

Ne özel karakterler clobbered alınamıyor için ne yapabilirim?

1 Cevap

  1. textarea javascript kaçış ile kodlanmış ()

escape non-ASCII için güvenli değildir. Kullan escapeURIComponent

  1. HTTP posta yoluyla geçti

Bunu kullanmak varsayalım XmlHttpRequest? Değilse, form içeren sayfa utf-8 olarak servis emin olun.

  1. PHP rawurldecode ile çözülür ()

Eğer $_POST ile değerini erişimi varsa zaten yapılmıştır beri, bunu çözmek gerekir. Yani irade pisliği verileri yapıyor.

  1. MySQL için kaçtı ve bir veritabanında saklanır

) Eğer magic quotes turned on. Make sure that the database stores tables as utf-8 (The encoding and harmanlama utf-8 hem de olmalıdır yok emin olun. (Eğer PDO kullanmak istemiyorsanız, Kullan set names utf8) PHP ve MySQL arasındaki bağlantı utf-8 olduğundan emin olun.

Son olarak, sayfa tekrar utf-8 çıktı dize olarak servis emin olun.