affiché des données de ma bdd sur un autre site

Mammouth du PHP | 790 Messages

15 avr. 2012, 14:12

Salut,
voila, je voudrais utiliser les données contenu dans ma bdd mais sur d'autre site...
mon soucis est que je ne sais pas comment ça s'appel et je ne trouve aucun tuto a ce sujet: quelqu'un peut il m’aiguiller.

merci d'avance.
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 avr. 2012, 14:31

salut,

il y a plusieurs cas possible

- les autres sites sont a toi
- ce sont des sites "tiers"

1er cas
- ton hébergeur permet l'accès externe au sgbd et la pas de soucis tu utilise le même script que sur ton site (en mettant l'url ou l'ip vers les sgbd en "host").

Dans tous les autres cas (ce qui va être le tiens) tu doit prévoir le partage des données.
C'est ce que l'on appel un webservice.

SOAP est souvent utilisé mais super verbeux.
Avec php 5 il est assez simple de créer un serveur soap (et un client soap) (regarde la doc).

tu peux aussi simplement faire un service qui fournit un xml, ou un json suivant les données que tu souhaite fournir.

Tu auras donc un script php qui prend un paramètre (d'url généralement) et qui fournit (un echo) soit un fichier xml bien formé, soit un json suivant la complexité des données a fournir.

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

15 avr. 2012, 17:33

bien, en fait, les utilisateur peuvent enregistres des fiches et les autres peuvent voter ces fiches...
je voudrais que l'utilisateur qui a poster une fiche puisse afficher sur son propre site les résultats des votes de cette dite fiche...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

ViPHP
AB
ViPHP | 5818 Messages

15 avr. 2012, 21:32

Sur le site qui contient les résultats des votes tu fais une page qui renvoie le résultat ou un tableau de résultat en fonction d'un paramètre dans l'url. Et tu appelle cette page depuis tes autres sites avec le paramètre d'url qui permettra d'acquérir le bon résultat (c'est la méthode la plus facile décrite dans la fin du message de moogli).

Mammouth du PHP | 790 Messages

16 avr. 2012, 13:01

super, merci ca ma parrait plus simple que préve, cependant, il me semble que cette solution impose que le site receveur soit en php, non ?
sur ce site: www.votxo.com on peut créer un compte pour les votes et la solution pour afficher sur un site tiers est celle-ci:
<object classid="clsid:d27cdb6e-ae6d" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="120" height="50" id="vote" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="http://www.votxo.com/votes/french-y.swf?id=16336" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="wmode" value="transparent" />
<embed src="http://www.votxo.com/votes/french-y.swf?id=16336" quality="high" bgcolor="#FFFFFF" width="120" height="50" name="vote" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" /> </object>


moi, j’aimerais bien un truc du genre...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

ViPHP
xTG
ViPHP | 7331 Messages

16 avr. 2012, 13:38

Donc soit tu fais comme eux et tu développes un programme en Flash qui va être hébergé sur ton serveur et qui affichera les données grâce aux paramètres fournis en url.
C'est ce que voxto fait.

Soit tu fais une page et tu fournis une balise de type iframe (ça fait comme le flash en gros).

Soit tu génères une image avec les données de ta fiche et tu donnes le lien vers cette image (qui n'a pas besoin d'exister, tu peux pointer vers un script qui la génère à la volée).

Mammouth du PHP | 790 Messages

16 avr. 2012, 14:17

ok, merci donc pour commencer, ce seras iframe, plus facile :D
merci...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 avr. 2012, 16:33

ou alors tu indique simplement ce que tu founit (soap, JSON, XML) et les gens se démerde seul à faire leur parseur ;) (tu peux bien sure être sympa et fournir la version ;) )

l'iframe c'est le mal :mrgreen: :mrgreen:

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

16 avr. 2012, 17:21

moogli, je ne sais pas encore quel solution utilisé, il faut que je les regarde encore un peut toutes et surtout que je trouve des tuto car quand je sais pas faire un truc, la doc seul ne me suffit pas, elle ne met utile que lorsque j'ai compris le principe #-o

- la solution iframe et url avec paramètre je sais faire.
- pour l’exemple voxto avec flash je pense que ça leur est utile pour permettre de voter directement sur le site receveur, non ?
ça j'ai pas besoin, on ne vote que sur mon site, pour le moment.

