2010-08-25 4 views
1

J'essaie de faire une chose et une seule chose.Mysql Escape String Youtube Code d'intégration Ne fonctionne pas

$embedCode = mysql_real_escape_string('<object width="270" height="227"><param name="movie" value="http://www.youtube.com/v/pz-VWi5-tGA?fs=1&amp;hl=en_US&amp;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&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="270" height="227"></embed></object>'); 

maintenant si j'écris ...

echo 'CODE = ' . $embedCode; 

Je reçois ...

CODE = 

Nothin ...

pensées?

EDIT:

Ok, donc mon intention est de ne pas imprimer seulement embedCode $, il est pour l'insérer dans une base de données, mais je suis d'obtenir une valeur nulle. Je me suis dit que je serais un petit bonhomme et ça s'est retourné contre moi avec mon approche simpliste. Quoi qu'il en soit, le point est, ça ne passe pas par ma requête mysql.

EDIT 2: J'utilise wordpress' $ wpdb objectera

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&amp;hl=en_US&amp;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&amp;hl=en_US&amp;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; 

} 

et obtenir le résultat:

this is my title<br><br>this is my description<br> 
+2

Regardez-vous la source du fichier HTML, ou juste le bit affiché? 'mysql_real_escape_string' n'est pas conçu pour échapper HTML; il est conçu pour échapper à des choses qui sont mises dans des requêtes SQL. Ainsi, il n'échappera pas aux tags, seulement les citations. – Amber

+0

Je regarde la source et il n'y a rien là. D'une façon ou d'une autre, ma chaîne se fait tuer. En fin de compte, son intention est de mettre dans une base de données, mais je reçois continuellement une valeur nulle dans ma rangée. EDIT (OK OK, c'est là) –

+0

Pourriez-vous fournir un peu plus de contexte de code? Peut-être que votre variable sort du cadre ou n'est pas référencée correctement? – Amber

Répondre

1

Vous imprimez votre code html bien. Faites un clic droit et regardez la source, il devrait être là.

mysql_real_escape_string n'est pas destiné à échapper à html du tout. Que se passe-t-il si vous regardez les données réelles de votre table avec phpmyadmin? Si ce n'est pas là alors le problème est lorsque vous entrez ces données.

Ok, donc vous l'évitez en l'écrivant à la table utilisez-vous quelque chose d'autre pour sanytise ces données^Comme strip_tags? Strip_tags enlèverait tout ce html.

Est-il possible que wpdb_Class nettoie ce code html? Ouais en regardant codex.wordpress.org/Function_Reference/wpdb_Class vous pouvez juste $ wpdb-> query ('query') pour lancer n'importe quelle requête, donc insérez simplement avec cela. Si cela fonctionne, vous êtes réparé.

+0

C'est mon problème. Est-ce que je ne reçois pas de données dans ma base de données. J'ai écrit mes fonctions ci-dessus dans Edit: 2. Ma question initiale était un peu laconique car je suis un peu frustré.C'était vraiment bien d'avoir tout le monde sur mon dos: P De toute façon, c'est tout ce que je peux vraiment fournir. Merci pour votre contribution. –

+0

Eh bien, tout le monde a sauté sur votre dos et vous devez écrire une question compréhensible et vous obtiendrez probablement une réponse. :) Je le regarde moi-même. – Iznogood

+0

RE: "est-ce possible" C'est une bonne question. Je parie qu'ils sont. (J'ai vu le code intégré quand j'ai vu la source, duh). Je suppose que je pourrais exécuter ma propre requête autour d'eux. –