Submitted by TiTi on
Bonjour à tous,
Je me retrouve devant un problème concernant l'exécution d'un script php externe.
Ce dernier se trouve à la racine de mon installation et il a été autorisé dans le fichier htaccess.
Situation:
Je déclenche la mise à jour d'un compteur lors d'un clic sur un bouton. Le clic est géré par Jquery et lance un appel AJAX sur mon script PHP externe qui doit mettre ainsi ma BDD à jour.
Problème:
Mon script s'exécute correctement mais ce n'est pas l'utilisateur courant qui est mis à jour mais toujours celui avec l'uid 0 donc l'utilisateur anonyme.
Debug:
Le script PHP a été testé directement dans le navigateur via l'adresse: http://www.monsite.com/script_externe.php
Aucune erreur et l'uid est bien pris en compte cette fois. Le script est fonctionnel.
Ma base de données est bien mise à jour sur l'utilisateur courant.
Mais lors de l'éxécution du script via le click javascript. On tombe sur le même problème. L'uid 0 prend la main et mon script ne met donc pas à jour le bon utilisateur.
Code fichier PHP externe:
C'est ce dernier qui met à jour ma base.
[code]
<?php
//Théoriquement ce code permettrait la persistance des sessions dans mon fichier externe
include_once "includes/bootstrap.inc";
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); //DRUPAL_BOOTSTRAP_SESSION
global $user;
//Code de mise à jour de la base
?>
[code]
Merci à tous de votre ailde ;-)
Pourquoi ne pas poster l’uid
Permalien Soumis par kustolovic le 13 Mai, 2011 - 09:20
Pourquoi ne pas poster l'uid lors du click?
Essaie de travailler avec
Permalien Soumis par sahuni le 13 Mai, 2011 - 13:18
Essaie de travailler avec $GLOBALS['user']
merci à tous les deux pour
Permalien Soumis par TiTi le 13 Mai, 2011 - 21:19
merci à tous les deux pour vos pistes. J'ai essayé les 2 mais elles n'ont pas réussi.
Concernant le fait de passer l'uid au moment de l'appel du script PHP, voilà mon code:
$(document).ready(function(){
$(".button").live({
click: function() {
recherche = true;
if (recherche == true){
alert("debut processus");
$.post("http://monsite.com/script_externe.php", { uid: "<? global $user; echo $user->uid ?>"},
function(data) {
alert("Data Loaded: " + data);
});
}
},
});
});
Je n'ai aucun retour qui s'affiche de mon script PHP. Je l'ai simplifié au maximum pour test. Le script retourne un echo de l'uid passé en paramètre. Voir ci-dessous:
Mon JS semble correct.
Merci pour votre aide encore ;-)
Bonjour, Essai en essayant de
Permalien Soumis par dantedu93 le 23 Juin, 2011 - 00:10
Bonjour,
Essai en essayant de définir le DrupalRoot de ton drupal :
chdir('path/to/drupal');
define("DRUPAL_ROOT", getcwd() );