Aller au contenu

PHP entre deux serveurs


Sujets conseillés

Posté

Bonjour tout le monde, le probleme que je vais exposer n'est selon moi pas très facile à resoudre, mais je suis confiant :).

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.

Posté

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 ^^, 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 :

 <html>
<head>
</head>
<body>
<?php
$var ="toto";
echo $var;
?>
</body>
</html>

en

<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 :

 <html>
<head>
</head>
<body>
<?php
echo $var2;
?>
</body>
</html>

et bien ça te donnera ça en html :

<html>
<head>
</head>
<body>
blabla
</body>
</html>

voilà !

Posté

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.

Posté
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 ?

<{POST_SNAPBACK}>

=> 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, ...) ?

Posté

$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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...