le truc que je souhaite est un petit script html avec un peut de css pour donner la possibilité de changer les petites étoiles qui affiche les résultats pour adapter au design du site qui reçoit mon code...

pour soap, JSON, XML il faut que fasse chauffer chrome :D
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

ViPHP
ViPHP | 2577 Messages

17 avr. 2012, 08:14

Pourquoi ne pas regarder un module qui permet d'afficher des flux RSS (ou autre norme) pour s'en inspirer.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

17 avr. 2012, 10:24

JSON est assez "standard", utilisable avec php mais aussi avec JS ou java (et surement d'autre langage).

ça ressemble a ça :
$a = json_encode(array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9"));
donne ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]

le format est simple, en php si tu récupère ça, un json_decode et tu obtient un tableau.

Si tu avais un objet tu peux le récupérer ainsi.

Pas de prise de tête. Imagine que tu modélise tes fiches via un objet.
par exemple
<?php
class fiche implements JsonSerializable{
	private $numero;
	private $titre;
	private $text;
	// d'autre trucs si tu veux
	public function __construct(){
		//
	}
	public function getNumero(){
		return $this->numero;
	}
	public function getTitre(){
		return $this->titre;
	}

	public function getText(){
		return $this->text;
	}

	public function setNumero($num){
		$this->numero = $num;
	}

	public function setTitre($titre){
		$this->titre=$titre;
	}
	public function setText($txt){
		$this->text = $txt;
	}
	
	public function jsonSerialize(){
		return ['numero'=>$this->getNumero(),'texte'=>$this->getText(),'titre'=>$this->getTitre()];
		
	}
}

$f1 = new fiche();
$f1->setNumero(12);
$f1->setText('du blabla 
		sur plusieurs
meme si 
		tu veux');
$f1->setTitre('le titre');

$encode = json_encode($f1);
var_dump($encode);

$decode = json_decode($encode);
var_dump($decode);
exemple basique sans contrôle de champs et surement pas adapter
donne

Code : Tout sélectionner

string '{"numero":12,"texte":"du blabla \r\n\t\tsur plusieurs\r\nmeme si \r\n\t\ttu veux","titre":"le titre"}' (length=100) object(stdClass)[2] public 'numero' => int 12 public 'texte' => string 'du blabla sur plusieurs meme si tu veux' (length=47) public 'titre' => string 'le titre' (length=8)
Que ce soit avec du xml que tu formate ou un tableau / objet (je verrais un tableau d'objet fiche :) ) que tu encode en json au final tu final tu fait un "simple" echo.

pour un exemple précis a partir de mon 1er code
le fichier de ton serveur
<?php
class fiche implements JsonSerializable{
	private $numero;
	private $titre;
	private $text;
	// d'autre trucs si tu veux
	public function __construct(){
		//
	}
	public function getNumero(){
		return $this->numero;
	}
	public function getTitre(){
		return $this->titre;
	}

	public function getText(){
		return $this->text;
	}

	public function setNumero($num){
		$this->numero = $num;
	}

	public function setTitre($titre){
		$this->titre=$titre;
	}
	public function setText($txt){
		$this->text = $txt;
	}
	
	public function jsonSerialize(){
		return ['numero'=>$this->getNumero(),'texte'=>$this->getText(),'titre'=>$this->getTitre()];
		
	}
}

$f1 = new fiche();
$f1->setNumero(12);
$f1->setText('du blabla 
		sur plusieurs
meme si 
		tu veux');
$f1->setTitre('le titre');

$encode = json_encode($f1);
echo $encode;
le fichier "distant"
<?php
$encode = file_get_contents('http://localhost/test/juliette2.php');
$decode = json_decode($encode);
var_dump($decode);
affiche

Code : Tout sélectionner

object(stdClass)[1] public 'numero' => int 12 public 'texte' => string 'du blabla sur plusieurs meme si tu veux' (length=47) public 'titre' => string 'le titre' (length=8)
ce que l'on avait avant :)

c'est pas plus complexe que cela.

tu peux regarder un exemple A cette adresse (le code source est en bas de page)
Cela reste rudimentaire mais devrais t'aider un peu :)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

17 avr. 2012, 12:57

Un grand merci moogli, je me met au travail de suite :D
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.