Forum > PHP > Enregistrer des données dans une base de données

Enregistrer des données dans une base de données

Page : 1 2
avatar de stc
Membre
# Le 27/12/2008 à 01h02
Salut, j'ai cherché sur internet sur mes bouquins et j'ai rien trouvé à savoir est-il possible de se connecter a n'importe quelles bases de données sur un autre serveur que le serveur ou est exécuté notre script(en ayant toutes les informations nécessaires à la connexion bien évidement). En fait, je ne vois pas très bien comment faire, surtout en ce qui concerne le hostname. J'avais penser à une autre solution: utiliser l'ajax qui enverrait une requête depuis un fichier PHP situé sur un autre serveur (où se trouve la base de donnée) mais c'est pour le transfert de données que je ne vois plus comment faire. Merci de m'aider & happy new year!
Tchao
avatar de Tony_
Administrateur
# Le 27/12/2008 à 01h18
Bonjour stc,

Si j'ai bien compris ta question, la réponse est "oui c'est possible".

Pour se connecter à une base de donnée il te faut normalement les codes PHP suivants:

  1. mysql_connect($host, $utilisateur, $motpasse) or die("Erreur connexion au serveur");
  2. mysql_select_db($bdd) or die("erreur connexion a la Base De Données");


Si tu connais chacun des paramètres $host, $utilisateur, $motpasse et $bdd tu peux en principe te connecter à n'importe quel base de donnée. smiley

Après il suffit d'opérer comme tu a l'habitude de le faire avec n'importe quel base de donnée.

Cordialement.
(joyeuses fêtes) smiley
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
avatar de stc
Membre
# Le 27/12/2008 à 01h23
Bien sur funnycat, je sais me connecter a une base de données, mais par exemple mon script est exécuté sur site1.com, peut-il se connecter sur la base de données associée à site2.com. Je me pose des question surtout que des fois comme hostname on à que 'localhost' ...
Merci Tchao
avatar de Tony_
Administrateur
# Le 27/12/2008 à 12h59
Oui c'est ce que j'essayais d'expliquer. Si tu a tous les paramètres tu peux te connecter à n'importe quel base de donnée.

En général le paramètre $host c'est un sous-domaine ou une adresse IP, donc ça signifie que le script va aller se connecter à se sous-domaine (ou adresse IP) même si c'est sur un autre site ou un autre serveur.

En fait, il faut bien comprendre que la première ligne correspond à la connexion au serveur. Que ce serveur soit sur le même serveur que le script qui essaie de se connecter ou non, normalement la connexion se fera.
Si tu te connecte en local à partir de ton ordinateur, oui il faudra mettre "localhost".
Et la deuxième ligne c'est la connexion à la base de donnée situé sur le serveur où tu te connecte.

Si tu pose la question c'est surement que tu rencontre se problème, je t'invite à tester par toi même pour voir si ça marche de tes propres yeux. smiley

Cordialement. smiley
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
avatar de stc
Membre
# Le 27/12/2008 à 13h33
J'ai essayé quand même pour voir le résultat et voila le message d'erreur:

Citation : AUTEUR
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource


Je crois en fait que c'est impossible et même si ça l'était dans certain cas on a que localhost!
Je cherche d'autre moyen de jouer sur la base de données d'un autre site, par exemple en exécutant un fichier sur cet autre site en lui envoyant les données a mettre dans MySQL, est-ce possible?
Merci
Tchao
avatar de Tony_
Administrateur
# Le 27/12/2008 à 14h05
En effet, ce n'est pas possible, j'ai fais le test de mon côté et ça ne fonctionne pas non plus. smiley

Il y a bien une solution comme tu le souligne.

Si tu veux envoyer des données d'un site A vers un site B pour que le site B puisse enregistrer les informations dans sa base de donnée tu peux utiliser un script PHP pour envoyer les données à l'aide de POST ou de GET:
  • Site A: Créer un formulaire ou une page spéciale et spécifier que l'adresse de la page qui reçois les informations est situé sur la page du site B.
  • Site B: Créer une page (que seul le webmaster connait) où tu reçois les données et les insère dans la base de donnée. Il faut bien penser à sécuriser les données au cas où.
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
avatar de stc
Membre
# Le 27/12/2008 à 14h18
Le problème c'est qu'il y aura le site A qui disposera des données a enregistrer mais il n'y aura pas que le site B (il y aura aussi le site C,le site D ... au moins une centaine).
C'est pourquoi j'aimerais transmettre des données a un site tiers qui les enregistrera sur sa bdd sans utiliser header!
Merci Tchao
avatar de Tony_
Administrateur
# Le 27/12/2008 à 15h15
Eu ... la centaine de site (site B, C, D, ...) seront à toi ou pas? Je veux dire par là: est-ce que tu aura accès à leurs pages?

