Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2949 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Effectuer une requête sur une page distante. (résolu)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Effectuer une requête sur une page distante. (résolu)

n°497808
belgique
Posté le 25-08-2003 à 22:36:11  profilanswer
 

Voilà, je veux qu'un script php effectue une requête sur une page lors d'un traitement sur par exemple:


http://www.monsite.com/update.php


 
Le but est d'appeler la page sans le faire via mon navigateur. Ca doit être invisible du niveau de l'utilisateur.  
Je pourrais ouvrir un socket et envoyer les entêtes mais il doit sûrement y avoir bien plus simple. Voilà ...


Message édité par belgique le 25-08-2003 à 23:09:36
mood
Publicité
Posté le 25-08-2003 à 22:36:11  profilanswer
 

n°497819
ACut
Posté le 25-08-2003 à 22:40:38  profilanswer
 

Belgique a écrit :

Voilà, je veux qu'un script php effectue une requête sur une page lors d'un traitement sur par exemple:


http://www.monsite.com/update.php


 
Le but est d'appeler la page sans le faire via mon navigateur. Ca doit être invisible du niveau de l'utilisateur.  
Je pourrais ouvrir un socket et envoyer les entêtes mais il doit sûrement y avoir bien plus simple. Voilà ...
 


Un tag <img...> avec l'url php en src (par exemple).
 
Edit: non c'est débile, laisse tomber mon idée.


Message édité par ACut le 25-08-2003 à 22:43:45

---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497826
belgique
Posté le 25-08-2003 à 22:44:19  profilanswer
 

Non, non, tu ne m'as pas compris... je ne veux pas appeler la page depuis le  navigateur client.  
Exemple concret :
 
J'ai mon site perso... Les gens voient toujours la même page. Tous les xx visites, je dois contacter un site distant pour le prévenir. Le client lui doit continuer à voir mon site normalement, même s'il est le xx visiteur :)

n°497828
Freekill
Electron libre…
Posté le 25-08-2003 à 22:48:05  profilanswer
 

fopen(), ou utiliser une classe HTTP POST ?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°497829
ACut
Posté le 25-08-2003 à 22:48:18  profilanswer
 

Belgique a écrit a écrit :

Non, non, tu ne m'as pas compris... je ne veux pas appeler la page depuis le  navigateur client.  




Ouais je m'en suis rendu compte après avoir posté (d'où mon Edit), scuze-moi.
 

Belgique a écrit a écrit :

 
Exemple concret :
J'ai mon site perso... Les gens voient toujours la même page. Tous les xx visites, je dois contacter un site distant pour le prévenir. Le client lui doit continuer à voir mon site normalement, même s'il est le xx visiteur :)




Je suis assez branquignole en PHP, dc je risque pas de t'aider puissamment, mais ton truc m'intéresse. Le critère déclencheur, ce serait ce_visiteur == xx c'est ça?
- xx est fixe?
- y a une db dans l'histoire?


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497830
simogeo
j'ai jamais tué de chats, ...
Posté le 25-08-2003 à 22:49:22  profilanswer
 

moi j'ai rien capté a ce qu'il voulait  [:southpark1]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°497832
ACut
Posté le 25-08-2003 à 22:51:19  profilanswer
 

simogeo a écrit :

moi j'ai rien capté a ce qu'il voulait  [:southpark1]  


Il veut déclencher un process PHP, genre màj d'une DB, de façon transparente pour l'utilisateur MAIS déclenchée par l'arrivée d'un xxième utilisateur.


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497833
RiderCrazy
Posté le 25-08-2003 à 22:51:29  profilanswer
 

simogeo a écrit :

moi j'ai rien capté a ce qu'il voulait  [:southpark1]  


[:benou_+1]
Surtout que le code php est interprété coté server et de ce fait l'utilisateur ne verra pas la différence... [:spamafote]
 
Edit:

ACut a écrit :


Il veut déclencher un process PHP, genre màj d'une DB, de façon transparente pour l'utilisateur MAIS déclenchée par l'arrivée d'un xxième utilisateur.


