PHP - MySQL Veritabanı saklanması Metin

5 Cevap php

Benim Web sitesinde bir metin kutusu var ve ben kullanıcı benim veritabanına girdiği her depolamak ve daha sonra bunu almak gerekir. Ben vb özel karakterler dahil girilen kullanıcı, satırbaşları tam olarak saklamak gerekiyor

Ne süreci benim veritabanı alanında bu depolamak için PHP kullanmanız gereken ('metin' alanı hangisi?) PHP'nin html_encode ya da böyle bir şey kullanmak gerekir?

Teşekkür ederim.

Düzenleme: Ben de doğru biçimlendirme yani sekmeler ve birden çok boşluk saklamak gerekir.

5 Cevap

Veri ambarı bunu yazarken verileri kodlamak html olmamalı - Başka bir şey (örneğin e-posta, PDF belgeler ve benzeri) için de verilerinizi kullanabilirsiniz bu şekilde. Gibi Assaf zaten dedi: bu giriş kaçan veya parametreli insert sorguları kullanarak SQL enjeksiyonu önlemek için zorunludur.

Siz, hayır, bir HTML sayfası olarak gösterilirken must Ancak verilerinizi html kodlamak, diyelim gerekir! Veri mevcut HTML etiketleri bir daha tarayıcısı ile HTML etiketleri olarak kabul olmayacak gibi işe yaramaz, tehlikeli HTML veya JavaScript kodunu verecek.

Eğer kullanıcılar içinde HTML etiketleri ile veri göndermek için izin verirsiniz zaman süreci biraz daha karmaşıktır. Daha sonra ihtiyaçlarınıza (izin etiketleri gibi) bağlı olarak keyfi karmaşık olabilir bir giriş-hijyenikleştirmeye lehine çıktı kodlaması atlamak zorunda.

Kullan mysql_real_escape_string():

$safetext = mysql_real_escape_string($_POST['text']);
$query = "INSERT INTO my_table (`my_field`) VALUES ('$safetext')";
mysql_query($query);

Bu çalışması gerekir.

Sen have mysql saklamak için kodlamak değil.

SQL enjeksiyon önlemek için, bir parametreli insert komutunu kullanın emin olun.

Aşağıdaki çalışması gerekir:

if (get_magic_quotes_gpc()) {
  $content = stripslashes($content);
}
$content = mysql_real_escape_string($content);

Sütun utf8 ise, özel karakterler ile sorunları olmamalıdır. Doğru biçimlendirilmiş içerik sonra, standart ekleme yöntemleri kullanarak mysql besleyebilir.

Doğru biçimlendirme ek olarak kullanıcı metni saklamak için, yapmanız gereken tüm nl2br($inputtext) kullanarak sonları tüm satırsonlarını dönüştürmek. Giriş süzme sonra yapın.