Parce que sinon, le site A peut créer un flux XML dans lequel il donne les informations de son choix et tu a juste à rajouter un script sur les sites B, C, D, ...
Le script (des sites B, C, D, ...) a juste à récupérer les informations du flux XML et ensuite les traiter pour les enregistrer dans leurs base de données respective.

Est-ce que tu vois ce que je veux dire?
Ça te semble réalisable selon ce que tu souhaite faire?
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
avatar de stc
Membre
# Le 27/12/2008 à 15h54
Ben en fait les sites ne seront pas a moi mais j'aurais un accord tacite pour envoyer des données (réseaux d'annuaires).
XML huu je connais pas trop faudrait que je me penche sur la question. Est-il possible d'envoyer des données concernant un site qui veut se faire référencé (titre ,description etc ...). Le problème c'est que je veux faire une indexation progressive et l'enregistrement des données devra se faire a partir du site A (sachant que le site B par exemple pourra ne pas être vu une journée entière, il faudra quand même que je lui envoie des données).
Tchao
Merci
avatar de stc
Membre
# Le 27/12/2008 à 17h01
Re-salut: Après quelque recherches (je suis même aller à la bibliothèque de ma ville arf !) je crois que je tiens le bon bout je vous donne la soluce ça pourrait servir ! smiley :
depuis le site A pour lancer un fichier php(test.php) qui se situe sur le siteB.com
  1.  
  2. <?php
  3. $fp=fopen('http://siteB.com/test.php','r'); //accès en lecture car certains serveurs refusent l'accès en écriture
  4. $fclose($fp)

Voila le fichier test.php est exécuté, bon après pour transmettre des données depuis le site A pour les mettre sur la bdd du site B, c'est autre chose, malheureusement on ne peut pas utiliser les sessions (j'ai essayé)! Si quelqu'un a une idée!
Tchao
PJ
réédition: Bon j'ai essayé de transférer des données avec des cookies mais il semblerait que test.php est bien exécuté coté serveur sur siteB.com et que donc il ne peut pas accéder a mon cookie,je ne vois qu'une seule solution c'est d'envoyer les données par la méthode GET mais je ne sais pas si je suis limité (par la taille) et le texte doit être formaté non? Sinon j'aimerais envoyer les données par post mais là je ne sais vraiment pas comment faire! a l'aide!
Tchao
avatar de Tony_
Administrateur
# Le 27/12/2008 à 18h08
Pour l'envoie en GET j'ai déjà vu des URL énormes, donc je ne pense pas que ce soit trop limité.
Edit: En fait, oui c'est limité, au temps pour moi.

Pour la méthode du POST c'est plus simple (s'il y a beaucoup de données à envoyer). Sur la balise <form> il faut que tu précise bien l'adresse du site qui doit traiter le formulaire. Exemple:
  1. <form action="http://www.example.com/page.php" method="post">


En d'autre mot, la page du formulaire peut très bien être situé sur le site A et la page qui traite les données sur le site B.
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
avatar de stc
Membre
# Le 27/12/2008 à 18h23
Je pensais plutôt a envoyer par la méthode POST sans utiliser de formulaire étant donné que j'aurais plusieurs sites a qui je devrais envoyer les données, il me semble bien avoir lu quelque part que la taille était limitée avec les données transmise par URL mais je n'en suis pas sur!
Tchao
avatar de stc
Membre
# Le 27/12/2008 à 18h33
Arf je viens d'essayer mais en fait c'est une mauvaise idée car le fichier n'est pas lancé dans la fenêtre du navigateur alors j'oublie la méthode get ou post, ce qu'il me faudrait c'est le moyen de transmettre une variable d'un site à l'autre (toutes les manières sont bonnes, la sécurité je m'en fous un peu, à la limite je m'en occuperai plus tard !).
avatar de Tony_
Administrateur
# Le 27/12/2008 à 21h49
Citation : stc
le fichier n'est pas lancé dans la fenêtre du navigateur

Je ne comprend pas ce que tu veux dire?
Ce que tu veux dire c'est quoi:
  • Que dans l'utilisation "prévu" de ce que tu souhaite faire, le site A ne va pas ouvrir la page de script
  • Lorsque tu a testé tu a rencontré un bug et le site A n'a pas réussi à lancer le script
N'hésitez pas à consulter le dossier référencement. smiley
Sinon hors internet je suis développeur web PHP.
avatar de stc
Membre
# Le 27/12/2008 à 21h59
Je n'ai pas rencontré de bug, j'exécute le fichier avec fopen (j'ai testé ça marche) mais je ne peux pas rajouter "?id=55" (par exemple) vu que le fichier n'est pas lancé dans le navigateur.
Page : 1 2