Je me demande quelle est la méthode préférée pour traiter les appels AJAX. Faut-il utiliser le même fichier plugin php pour traiter le POST ou un fichier séparé? Lequel est plus propre ou plus sûr?
49
Je me demande quelle est la méthode préférée pour traiter les appels AJAX. Faut-il utiliser le même fichier plugin php pour traiter le POST ou un fichier séparé? Lequel est plus propre ou plus sûr?
la méthode "plus sûre et plus propre" consisterait à utiliser admin-ajax.php fourni avec wordpress et wp_ajax
hook pour appeler votre fonction de traitement à partir de votre fichier de plug-in et à utiliser wp-nonce pour vérifier l'intégrité de l'appel.
par exemple:
votre appel ajax JQuery serait
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
action: 'ACTION_NAME',
Whatever: '1234',
_ajax_nonce: '<?php echo wp_create_nonce( 'my_ajax_nonce' ); ?>'
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
// If you need it on a public facing page, uncomment the following line:
// var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
</script>
puis dans votre fichier plugin ajoutez
//if you want only logged in users to access this function use this hook
add_action('wp_ajax_ACTION_NAME', 'my_AJAX_processing_function');
//if you want none logged in users to access this function use this hook
add_action('wp_ajax_nopriv_ACTION_NAME', 'my_AJAX_processing_function');
* Si vous souhaitez que les utilisateurs connectés et les invités accèdent à votre fonction via ajax, ajoutez les deux points d'ancrage. * ACTION_NAME doit correspondre à la valeur de l'action dans votre POST ajax.
alors, dans votre fonction, assurez-vous que la demande provient d'une source valide
function my_AJAX_processing_function(){
check_ajax_referer('my_ajax_nonce');
//do stuff here...
}
J'espère que cela t'aides