Сообщение не загружается в базу данных из-за дружественного 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 );

Другие вопросы по тегам