Benh il fait un test sur sa page avec le numéro du visiteur (je sais pas coment compte aussi...)


Message édité par RiderCrazy le 25-08-2003 à 22:53:57
n°497834
Freekill
Electron libre…
Posté le 25-08-2003 à 22:51:33  profilanswer
 

simogeo a écrit :

moi j'ai rien capté a ce qu'il voulait  [:southpark1]  


 
Il veut que son script appelle une autre page sans que ce soit visible pour l'utilisateur.


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
n°497837
simogeo
j'ai jamais tué de chats, ...
Posté le 25-08-2003 à 22:53:06  profilanswer
 

ACut a écrit :


Il veut déclencher un process PHP, genre màj d'une DB, de façon transparente pour l'utilisateur MAIS déclenchée par l'arrivée d'un xxième utilisateur.


c tjrs transparent pour l'utilisateur ce genre de trucs heinnnn  :o


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
mood
Publicité
Posté le 25-08-2003 à 22:53:06  profilanswer
 

n°497838
ACut
Posté le 25-08-2003 à 22:55:34  profilanswer
 

Bon, on résume:
- quel événement doit déclencher l'appel du script PHP?
- sur quel serveur ce script est-il hébergé?
- quel est le client de ce serveur?


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497842
RiderCrazy
Posté le 25-08-2003 à 22:58:18  profilanswer
 

ACut a écrit :

Bon, on résume:
- quel événement doit déclencher l'appel du script PHP?
- sur quel serveur ce script est-il hébergé?
- quel est le client de ce serveur?


