IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Redirection php avec données POST et fsockopen


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Redirection php avec données POST et fsockopen
    Bonjour,

    Voilà j'ai un fichier prod.php qui doit rediriger vers un autre serveur totalement indépendant du notre.
    Cette redirection doit sortir de nos frames (je sais, pas top, mais ca a été fait comme ca, et je reprends le code).
    Elle doit amener des données vers l'autre serveur. Nous ne voulons pas que cela se voit dans l'URL, nous avons décidés donc d'opter pour des données POST.

    J'utilise la fonction fsockopen de PHP.

    Petite explication :
    - menu.php : frame de gauche, comporte les liens amenants aux fichiers qui traitent les données.
    - proc.php : est le fichier pointé par un des liens. C'est lui qui créée mon objet et qui appelle les méthodes de mon objet.
    - prod.php : c'est ma classe avec le constructeur, et ses méthodes.


    Dans menu.php, j'ai mon lien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="../proc.php" target="_blank">Lien</td>
    Dans proc.php, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $monObjet=new monObjet();
    $result = $monObjet->renvoi();
    if (isset($result["errno"])) 
    {
    	$errno = $result["errno"];
    	$errstr = $result["errstr"];
    	echo "<B>Error $errno</B> $errstr";
    	exit;
    } 
    else 
    {
    	for($i=0;$i< count($result); $i++) 
    		echo $result[$i];
    }
    Dans prod.php, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    function renvoi()
    {
        $_POST['1']='10';
    	$_POST['2']='M';
     
    	//Initialisations
    	$req="";
    	$poststring="";
     
    	foreach ($_POST as $key => $value) 
    	{
    		$poststring .= urlencode($key) . "=" . urlencode($value);
    	}
     
    	$req.=$poststring ;
    	$url="/ChezEux/servletEntree";
     
    	$host="partenaire.com";
     
    	$reqheader = "POST $url HTTP/1.1\r\n"
    			."Host: $host\n"
    			."User-Agent: PostIt\r\n" 
    			."Content-Type: application/x-www-form-urlencoded\r\n"
    			."Content-Length: ".strlen($req)."\r\n\r\n"
    			."$req\r\n";
     
    	$socket=fsockopen($host,80, $errno, $errstr);
     
    	//si retourne faux, il y a une erreur
    	if ($socket===false) 
    	{
    		$result["errno"] = $errno;
    		$result["errstr"] = $errstr;
    		return $result;
    	}
     
    	//Ecrit dans le fichier $socket la valeur de $reqheader
    	fputs($socket, $reqheader); 
     
    	//Tant qu'on est pas à la fin du fichier, on intègre les données dans un tableau
    	while (!feof($socket)) 
    	{
    		//On récupère la ligne courante
    		$result[] = fgets($socket, 4096);					
    	}
     
    	fclose($socket);
     
    	return $result;
    }
    Le problème que j'ai :
    J'arrive bien à sortir de mes frames mais dans mon URL, j'ai toujours l'adresse de chez nous et non l'adresse de notre partenaire.
    du coup, j'ai une nouvelle fenêtre avec le formulaire de notre partenaire (donc ses données) mais avec notre adresse URL.

    Je n'arrive pas à savoir ce qui pose problème.
    J'espère avoir été assez claire.

    Merci à toute personne qui se penchera sur mon problème.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Eh bien, en fait, la socket ne peut être utilisée comme dans mon code pour une redirection.
    Elle ne permet que de récupérer des données, c'est pour cela que je récupéré dans ma page.

    Voilà pourquoi cela ne fonctionne pas.

    Bonne fin de journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer requête HTTP avec données POST
    Par Dominique49 dans le forum Services Web
    Réponses: 1
    Dernier message: 20/12/2011, 11h11
  2. Réponses: 4
    Dernier message: 22/01/2011, 16h23
  3. Réponses: 3
    Dernier message: 28/01/2008, 22h18
  4. Envoyer données POST par fsockopen
    Par Shuny dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2007, 16h25
  5. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo