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 :

Utilisation de l'HTTP REQUEST


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 11
    Par défaut Utilisation de l'HTTP REQUEST
    Bonjour à tous,

    Je travaille actuellement sur un projet Web, et nous venons tous juste de commencer PHP, je rencontre une difficulté quand à l'envoie de requetes depuis PHP.

    LE CONTEXTE: J'utilise pour mon site une architecture standard MVC, lors de la validation du formulaire par mon contrôleur, celui ci redirige vers une page, en envoyant en parametre des informations. En premier lieu j'ai utilisé le 'header(location)', malheuresement je ne peut envoyer de methode post avec ce dernier. Je me suis donc penché vers HTTP-REQUEST2, la difficulté etant que je n'arrive pas à l'installer.

    QUESTIONS: -Connaissez vous une methode me permettant de renvoyer mes informations en POST (hors formulaire caché) depuis mon Controleur?
    - Sinon pourriez vous m'aider à installer mon extension PEAR (HTTP-Request2).

    Je vous remercie d'avance, de l'interet que vous porterez à ma requête.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pas besoin de librairie pour faire des requête HTTP , simplement avec file_get_contents() :

    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
    <?php
    $data = array ('param' => 'value', 'param2' => 'value2');
    $data = http_build_query($data);
     
    $context_options = array (
            'http' => array (
                'method' => 'POST',
                'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
                    . "Content-Length: " . strlen($data) . "\r\n",
                'content' => $data
                )
            );
     
    $context = context_create_stream($context_options)
    $reponse = file_get_contents('http://monurl',null,$context);
    si tu tiens absolument à utiliser une lib il existe curl qui est juste une extension à activer.

    Ceci étant dit , ca me parait étrange de devoir envoyer une requête http à ta propre application. Doit y'avoir plus simple / performant
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 11
    Par défaut
    Bonjour Grunk et merci de ta réponse rapide.

    Effectivement je pense qu'il doit y avoir un moyen plus simple et c'est pour cela que je me suis tournée vers vous.
    En fait je ne sais pas si j'ai été très claire dans ma description, je vais essayer de détailler d'avantage le scénario. D’ailleurs si celui ci vous semble incorrect n’hésitez pas à m'en faire part.

    'VueClient.php' -> demande d'une requête -> contrôleur charge les infos -> Le contrôleur redirige automatiquement la page vers VueClient avec envoie de paramètre en post -> affichage de la page avec recuperation des paramètres.

    Pour le moment j'arrive à respecter ce scenario en utilisant header(location) et en y concaténant mes valeurs désirées, malheureusement ces dernières apparaissent en GET. Bien que pour le moment cela ne me pose pas de problème critique, je préférais les faire transiter en post.

    En ce qui concerne ton Code, j'ai l'ai étudier mais pas encore appliquer, est ce qu'il redirige automatiquement, ou il n'envoie que les paramètres?

    Merci d'avance, amicalement Fubautsuw.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Le code que je t'ai donné fait une requête HTTP en aucun cas c'est une redirection. une redirection ca se fait via un header : location.

    Le contrôleur redirige automatiquement la page vers VueClient avec envoie de paramètre en post -> affichage de la page avec recuperation des paramètres.
    Et pourquoi le controleur ne charge t'il pas simplement la vue client plutôt que de faire une requête http ?

    Les requête http c'est le client qui les fait vers ton site , en interne dans ton appli ca ne sert à rien , tu as tous ce qu'il faut pour charger les bonnes données.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 11
    Par défaut
    J'utilise déjà header, même si en effet il me donne ce que je désire (transfert des données plus redirection) les données envoyée passe en GET, hors j'aurais désirée les passer en POST.

    Je pense que ma question peut paraitre idiote, mais j'entend souvent dire la même expression que toi "charger la vue" client. Qu'est ce que tu entend par la?

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Dans une action de controller tu fais des opérations (récup de paramètres , appel à un model ...) et à un moment donné tu charge une vue qui va exploiter les données. Tu n'as pas besoin de rediriger sur un autre controller pour ouvrir une autre vue si le controleur actuel à toutes les données nécéssaire à l'exploitation de la vue.

    Et si ce n'est pas le cas rien ne t'empèche dans ton controller d'appeler un autre controller :

    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
    class testController
    {
    	/**
    	* Chargement d'une autre vue
    	*/
    	public function a()
    	{
    		if(xxxx)
    			$this->loadView('vue.html');
    		else
    			$this->loadView('autrevue.html');
    	}
     
    	/**
    	* Appel d'un autre controller
    	*/
    	public function b()
    	{
    		if(xxxx)
    		{
    			$this->loadView('vue.html');
    		}
    		else
    		{
    			$ctrl = new AutreController();
    			$ctrl->b($_POST);
    		}
    	}
    }
    Après tout dépend de comment est gérer ton MVC , mais dans l'idée c'est comme ça que ça se passe.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 11
    Par défaut
    Ah d'accord je comprend, donc je ne m'etais pas égaré de base alors. Dans ma façon de pensée mon scenario ce passer ainsi:
    VueClient -> Controleur -> VueClient+nouvelle données

    Ce qui me manquait c'etait la fonction pour appeller ma vue et lui envoyer des parametres. D'apres ce que je vois c'est le role de 'loadView()'?

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Oui, quand tu charges une vue , soit tu lui passes les données que tu veux soit elle à accès au contexte du controller et à donc à toutes les variables du controller.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 11
    Par défaut
    Salut Grunk,

    Ne pourrais - je pas include ma vue dans mon controler? Plusieur personne me l'ont conseillé, en terme de resultat j'obtient ce que je veux. Le probleme reste que j'ai une URL legerement moche..

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    C'est une solution oui.
    Après les url ça se modifie avec de l'url rewriting par exemple.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 11
    Par défaut
    D'accord je te remercie beaucoup pour toute ces informations Grunk.

    Dit moi, avant de clôre ce sujet, connaitrais tu quelque tutoriels sur les front controler par hasard.

  12. #12
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Cet article chez OReilly est pas tout jeune mais les grand principes sont là : http://www.onlamp.com/pub/a/php/2004...ontroller.html

    Sinon la meilleur solution étant encore de regarder ce qui se fait dans les divers frameworks et librairies.

    Un exemple avec celui que j'utilise dans mon fw : https://github.com/grunk/Pry/blob/ma...uter.class.php ça reste relativement simple et accessible.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [C#] [WebServices] Http Request et SOAP
    Par Piolet dans le forum Windows Forms
    Réponses: 17
    Dernier message: 02/02/2009, 18h42
  2. [JMeter] HTTP request avec des parameters différents
    Par pmartin8 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 18/09/2006, 15h40
  3. XML Http Request
    Par ouam81 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/06/2006, 20h25
  4. HTTP request failed
    Par claralavraie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/05/2006, 12h16

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