Salut,
J'appelle une fonction php avec une commande (jquery) comme:
var result = $.post ('/php/fonctions.php', {fonction: 'citation', data: lang}, function (data) {
txt_citation.innerHTML = data.citation + "<strong>" + data.nom + "</ strong>";
}, "json");
Dans le fichier fonctions.php, j'ai une ligne "$ _POST [" fonction "] ($ _ POST [" data "]);" pour appeler ma fonction. J'ai essayé avec "call_user_func_array ($ _ POST [" fonction "], $ _POST [" data "]);" mais ça ne marche jamais, je ne sais pas pourquoi. Si vous pouvez m'expliquer pourquoi c'est bon mais ce n'est pas la raison de ce post. Quel est la procédure classique pour réaliser cela ?
Dans ma fonction, j'ai un "require /php/login.php ; ". Cette ligne ne fonctionne pas lors d'appel ajax (fonctionne en temps normal). J'ai résolu le problème avec:
$env = '/ volume1/web/site';
require $env.'/php/login.php';
Je n'aime pas cette solution qui ne fonctionne que sur un serveur spécifique! J'ai essayé avec
$ env = realpath ('.');
require $ env.'/php/login.php';
et j’ai réalisé que les fonctions telles que realpath () ne fonctionnent pas lorsqu’on appelle via ajax. Il semble que j'ai eu d'autres fonctions qui ne fonctionnent pas comme d'habitude. Par exemple, comment utiliser les fonctions de fichier php quand vous ne savez pas "où" vous êtes?
Je suppose que le serveur crée un environnement d'exécution spécial (environnement d'exécution sécurisé?) Lorsqu'il est appelé via ajax (de l'extérieur en d'autres termes). Si "require" fonctionne, "require_once" ne semble pas fonctionner...
Pourriez-vous m'expliquer ce qui ce passe au niveau de l'environnement d'exécution php (celui où ma fonction php fonctionnera lorsqu'elle est appelée depuis le client via ajax) ? D'un point de vue pratique - inutile de comprendre exactement ce qui se passe
Si vous avez des exemples sur:
Comment puis-je trouver le chemin complet pour utiliser "require" directement dans ma fonction (sans lui passer cette info en paramètre), pour utiliser les fonctions de fichier (ouverture, écriture, etc) et autres trucs du même genre (en fait, tout ce qui dépend de l'environnement d'exécution) ?
Comment déboguer facilement ma fonction php lorsqu'elle est appelée via ajax? "echo $ test" ne fonctionne pas comme d'habitude (il envoie l'info à ajax)
Je connais le problème, je peux imaginer pourquoi mais je ne le comprends pas
Merci de votre aide
Marc