Apostrophes'e dan önceki bir Ters kesme Çıkarma

3 Cevap

Ben aşağıda değişkeni kullanarak bir açıklama eklediğinizde, kesme önlerinde bir ters eğik çizgi ile yazdırılır. Nasıl tersbölülerden kurtulabilirsiniz?

Teşekkür peşin,

John

Basılı sonucu örneği:

Oda arkadaşım \ 'ın kardeşi \' ın eski kız arkadaşı \ 'nın teyzesi bir Toyota sürücüsü.

$comment = mysql_real_escape_string($_POST['comment']);

3 Cevap

dan http://php.net/manual/en/function.mysql-real-escape-string.php

Note: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.

mysql_real_escape_string() backslash'lar ekliyor, böylece SQL sorgusunun içine güvenle enjekte dize olabilir -- this is acting as a protection against SQL Injections .

Ama this function should only be used when you want to build an SQL query - Çıktı şey istediğiniz zaman değil.

Eğer çıkış için bir HTML sayfası için bir dize istediğinizde, genelde kullanmak htmlspecialchars or htmlentities , to prevent XSS. Olacak


If you already have some backslashes before calling mysql_real_escape_string(), it might be because of Magic Quotes -- if so, you might want to first call stripslashes() on the input you get from the user, to not duplicate the backslashes.

Bu tam olarak ne mysql_real_escape_string yapmak gerekiyordu değil mi? Hala veritabanına veri ekleme ve geri getiriliyor sonra eğik görüyorsanız, magic_quotes_gpc sunucu seçeneği kapalı olduğundan emin olun.