web-dev-qa-db-fra.com

Accéder à une API php basée sur ajax / REST

Quelqu'un a créé un site à l'aide de RS Forms Pro, un plugin tiers joomla et tiers, et créé une page sur laquelle un client peut configurer et acheter un produit (par bande). Mais ils m'ont demandé d'écrire des scripts qui leur permettent de créer un système de paniers afin que les clients puissent acheter plusieurs produits à la fois sans entrer les détails de leur carte à chaque fois.

J'ai des années d'expérience php/js mais je n'ai jamais travaillé avec un système comme joomla. RSForms Pro me permet d’attacher des javascripts et des attributs à des éléments de formulaire afin que cela paraisse très simple et que la partie JS soit en effet simple. Cependant, j’ai écrit un petit PHP panier conçu pour être interfacé avec les paramètres de l’URL GET et il n’existe aucun emplacement sur le serveur Web que je puisse placer là où une tentative de demande ajax ne provoque pas une erreur 403 interdite .

Quelle est la voie la moins résistante est d’obtenir l’API php que j’ai écrite dans l’écosystème joomla de manière à pouvoir parler correctement à partir des pages RSForms? Merci beaucoup.

EDIT pour les détails fonctionnels: Le script php que j'ai écrit stocke les données d'élément (les objets de classe dans ce cas) dans une session php, il s'agit essentiellement d'un simple panier de session. Le script lui-même s'attend à trouver des instructions transmises via une URL, telles que script.php? Additem & itemdata = foobar qu'il lit dans le tableau standard $ _GET. Le script fait écho à un résultat qui peut être une donnée demandée, une confirmation ou une chaîne d'erreur - dans tous les cas, conçu pour être traité par le javascript appelant.

2
David Burford

Nous avons un minimum d'informations sur la façon dont vous avez implémenté tout ce qui précède, cependant, je suppose que vous avez créé un script php quelque part qui ne sera pas exécuté/accessible à partir du flux d'exécution de Joomla, mais vous l'appelez directement. Droite? Dans ce cas, vous sautez Joomla, l’erreur 403 que vous obtenez ne vient pas de Joomla. Il s'agit probablement d'une restriction de sécurité (erreur d'interdiction d'accès) de votre serveur.

Cela provient généralement des directives du fichier .htaccess - par exemple. restreindre l'accès direct/l'exécution de fichiers php, ou par d'autres mécanismes de sécurité/pare-feu, par ex. mod_security - qui est devenu un standard dans de nombreux environnements d'hébergement.

En ce qui concerne si vous voulez utiliser pleinement la méthode Joomla, vous voudrez écrire une extension Joomla pour votre application.

1
FFrewin