Bonjour, vous attendez de la communauté un support le plus précis et le plus rapide qu'il soit !
ATTENTION !! ceci est l'ancien forum fermé le mardi 16 mars 2010 à 15 heures!
Le nouveau forum de support phpBB3 est visible à cette adresse, mettez à jour vos favoris !
Sachez toutefois que ce forum restera consultable durant une longue période, malgré le fait que tout le contenu ait été restauré dans le nouveau forum.
Sujet du message: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 7:04 am
Bonjour
Je dévelloppe un module utilisant Ajax. Si vous ne savez ce qu'est Ajax, je vous invite àle découvrir sur Wikipedia.
Grâce à ajax, j'effectue des requête MySql après le chargement de la page, de manière dynamique. Sur un émulateur de serveur, comme EasyPHP ou Wamp, cela fonctionne bien. Par contre, une fois que je tente d'adapter mon code à PHP Maximus, j'ai un pépin. Il m'affiche comme erreur:
Citation:
Fatal error: Call to a member function sql_query() on a non-object in /var/www/garaf/www/dummy-4.1.1/php-maximus/modules/InfoMap/includes/Get_db.php on line 19
Dans mon script, Ajax, en réaction à une modification apportée par le client, exécute le fichier get_db.php. Dans celui-ci, je tente de me connecter au serveur. Voici le contenu de la ligne 19:
Code:
$reponse1 = $GLOBALS['db']->sql_query("SELECT * FROM `garaf_infomap_map` WHERE `id`='$id' ORDER BY ID");
ce code ne se retrouve pas dans une fonction mais bien au début de mon fichier. Pourtant, c'est comme si $db n'existait pas
y a t'il un solution à ce problème?
Merci
--------------------------------- Mini Fiche de PixelGaraf Url de mon site web: Version utilisée: Maximus BS URL Rewriting non utilisée Wysiwyg installé FCK Editor Hébergeur: Apache version: 2.0.55 PHP Version: 5.1.6 -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 10:24 am
Salut,
1ere hpothese: ton fichier Get_db.php est appele via une fonction ajax ? c'est a dire qu'il est "independant" de maximus ? si c'est le cas, il ne connait pas sql_query qui vient de la class appele par maximus, il faut que tu lui mette mysql_query
2e hypothese qui est du meme acabi, si le fichier est independant, il ne connait effectivement db, l faut que tu reouvre une connexion a la base de données.
Je ne sais pas si je suis tres clair la !!!
--------------------------------- Mini Fiche de philippe_jmh Url de mon site web: www.salsatours.fr Version utilisée: Maximus BS URL Rewriting utilisée Wysiwyg installé FCK Editor Hébergeur: www.infomaniak.ch -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 1:42 pm
Rebonjour
Get_db.php est effectivement appelé via une fonction ajax
J'ai fait une requête semblable dans mon module lui-même sans problèmes
Peut-être que le fonctionnement de ma fonction Ajax pourrait vous éclairer... J'ai un paramètre qui indique à ma fonction s'il doit mettre le contenu du fichier dans une balise donnée (document.getElementById(path).innerHTML=xhr.responseText) ou s'il doit l'exécuter directement (xhr.responseText). Dans mon cas, il exécute Get_db.php.
j'ai oublié un détail. Existe-t-il une documentation sur la communication avec MySQL sur Maximus BS. J'ai effectué une recherche en ce sens sur les tutoriel, le wiki et le forum, sans résultat. Peut-être aussi ai-je mal recherché. Je n'ai trouvé que la documentation pour Maximus 2008
j'ai, à date, fait mes requêtes en étudiant le fonctionnement d'autres modules. Peut-être que la documentation sur le sujet pourrait m'aider à trouver une solution à mon problème
merci encore
--------------------------------- Mini Fiche de PixelGaraf Url de mon site web: Version utilisée: Maximus BS URL Rewriting non utilisée Wysiwyg installé FCK Editor Hébergeur: Apache version: 2.0.55 PHP Version: 5.1.6 -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 2:01 pm
salut
en fait ton cas est très spécifique et pour ne pas te cacher tu es le premier à demander ceci
alors en fait il y a plusieurs solutions quand on passe à l'ajax
1) on load l'ajax sur sa page qui elle même va pré-loader les fichiers, dans ce cas précis ( ce que j'utilise ), tu n'as aucun problème de connexion au serveur mysql
2) on fait un appel ajax d'un fichier dit externe et là, réfléchi bien ... ce fichier est loadé au même titre qu'une frame ( très voire trop souvent ce qui explique pourquoi les moteurs de recherche ne savent pas faire à cette date )
tu es donc dans le second cas, je me rappelle avoir fait une foi comme tu le dis un xhr.responseText en tentant un get sur un fichier, et bien sûr le fichier lui ne sait pas se connecter à la base
alors solution ?
il y en a une, mais autant te dire que c'est pas propre et que je n'aime pas trop, mais c'est fonctionnel
--- solution idéale mais non fonctionnelle ---
j'inclus mon mainfile, qui lui ré-inclus tout le reste et comme tu le verras, tu aura une impossibilité de le faire pour des raisons de sécurité internes à maximus ( on ne load pas une frame ou une page dans le dos du cms - bien d'autres laissent cette faille ouverte rassure toi )
--- solution barbare mais fonctionnelle et rapide ---
au début de mon fichier inclus je me remet une connexion au serveur sql avec tous les paramètres liés
comme je te dis, c'est pas propre, mais pour l'utilisateur c'est pareil ça fonctionne
moi je ne load plus comme ça, car ça me les brisai de me reconnecter à la mano sans cesse, ce que je fais je load une première page en ajax, la connexion je la met en session, et zou je la récupère dans toutes mes autres pages en ajax
tu noteras que je ne détaille pas finement, mais à ta lecture je pense que ton niveau te permettras de comprendre ce que j'ai expliqué brièvement
eh ... bien vu d'utiliser un peu d'ajax sous maximus , mais n'en abuse pas car trop ... c'est trop
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 5:04 pm
Effectivement, c'est ce que je disais dans mon premier post c'est un fichier externe et il faut se reconnecter et c'est ce que je fais en general mais du coup il faut que j'analyse ta solution cyril car j'utilise pas mal d'Ajax et effectivmeent pas de facon tres propre !!!!
Ca serait possible que tu m'en dises un peu plus sur ton procede en mp si tu ne veux pas detaille sur le forum ?
--------------------------------- Mini Fiche de philippe_jmh Url de mon site web: www.salsatours.fr Version utilisée: Maximus BS URL Rewriting utilisée Wysiwyg installé FCK Editor Hébergeur: www.infomaniak.ch -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 5:13 pm
je vais tacher de faire un truc simple pour r12 spécifiquement pour ceux qui développent en ajax, ainsi on solutionnera tout problème de ce type pour l'avenir
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 5:48 pm
Merci pour vos réponses, ç'a éclairé ma lanterne. Cela m'aide à voir les différentes possibilités qui s'offrent à moi
Je vais voir s'il m'est possible de modifier mon approche; je souhaiterais dans la mesure du possible avoir un code clean.
Je vais étudier la question et je vous reviens avec ça!
Merci de votre aide!
--------------------------------- Mini Fiche de PixelGaraf Url de mon site web: Version utilisée: Maximus BS URL Rewriting non utilisée Wysiwyg installé FCK Editor Hébergeur: Apache version: 2.0.55 PHP Version: 5.1.6 -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 5:59 pm
pour faire simple
là je ne peux pas pondre le code tout de suite, je préfère faire ça chez moi, tranquillement au calme, mais l'idéal et le plus simple est de te créer un fichier sql_ajax.php par exemple qui inclus le kernel/config.php ainsi que le kernel/db/db.php
dans ce fichier tu te crées ta connexion sql et le tour est joué, ainsi dans tes fichiers que tu va loader via un méchant GET en ajax, en entête de chaque fichier tu inclus de fameux fichier et là tout roule puisque ton fichier saura se connecter à ta base
moi c'est ce que je fais, c'est propre, simple et sécurisé
Sujet du message: Re: requete MySQL avec Ajax Posté le: Mer 10 Déc, 2008 6:34 pm
Ok mais finallement je n'en n'etais pas loin, j'avais mis mes parametres dans un fichier connexion je metais en include en debut de fichire mais je n'avais pas mis le db.php, ca permettra en effect d'utiliser la class avec le layer sql !!
Et soyons fou, pour profiter du secure, oin peut aussi inserer le security.php (je crois que c'est celui la)
Cool merci pour les infos, je vais donc ameliorer mes mechants POST (moi j'utilise plus POST que GET mais bon !!!)
--------------------------------- Mini Fiche de philippe_jmh Url de mon site web: www.salsatours.fr Version utilisée: Maximus BS URL Rewriting utilisée Wysiwyg installé FCK Editor Hébergeur: www.infomaniak.ch -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Et je le sécuriserai à la fin du dévellopement de mon module avec security.php et je tacherais de POSTer plutot que GETer. (merci pour l'astuce ). J'ai aussi d'autres modifications à apporter pour une plus grande sécurité
Cela met fin à mon problème.
Je vous remercie beaucoup pour le temps que vous m'avez accordé; j'aurais pris du temps à le résoudre seul.
Merci encore
--------------------------------- Mini Fiche de PixelGaraf Url de mon site web: Version utilisée: Maximus BS URL Rewriting non utilisée Wysiwyg installé FCK Editor Hébergeur: Apache version: 2.0.55 PHP Version: 5.1.6 -*-*-*-*-*-*-*-*-*-*- Générez votre rapport de référencement surwww.pagerank.hebeh.net
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum Vous pouvez joindre des fichiers Vous pouvez télécharger des fichiers