Ben diğer şeylerin yanı sıra, yüklemek için bir görüntü kabul eder ve veritabanında sopa, bir form var. Daha önce ben temelde POSTed verileri süzme bir işlevi vardı:
function processInput($stuff) {
$formdata = $stuff;
$formdata = htmlentities($formdata, ENT_QUOTES);
return "'" . mysql_real_escape_string(stripslashes($formdata)) . "'";
}
Dönüştürülmüş elde olmayan bazı garip varlıkları düzeltmek için bir çaba düzgün ben işlevi değişti, (herşey değişti ben ekledi olduğunu Htmlentities içinde 'UTF-8' bit):
function processInput($stuff) {
$formdata = $stuff;
$formdata = htmlentities($formdata, ENT_QUOTES, 'UTF-8'); //added UTF-8
return "'" . mysql_real_escape_string(stripslashes($formdata)) . "'";
}
Ve şimdi görüntüleri yüklemek olmaz.
Bu neden olur? Basitçe 'UTF-8' bit kaldırarak görüntüler, kullanıcıların sisteme koymak MS Word bazı kurumları anlamsız olarak göstermek doğru ama sonra upload sağlar. Neler oluyor?
**EDIT: Since I cannot do much to change the code on this beast I was able to slap a bandaid on by using htmlspecialchars() rather than htmlentities() and that seems to at least leave the image data untouched while converting things like quotes, angle brackets, etc. bobince's advice is excellent but in this case I cannot now spend the time needed to fix the messy legacy code in this project. Most stuff I deal with is object oriented and framework based but now I see first hand what people mean when they talk about "spaghetti code" in PHP.