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

WinDev Discussion :

[WD 10] HTTPRequete (mode POST) vers une page PHP


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Points : 78
    Points
    78
    Par défaut [WD 10] HTTPRequete (mode POST) vers une page PHP
    Bonjour ...

    Alors voila, j'ai réalisé un formulaire (en html) qui envoie des information vers une page PHP qui récupéré les informations du formulaire pour les enregistrer dans une base ! c'était la première étape pour voir si les pages PHP fonctionnent.

    Maintenant, je souhaite ne plus utiliser le formulaire en HTML mais bien envoyer directement les informations vers ma page PHP de mon application WinDev

    Apparement, il envoie la requete mais aucun traitement n'est effectué par la page PHP! Du moin aucun information n'est enregistrée dans la table!

    Donc voici le code pour envoyer les informations vers la page PHP :
    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
     
    url est une chaîne = "http://10.172.110.244/logInfo.php"
    messToSend est une chaîne
    ResLancement est un booléen
     
    messToSend = "poste="+SAI_Poste+RC+...
    				+"APB="+SAI_APB+RC+...
    				+"nom="+SAI_Nom+RC+...
    				+"vMaj="+SAI_vMaj+RC+...
    				+"pcNom="+SAI_PCName+RC+...
    				+"vWindows="+SAI_WindowsVersion+RC+...
    				+"ip="+SAI_IP+RC+...
    				+"hddAll="+SAI_DISQUEAll+RC+...
    				+"hddFree="+SAI_DISQUEUnuse+RC+...
    				+"ramAll="+SAI_RAMAll+RC+...
    				+"Submit"
     
    Info(messToSend)
     
    ResLancement = HTTPRequête(url,"","",messToSend)
     
    SI ResLancement ALORS
    	Info("Enregistrement OK")
    SINON
    	Erreur("Enregistrement KO")
    FIN
    Je vous met a titre d'information mon ancienne page HTML qui servait de formulaire pour envoyer les valeurs vers la page PHP :
    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
     
    <html>
    <head>
    <title> Envoi de donnee par le biais d'un formulaire </title>
    </head>
     
    <body>
     
    	<form action="logInfo.php" method="post">
    		<p>
    		Information PHARMACIE
    		<p>
    		Poste : <input type="text" name="poste" value="0"/><br>
    		APB : <input type="text" name="APB" value="123456"/><br>
    		Nom : <input type="text" name="nom" value="uFo Pharma"/><br>
    		</p>
    		---------------------------------------<br>
    		Information MAJ
    		<p>
    		Version MAJ : <input type="text" name="vMaj" value="3.9.5-9"/>
    		</p>
    		---------------------------------------<br>
    		Information POSTE
    		<p>
    		PC Nom : <input type="text" name="pcNom" value="VBOSSIROY"/><br>
    		Version windows : <input type="text" name="vWindows" value="XP Service Pack 3,Pro"/><br>
    		IP : <input type="text" name="ip" value="10.172.110.244"/><br>
    		Espace disque total : <input type="text" name="hddAll" value="70.8"/><br>
    		Espace disque libre : <input type="text" name="hddFree" value="15.51"/><br>
    		Mémoire vive totale : <input type="text" name="ramAll" value="2048 "/><br>
    		</p>
    		</p>
    		<input type="Submit" value="Valider" />
     
    	</form>
     
    </body>
    </html>
    Et encore a titre d'information, je vous glisse la manière dont je recupere les informations transmises par POST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $poste = $_POST['poste'];
    $APB = $_POST['APB'];
    $nom = $_POST['nom'];
    $vMaj = $_POST['vMaj'];
    $pcNom = $_POST['pcNom'];
    $vWindows = $_POST['vWindows'];
    $ip = $_POST['ip'];
    $hddAll = $_POST['hddAll'];
    $hddFree = $_POST['hddFree'];
    $ramAll = $_POST['ramAll'];

    Merci d'avance pour votre aide !

  2. #2
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Points : 78
    Points
    78
    Par défaut
    Enfaite, après analyse de ce qui était réellement envoyé, j'ai constater 2 problème

    1) Pour separer les différente information, il faut ajouter un + et pas un RC (retour chariot)

    2) Il faut remplacer les espace par des +

    3) Remplacer les caractères spéciaux par les équivalents html

    Ce qui donnera au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    messToSend = "poste="+poste+"&"+...
    				+"APB="+APB+"&"+...
    				+"nom="+nom+"&"+...
    				+"vMaj="+vMaj+"&"+...
    				+"pcNom="+pcNom+"&"+...
    				+"vWindows="+vWindows+"&"+...
    				+"ip="+ip+"&"+...
    				+"hddAll="+hddAll+"&"+...
    				+"hddFree="+hddFree+"&"+...
    				+"ramAll="+ramAll+"&"+...
    				+"Submit"
    Et ça a l'air de fonctionner ! Si maintenant vous voyez une amélioration possible dans le traitement ! Je suis preneur

    a la prochaine :p

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Pour plus de lisibilité et de réutilisabilité, tu peux :

    - utiliser un tableau associatif où la clef est le nom du paramètre et la valeur sa valeur (tout simplement ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    tableauParametre est un tableau associatif de chaines
     
    tableauParametre["MonParametre"] = "MaValeur"
    tableauParametre["MonAutreParametre"] = "MonAutreValeur"
    ...
    - faire une fonction qui prend le tableau en paramètre et renvoie la partie de l'url correspondand à la chaine de paramètres. Pour ce faire, un code de parcours de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sParametre est une chaîne
    sValeur est une chaîne
    POUR TOUT ELEMENT sParametre, sValeur DE tableauParametre
       ... 
    FIN
    Il reste les fioritures comme la séparation des paramètres par "&" et la transformation des caractères spéciaux dans l'url.

    Bon code et merci pour le retour d'expérience

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Points : 78
    Points
    78
    Par défaut
    Merci pour l'astuce !


    Et à bientôt pour de prochaines aventures

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

Discussions similaires

  1. Formulaire méthode POST vers une page Wordpress
    Par Flodelarab dans le forum WordPress
    Réponses: 7
    Dernier message: 11/06/2015, 15h20
  2. Réponses: 2
    Dernier message: 28/02/2015, 22h48
  3. Envoi de fichier en POST via une URL vers une page php
    Par Supersonik dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 21/07/2011, 16h47
  4. [AJAX] envoyé un post ver une page
    Par new-root dans le forum AJAX
    Réponses: 1
    Dernier message: 04/02/2011, 14h23
  5. Réponses: 13
    Dernier message: 16/04/2004, 12h00

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