Version complète: sur le forum Webmaster Hub : PHP entre deux serveurs
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Berberber
Bonjour tout le monde, le probleme que je vais exposer n'est selon moi pas très facile à resoudre, mais je suis confiant smile.gif.


J'ai deux serveurs.


premier serveur

j'attribue une variable

$var="toto";

ensuite j'inclus le deuxieme serveur, où est le script qui va travailler avec $toto.

include 'http://serveur2/script.php';

sur celui-ci echo "$toto"; me donne : rien du tout, la variable n'est pas transmise.

j'abandonne cette possibilté, je veux faire passer $toto, en get

ce qui me donne
include 'http://serveur2/script.php?toto=$toto';

tres bien, toto s'affiche mais, cela ne marche que si mon toto est petit. Imaginons que toto fasse 200 caracteres (ou plus), que faire de toto pour qu'il arrive sur le deuxieme serveur ?

Merci de votre aide, j'ai fait pas mal de recherches sans trouver.
bigornot
oulahaha ! un peu de révision !

quand tu fais $var = "toto";
$toto n'existe pas ! par contre, $var existe et contient le mot : toto
ensuite, un include se fait comme ça : include("lapage.extension");
et, pour faire un echo sur une variable, on ne met pas le guillements :
echo $var;

de plus, comme tu le sais surement happy.gif, php est un langage conté serveur, donc quand tu inclus la page qui contient une variable, tu fais une requete au serveur de la page, qui demande à EasyPhp (par exemple) de lui interpreter cette page (en locurence, script.php) , et EasyPhp va donc l'interpreter en TRANSFORMANT ta page .php avec des balises <?php et ?> en code html ( il transformera par exemple lecode suivant :
CODE
<html>
<head>
</head>
<body>
<?php
$var ="toto";
echo $var;
?>
</body>
</html>
en
CODE
<html>
<head>
</head>
<body>
toto
</body>
</html>

donc, , si tu inclus un script EXTERIEUR au serveur contenant une variable, tu n'auras pas cette variable variables ...
/* Ps : le script <?php $var = "toto"; ?> inclus de l'exterieur ne donnera rien */
mais tu peux inclure des scripts autres ...
par exemple, si maintenant tu inclus http:/pareil.com/script.php?var2=blabla et que, du serveur pareil.com, tu changes ton script en ça :
CODE
<html>
<head>
</head>
<body>
<?php
echo $var2;
?>
</body>
</html>
et bien ça te donnera ça en html :
CODE
<html>
<head>
</head>
<body>
blabla
</body>
</html>

voilà !
Berberber
Merci pour le cours de php, mais je n'ai pas l'impression que tu reponds à ma question. D'ailleurs j'ai moi même expliqué dans ma question que j'avais testé l'envoi des variables en GET. Seulement celles-ci sont limitées par la taille. Donc la question reste ouverte.
Berberber
Aparemment, on ne peut qu'utiliser cURL pour faire cela, en envoyant les données en POST.....
Anonymus
Mais.. avec POST ca doit marcher, tu n'as pas essayé ?
Dash
CITATION(Berberber @ 09 Oct 2004, 05:18)
tres bien, toto s'affiche mais, cela ne marche que si mon toto est petit. Imaginons que toto fasse 200 caracteres (ou plus), que faire de toto pour qu'il arrive sur le deuxieme serveur ?
*


=> Suis-je limiter à 255 caractères par la méthode GET
Si vous avez acces a la configuration de votre serveur Apache, et si vous voulez modifier la taille limite du volume autorise par la methode GET utilisez la directive LimitRequestLine

Si vous devez faire communiquer 2 serveurs distants, pourquoi ne pas utilisez un format d'echange (xml, fichier texte, ...) ?
Berberber
CODE
$postData[ 'addmail' ] = $addmail;
$postData[ 'addmail2' ] = $addmail2;
$url="http://ita***berb********r/l**y.php";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url );      

    


//seems no need to tell it enctype='multipart/data' it already knows
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData );

$response = curl_exec( $ch );


voilà la solution que j'ai utilisée
Anonymus
Non, il me semble que l'on peut, de la meme facon que l'on demande les entetes d'un site, envoyer des données type POST ou GET, avec la commande fputs, il me semble.

Tu as ici : http://66.102.9.104/search?q=cache:YLSjYg_...get+fputs&hl=fr un bon exemple de ce qui peut être fait.

wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.