Сообщение не загружается в базу данных из-за дружественного URL-адреса SEO
Вот проблема, которую я выложил ранее: Удалите все знаки препинания из строки php для дружественного seo url.
Я был очень взволнован, что проблема была решена, но теперь весь пост в блоге не загружается в базу данных. У меня есть ощущение, что это связано с изменением кода с:
$post_name = htmlentities(($_POST['post_name']), ENT_QUOTES, 'utf-8');
в
$post_name = html_entity_decode(($_POST['post_name']), ENT_QUOTES, 'utf-8');
Если у кого-то есть идеи, пожалуйста, дайте мне знать!
1 ответ
Если в названии поста есть апострофы ('
) или речевые отметки ("
) тогда вставка в базу данных, скорее всего, не удастся, поскольку она будет конфликтовать с оператором INSERT. Вы можете попробовать сделать что-то вроде:
$post_name = addslashes( html_entity_decode(($_POST['post_name']), ENT_QUOTES, 'utf-8') );
Тем не менее, лучшим способом было бы использовать MySQL mysql_real_escape_string
или же mysqli_real_escape_string
функция для экранирования строки вместо addslashes
, Используемая функция будет зависеть от вашего кода MySQL и используемого расширения (MySQL или MySQLi), например:
$post_name = mysql_real_escape_string( html_entity_decode(($_POST['post_name']), ENT_QUOTES, 'utf-8'), $db );