-un visiteur en plus (impliquant un test car je ne pense qu'il souhaite envoyer une requête à chaque visiteur)
-il va nous le dire je pense mais je ne suis pas sûr que cela ai un réel intêret (sauf si ils ont bloqué les appels sur des sites distants)
- :??:

n°497843
ACut
Posté le 25-08-2003 à 22:58:29  profilanswer
 

simogeo a écrit :


c tjrs transparent pour l'utilisateur ce genre de trucs heinnnn  :o  


Je dirais pas ça: l'utilisateur est généralement CONSCIENT qu'il émet une requête vers une url suffixée PHP et le client reçoit l'html craché par l'interpréteur PHP. Ce qui est transparent, c'est la cuisine faite par le script PHP pour pondre l'HTML.
Ici, je pense que l'objectif est que l'utilisateur (disons le déclencheur) n'aurait pas conscience qu'il provoque l'invocation d'un script PHP...


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497845
RiderCrazy
Posté le 25-08-2003 à 23:00:07  profilanswer
 

ACut a écrit :


Je dirais pas ça: l'utilisateur est généralement CONSCIENT qu'il émet une requête vers une url suffixée PHP et le client reçoit l'html craché par l'interpréteur PHP. Ce qui est transparent, c'est la cuisine faite par le script PHP pour pondre l'HTML.
Ici, je pense que l'objectif est que l'utilisateur (disons le déclencheur) n'aurait pas conscience qu'il provoque l'invocation d'un script PHP...

bah il y verra rien
client (envoie d'une requête, appel d'un page quoi...) -> server (traitement de l'info en php) -> client (reçoit le html)

n°497846
ACut
Posté le 25-08-2003 à 23:00:54  profilanswer
 

C'est le couvre-feu en Belgique ou quoi?


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497850
belgique
Posté le 25-08-2003 à 23:04:16  profilanswer
 

Je règlais mon problème c'est tout. Le xième visiteur, c'était juste pour donner un exemple.  
Merci pour les réponses de tout le monde. En fait la question c'était :"Comment effectuer une requête http depuis le serveur".
 
La solution:
 

function http_request($url, $post=false, $cookie=false, $head=false, $referer=false) {
 
    $headers = '';
    $data = '';
    $res = '';
 
    $method = $post ? 'POST' : 'GET';
    $method = $head ? 'HEAD' : $method;
 
    extract(parse_url($url));
 
    $cport = isset($port) ? (int)$port : 80;
    $port = isset($port) ? ':'.$port : '';
 
    $headers .= $method.' '.$path;
    $headers .= isset($query) ? '?'.$query : '';
    $headers .= " HTTP/1.1\r\n";
 
    $headers .= "Host: $host$port\r\n";
 
    $headers .= ($referer) ? "Referer: $referer\r\n" : '';
 
    if($post && !$head) {
 
        $tmpvars = array();
        foreach($post as $key=>$val) {
            $tmpvars[] = rawurlencode($key).'='.rawurlencode($val);
        }
        $data .= implode('&', $tmpvars) . "\r\n";
 
        $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
 
    }
 
    if($cookie) {
 
        $tmpvars = array();
        foreach($cookie as $key=>$val) {
            $tmpvars[] .= rawurlencode($key) .'='. rawurlencode($val);
        }
 
        $headers .= 'Cookie: '. implode('; ', $tmpvars) ."\r\n";
 
    }
 
    $headers .= "Connection: close\r\n";
 
    if($data) {
        $headers .= 'Content-length: '.strlen($data)."\r\n";
    }
 
    $request = $headers."\r\n".$data;
 
    $fs = @fsockopen($host, $cport, $error, $errno, 10);
 
    if(!$fs) {
        echo "Erreur $errno: $error<br />\r\n";
    } else {
 
        fputs($fs, $request);
 
        while(!feof($fs)) {
            $res .= fgets($fs, 512);
        }
 
        fclose($fs);
 
        return $res;
 
    }
 
    return false;
 
}


Message édité par belgique le 25-08-2003 à 23:06:36
n°497852
RiderCrazy
Posté le 25-08-2003 à 23:06:21  profilanswer
 

En plus c'est pas un truc aussi simple qu'auquel on pensait...
Bon, au moins t'as trouvé ta solution [:xp1700]

n°497854
belgique
Posté le 25-08-2003 à 23:07:11  profilanswer
 

Disons que je ne suis pas toujours super bon pour exprimer mes problèmes ;).
Et que la solution là semble complexe car elle traite les POST et GET ainsi que les cookies.


Message édité par belgique le 25-08-2003 à 23:07:57
n°497862
ACut
Posté le 25-08-2003 à 23:14:37  profilanswer
 

Belgique a écrit :

Je règlais mon problème c'est tout. Le xième visiteur, c'était juste pour donner un exemple.  
Merci pour les réponses de tout le monde. En fait la question c'était :"Comment effectuer une requête http depuis le serveur".
 
La solution:
...


 
Ah ouais c'est pas vraiment la même chose. Je (on?) pensais que tu voulais "appeler" la page www.serveur.com/update.php (cf. ton premier post) de façon invisible. Ici tu paramètres toi-même de A à Z la requête et dc Freekill avait raison...
Bon ben ça répond pas à ma question mais il est vrai que çépamontopik.
@+


---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/
n°497865
belgique
Posté le 25-08-2003 à 23:18:06  profilanswer
 

Ben ça se fait de manière invisible... Un visiteur se connecte au site. Je décide d'effectuer le traitemet, j'utilise ma fonction et je continue mon traitement comme si de rien était. L'utilisateur ne voit rien.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Effectuer une requête sur une page distante. (résolu)

 

Sujets relatifs
Style Swticher creer 2 présentation differente CSS sur une page HTMLHerbergeur Php
[Resolu] [C++ / thread / windows] Demarrer une methode en Thread ?valeur d'un cookie [resolu] nv question voir msg 11
[PHP] Comment faites vous pour savoir quel champ n'est pas renseigné ?[PHP/MySQL] Probleme de guillemets : A L'AIDE !!
Ecriture zone mémoire dans un fichier donne n'importe quoi (resolu)[PHP] savoir si un champs est vide ou pas...
[html css] l'id des div doit etre unique? resoluIntercerpter des messages depuis une sous-classe de TComponent [resolu
Plus de sujets relatifs à : [PHP] Effectuer une requête sur une page distante. (résolu)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR