Birisi nasıl PHP bir işareti kaçmak için bana söyleyebilir misiniz?

4 Cevap php

I & için & benim imi karakterleri değişen bir wysiwyg editörü var

Ne veri gönderildiği zaman olur ki & sonra her şeyi düştü ve her şey önce olduğu gibi bırakılır. Ben bir süre önce bu soruyu sordum ama bir cevap almak için görünmüyor olabilir. Biz belki editörü olduğunu düşündüm ama ampersanı sunulmasından sonra dönüştürülür ediliyor doğrulandı. Bu ASCII karakterleri kaçacak bir php işlevi var mı?

4 Cevap

Düzgün urlencoded varlık değil gibi geliyor. (Örneğin AJAX kullanarak) isteğinde kendinizi bina var mı?

AJAX kütüphaneye bağlı olarak manuel veri kaçmak gerekebilir (eğer varsa) kullanıyorsanız:

Lütfen editörü "Fasulye ve sosis" içeriyor düşünün. Siz değişken "metin" bu yazı:

text=Beans&sausages

Bu gibi PHP görünüyor

text = Beans
sausages = null

JavaScript Bu düzeltmek için encodeURIComponent () kullanın.

Eğer onlar PHP bütün dize oluyor doğrulamak için gönderilen gibi () ham içeriğini print_r edebiliyoruz?

Lütfen editörü ve işareti de onu doğrama ise PHP ilgilenmektedir önce o zaman bir sorun var.

Ne editör yaptığı kesinlikle doğru olduğundan ben, burada sorun başka bir yerde olduğunu düşünüyorum. Bu karakterler eksik varsa ben PHP ($ _REQUEST dizideki bir) tarafından alınan değerini kontrol öneririz, POST çek veya tel (yani kullanımı firebug veya benzeri) üzerinde gönderilir GET isteği . Ben değer before gönderildiği karıştırılmış olduğunu düşünürdüm.

Bunu elle montaj ise belki bir yerde işlev htmlentities is or isn't being called on your text? You can use html_entity_decode to decode it back. Having read most of the responses and your question again though, I would look at the code submitting the AJAX, you most likely need to urlencode the string in javascript before passing it as post data. Most libraries will handle this for you. The function encodeURIComponent veri aranmalıdır.

var postData = encodeURIComponent(key) + '=' + encodeURIComponent(value).replace(/%20/g,'+');

Ben bir jQuery işlevi kullanarak edildi yorumlarınızı birinde fark ettim. jQuery $.param() that will encode a postable string for you, or even easier is just to pass an object to the data parameter of the ajax call (internally it will be passed through $.param() adlı bir yardımcı işlevi vardır

$.ajax({
  method:'POST',
  url: '/somefile.php',
  data: {
    rt: $("textarea#rt").val(),
    Type: 1,
    //.... more data here
  },
  success: function(data) {
  }
});