HTTP Call Method en ajax ou file_get_contents

bjr !!

Mon site à l'architecture ultra-basique suivante : formulaire.php > post > confirmation.php . Les données sont stockées sous mysql

Maintenant ça se complique un peu, je dois également stockées les données sur un autre serveur en envoyant les variables sur une adresse spécifique, exemple: "http://domain.com/xxx?var1=var1&var2=var2&var3=var3&var4=var4..." .

Comment puis-je lancer cette 2eme url pour envoyer les données à l'autre serveur depuis confirmation.php, sans que ça dérange le visiteur, c'est à dire de façon invisible?

J'ai fais quelques recherches qui me dirige plutôt vers un script ajax utilisant XMLHttpRequest.open, mais j'arrive pas à le mettre en pratique ni connaissant quasi-rien.

Merci d'avance !!
 
Un exemple :

Code:
function submitForm()
{ 
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }
 
    xhr.onreadystatechange  = function()
    { 
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200) 
                 document.ajax.dyn="Received:"  + xhr.responseText; 
              else 
                 document.ajax.dyn="Error code " + xhr.status;
         }
    }; 

   xhr.open( GET", "http://domain.com/xxx?var1=var1&var2=var2&var3=var3&var4=var4",  true); 
   xhr.send(null); 
}

Tu fais un envois en GET sur une URL. Après à toi de voir si tu préfère du post, et à gérer tout ce qui est var1 & cie.
En cherchant sur Google tu trouvera qqes centaines de tutos je pense.

Et tu as des librairies pour t'aider (et te simplifier la vie), comme prototype, exemple : http://amillet.developpez.com/tutoriels ... prototype/
 
avec des serveurs chez le même hébergeur, une simple connection sql suffit pour passer d'un serveur à l'autre.
 
Bool a dit:
Hello,

pour le cas présent ne serait il pas préférable de gérer ça coté PHP ?

Je "plussoie" Bool, a moins que tu es des contraintes non spécifiés dans ton message c'est certainement ce qu'il y a de plus propre à faire.
 
Bacteries, ton code à l'air sympa mais ça fait 1heure que je le tripote j'arrive pas à envoyer les variables :s

KOogar, c'est vers un autre hebergeur, un site / base completement différent

Bool, quel serait le script avec php? en s'aidant de la fonction " file_get_contents " ? je planche dessus ça à l'air de bien lancer l'url du 2eme site sans gener les visiteurs, mais par contre j'arrive pas à passer les variables. Tu as un petit code en php ?

Merci!!
 
Sisty : c'est pourtant exactement la même chose :

Code:
file_get_contents( 'http://domain.com/xxx?var1=var1&var2=var2&var3=var3&var4=var4' );



PS : après tu peux gérer ça à coup de fsockopen ou autre pour mieux gérer les éventuels timeout, mais le principe reste le même.
 
Bool a dit:
Code:
file_get_contents( 'http://domain.com/xxx?var1=var1&var2=var2&var3=var3&var4=var4' );

c'est bien ce que j'ai essayé d'utiliser, mais les variables passent pas avec les tests suivants :

Code:
<html>
<head>
<?php 
$email="test@test.com";
?>
</head>
<body>
<?php
file_get_contents( 'http://domain.com/?var1=$email' );
?>
</body>
</html>

ou

Code:
<html>
<head>
<?php 
$email="test@test.com";
?>
</head>
<body>
<?php
file_get_contents( 'http://domain.com/?var1=<?php echo $email; ?>' );
?>
</body>
</html>

ou encore
Code:
<html>
<head>
<?php 
$email="test@test.com";
?>
</head>
<body>
<?php
file_get_contents( 'http://domain.com/?var1=<?php echo $_POST["email"]; ?>' );
?>
</body>
</html>

:cry: :cry: :cry:

j'ai oublié quelquechose ?
 
au choix :
Code:
file_get_contents( 'http://domain.com/?var1='.$email );
ou bien :
Code:
file_get_contents( "http://domain.com/?var1=$email" );

et idéalement :
Code:
file_get_contents( 'http://domain.com/?var1=' . rawurlencode($email) );
 
lance le script directement au lieu de l'aspirer (ce qui sert a rien au passage
include("http://domain.com/xxx?var1=var1&var2=var2&var3=var3&var4=var4");
 
Bien sûr, et ce qui est bien avec include c'est que tu télécharges complètement la page tout comme avec file_get_contents(), mais en plus tu demandes ensuite à PHP de l'exécuter puis afficher. Bref plus lent, avec la faille de sécurité en prime.

Si tu veux un truc plus léger, il faut faire une requête HEAD à coup de fsockopen. Mais c'est un poil plus complexe quand même.
 
Quel faille ? tant que allow_url_include est a 1 sur l'autre serveur ca pose aucun probleme. faut simplement tester le REFERER pour sécuriser l'application sur l'autre serveur et c'est plié.

> PHP 4.3.0
// Works.
include 'http://www.example.com/file.php?foo=1&bar=2';
 
KOogar, en fait l'url lance une page de confirmation. Si je fais un include, ca va la lancer sur ma page normalement (?); à part si je lance l'include comme une iframe de 1px x 1px peut être

Bool, le 1er code " file_get_contents( 'http://domain.com/?var1='.$email ); " marche impec mci !!

Merci de votre aide, ça fait 2 questions pour l'instant que je pose sur ce forum et les réponses m'ont bien aidé!! vive webrankinfo :)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut