Nasıl bir db göndermeden önce php bir işareti kaçabilir?

4 Cevap

Ben benim veritabanına veri göndermek zaman garip bir şey oluyor. Bozulmadan kalır önce yazdığınız ve her şey asla sanki ampersanı sonra her şey bırakılır. Birisi Ben bu karakteri korumak için kullanmanız gereken ne bana söyleyebilir misiniz? REGEX? PHP işlevi?

Teşekkürler

EDIT:

kodu:

/ / POST var kullanıcı tarafından girilen verileri içeren yani gerçekten bir şey olabilir. Bu bir WYSIWYG editörü geliyor.

$ String = addslashes ($ _POST ['txtarea']);

mysql_query ("INSERT INTO ... '$ string'");


        WYSIWYG.updateTextArea(n);
        var form = WYSIWYG_Core.findParentNode("FORM", this.getEditor(n));
        if(form == null) {
            alert("Can not submit the content, because no form element found.");
            return;
        }
        form.submit();

Ben teslim ediliyor ne dışarı dize yankı istiyorum. Birisi ben memnun yapmak için bu durumda içine yerleştirmek için gerekenleri söyleyebilir misiniz? O (n) bir uyarı mı?


Tamam beyler .. Ben yankı var. Bunun için bir AJAX arayüzü kullanan ve sadece oradan değerleri echo'd ediyorum. Ben dizesinde bir işareti eklediğinizde, alıyorum:

test&&

Yani .... o not editörü ..

4 Cevap

Bug sonra veritabanına WYSIWYG editörü değil, veri ekleme ile birlikte gibi görünüyor. Form emin olmak için gönderilen önce JavaScript ile çıkışı yakalayan deneyin.

Benim tahminim bir şekilde '&' olduğunu Bunu yapıyor, şifresiz, sorgu dizeye gibi:

http://yoursite/?message=hello&whatsup

Bu "merhaba" değerini ve boş bir değere sahip GET değişkeni "WhatsUp yaşıyorsunuz" GET değişkeni "mesaj" neden olacaktır.

Bu olay ise, sadece onu durdurmak gerekir.

Siz sorgu dizesi içinde '% 26' olarak kodlamak.

Ben bir şey WYSIWYG editörü ile yanlış olduğunu düşünüyorum.

Bu veya sorununuzu çözmek değil, ama keyfi karakterleri kaçmak için hiç ihtiyacınız olduğunda genel olarak, PHP en addcslashes, kaçmak için karakter seti veya aralık tanımlamak sağlayan kullanabilirsiniz.