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 :

Simuler un envoie de formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Simuler un envoie de formulaire
    Bonjour,

    je vous contacte car je suis assez mauvais en PHP et j'aurais besoin de vos lumière.

    Je souhaite effectuer un module pour un gestionnaire de téléchargement de type JDownload ou pyLoad.

    Mon problème est que je n'arrive pas a simuler un envoie de formulaire.

    Mon module se connecte a une page internet, récupere des information et je souhaiterais faire une fonction qui va valider le formulaire et me mettre dans une variable l'url qui sera ouverte. (L'url ouverte est en faite un fichier qui va se télécharger)

    La méthode form du site est sous la forme

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form accept-charset="UTF-8" method="post" action="http://urldufichier.com" style="margin:auto">
    <input type="hidden" name="a" value="1" />
    <input type="submit" class="form-button" name="submit" value="Download the file" /></form>

    Je vous remercie d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 103
    Points : 4 449
    Points
    4 449
    Par défaut
    Bonjour,

    en php pour faire un post il faut utiliser la bibliothèque curl.
    et curl peut détecter retourner une redirection à la suite d'un post.
    $moi= ( !== ) ? : ;

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je m'étais penché sur cette librairie , mais Tous les exemples que j'ai trouvé sont avec des formulaires à remplir alors que là je n'ai rien a remplir. De plus la surveillance des redirection se fait sur des pages web or mon URL est un fichier.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé ça mais ça ne fonctionne pas. Je comprend pas tout dans cURL, surtout pour recuperer une URL qui n'a pas de page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($curl,CURLOPT_USERAGENT, monuseragent); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($curl, CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($curl, CURLOPT_URL, $this->Url); 
    $ret = curl_exec($curl);
    curl_close($curl);
    return $ret;
    Je vous remercie d'avance

  5. #5
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    Il manque CURLOPT_POSTFIELDS avec les données de ton formulaire non?

    Du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $data = array(
            "a"=>"1",
    );
     
    $curl = curl_init(); 
    //...
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
    //...
    PS : Tu peux récupérer les erreurs et informations, curl parlera un peu plus (curl_errno, curl_error et curl_getinfo).

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Ah, même s'il n'y a pas d'editbox je doit envoyé le formulaire avec les champs hidden

  7. #7
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Ben, il y a de forte chance que le serveur s'attende à recevoir ces paramètres même s'il ne souhaite pas les afficher pour l'utilisateur.

    J'insiste : Traite toujours les erreurs avec curl, tu auras les messages d'erreur du serveur.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'arrive a executer le formulaire, mais je recupere la page actuelle plutot que de récuperer l'url du fichier qui apparait a l'execution du formulaire. Et la je seche totalement.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bon j'ai trouvé la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $data = array("a"=>"1");
        $curl = curl_init(); 
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl, CURLOPT_HEADER, true);
        curl_setopt($curl, CURLOPT_URL, "monsitedebase");
        $ret = curl_exec($curl);
    dans $ret j'ai la page actuelle avec l'url de mon fichier. Il me suffit ensuite de faire un preg_match pour la mettre dans une variable.

    J'ai trouvé suite a une erreur en mettant FOLLOWLOCATION en commentaire.

Discussions similaires

  1. Simulation d'envoi de formulaire. Des conseils?
    Par Lady dans le forum Général Java
    Réponses: 3
    Dernier message: 25/06/2012, 12h09
  2. Simuler l'envoi d'un formulaire
    Par Oberown dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/04/2009, 16h45
  3. [curl] requete http post ( simuler envoi de formulaire )
    Par mikebranque dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 07/07/2008, 21h55
  4. Simuler l'envoi d'un formulaire
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 30/06/2008, 09h41
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 10h06

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