MySQL Escape String YouTube встроен код не работает
-
01-10-2019 - |
Вопрос
Я пытаюсь сделать одно и одно только.
$embedCode = mysql_real_escape_string('<object width="270" height="227"><param name="movie" value="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="270" height="227"></embed></object>');
Теперь, если я напишу ...
echo 'CODE = ' . $embedCode;
Я получил...
CODE =
Ничего ...
Мысли?
РЕДАКТИРОВАТЬ:
ОК, поэтому мое намерение не просто печатать $ EmbedCode, это вставить его в базу данных, но я получаю нулевое значение. Я подумал, что я буду умной задницей, и она обратно с моим упрощенным подходом здесь. Во всяком случае, точка в том, что это не проходит через мой запрос MySQL.
Редактировать 2: Я использую объект WordPress '$ WPDB
function insert_video(){
global $wpdb;
$wpdb->show_errors();
$table_name = $wpdb->prefix . "video_manager";
$embedCode = mysql_real_escape_string('<object width="270" height="227"><param name="movie" value="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="270" height="227"></embed></object>');
$title = 'this is my title';
$description = 'this is my description';
$wpdb->insert( $table_name, array( 'title' => mysql_real_escape_string($title), 'embed_code' => $embedCode, 'description' => mysql_real_escape_string($description) ) );
}
function get_video_block($id){
insert_video();
global $wpdb;
$wpdb->show_errors();
$table_name = $wpdb->prefix . "video_manager";
$query = "SELECT * FROM " . $table_name . " WHERE `index` = '$id'";
$results = $wpdb->get_results($query, ARRAY_A);
$results = $results[0];
$returnString = $results['title'] . '<br>';
$returnString .= $results['embed_code'] . '<br>';
$returnString .= $results['description'] . '<br>';
return $returnString;
}
и получить результат:
this is my title<br><br>this is my description<br>
Решение
Вы печатаете свой HTML Allight. Щелкните правой кнопкой мыши и посмотрите на источник, он должен быть там.
mysql_real_escape_string. не предназначен для сбежать HTML вообще.
Что произойдет, если вы посмотрите на фактические данные в своем столе с phpmyadmin? Если это не там, то проблема заключается в том, когда вы вводите эти данные в.
Итак, вы избегаете его во время записи в таблицу, вы используете что-то еще, чтобы Sanytise, что данные ^ как Spring_tags? Strip_tags примет все это html.
Возможно ли WPDB_CLASS очищает это HTML?
Да, глядя на codex.wordpress.org/found_Reference/wpdb_class Вы можете просто $ WPDB-> запрос («запрос»), чтобы запустить любой запрос, чтобы просто вставить с этим. Если это работает, вы исправлены.