Nasıl PHP kullanarak bir giriş kutusundan tırnak şerit yok

3 Cevap php

Ben bu var:

<input name="title" type="text" class="inputMedium" value="' . $inputData['title'] . '" />

I want to strip quotes from user input so that if someone enters something like: "This is my title" it wont mess up my code.

I tried this and it's not working: $inputData['title'] = str_replace('"', '', $_POST['title']);

3 Cevap

Ben doğru soruyu anlamak, " $inputData['title'] adlı böylece HTML kodu berbat değil kaldırmak istiyor?

Eğer öyleyse, "doğru" çözüm çift tırnak kaldırmak değil, ama asıl çıkışını yapmadan önce escape onlara.


Considering you are generating HTML, you should use the htmlspecialchars function ; this way, double-quotes (and a couple of other characters) will be encoded to HTML entities, and will not cause any trouble when injected into your HTML markup.

Örneğin:

echo '<input name="title" type="text" class="inputMedium" value="'
   . htmlspecialchars($inputData['title'])
   . '" />';

Not: (especially, about the encoding/charset you might be using), sen htmlspecialchars bazı additionnal parametreleri geçirmek için olabilir durumunuza bağlı.


Generally speaking, you should always escape the data you are sending as an output, not matter what kind of output format you have.

Örneğin:

Kullanıcı girişi htmlspecialchars() durumda bu tür kullanılmak üzere yoluyla çalıştırılmalıdır.

Ben çok yerde üretilen bir şey kullanıcıya göstermeden önce htmlentities($string, ENT_QUOTES) kullanmanızı öneririz ...