Récupération information en mode cgi/post
rosanoff17-Jul-2008/11:12:36+2:00
Bonjour, je n'arrive pas à faire fonctionner un code cgi pour récupèrer des données :
J'au un page avec un formulaire de 2 champs : nom et prénom en mode get pas de problème mais en post impossible.

Voici le code que j'utilise :

<?rebol
 read-cgi: func [
        "Read CGI form data from GET or POST."
        /local data buf
    ][
        if system/options/cgi/request-method = "POST" [
            data: make string! 1020
            buffer: make string! 16380
            while [positive? read-io system/ports/input buffer 16380][
                append data buffer
                clear buffer
            ]
            return data
        ]
        if system/options/cgi/request-method = "GET" [
            return system/options/cgi/query-string
         ]

        test-data ; if in test mode
    ]


?>
<html>
<BODY>

<?rebol
;partie recupration  si get 
blk: system/options/cgi/query-string

infos: make object! decode-cgi blk
print infos/prenom
?>
<?rebol
;partie recupration  si post 
infospost: make object! decode-cgi data
print infospost/prenom
</BODY>
</HTML>

mais pour la partie post je bloc.voici l'erreur affichée :
runtime error: make object! [ code: 303 type: 'script id: 'expect-arg arg1: 'empty? arg2: 'series arg3: [series! port! bitset!] near: [if empty? r/content [r/content: buf]] where: 'sandbox ]


Merci par avance
Philippe18-Jul-2008/23:41:52+2:00
Salut,

En fait puisque tu sembles partir sur Cheyenne, ce qui est très bien, voici un bout de code qui marche.

A noter que si tu as magic, tu peux charger la lib html.r sous cheyenne :

----------- fichier test.rsp --------------------
<%
do load %html.r     ; le html.r de Magic d'O.Auverlot
%>
<html>
<head>
<title> TEST </title>
</head>

<body>
  <form method=post action="test.rsp">
	nom: <input type="text" name="nom"></br>
	prénom : <input type="text" name="prenom"></br>

	<% reset "Effacer"%> <%submit "TESTER"%>
</form>


<b> methode : </b> <%=mold request/method%>
<br/>

prenom : 
<%=print select request/content 'prenom %>


</body>
</html>
------------fin -----------------------


les variables cgi sous cheyenne sont dans request/content sous la forme d'un bloc [var1 valeur-var1 var2 valeur-var2 ..etc].
Voilà, bonnes vacances à ceux qui partent et bon courage aux autres

===Philippe
rosanoff19-Jul-2008/3:26:21+2:00
Bonjour et merci pour la réponse
En fait j'utilise maintenant cheyenne comme serveur.
En fait je regarde d'autres codes pour les étudier car je commence sous rebol.
Concernant magic je suis dessus pour pouvoir le modifier pour que sur un même serveur il puisse utiliser plusieurs présentations. Donc choisir un fichier CSS à la volée.

Bonne vacances pour les chanceux et bon dev. pour les autres.
shadwolf19-Jul-2008/8:50:22+2:00
infos: make object! decode-cgi blk <---- le prob vient de la ....

decode Cgi c koi ca ??? maoi je voi bien un read-cgi mais cette fonction read-cgi est pas utiliser parcontre décode-cgi est pas déclarée...
shadwolf19-Jul-2008/8:51:03+2:00
infos: make object! decode-cgi blk <---- le prob vient de la ....

decode Cgi c koi ca ??? maoi je voi bien un read-cgi mais cette fonction read-cgi est pas utiliser parcontre décode-cgi est pas déclarée...
shadwolf19-Jul-2008/8:55:15+2:00
runtime error: make object! ->>>> initialisation avec make object! a foiré ... hors y a pas 36 endroits dans le code que tu nous a donné qui appel make object!

je vois que ces deux ligne la qui pourrait avoir un rapport avec le message d'erreur

infos: make object! decode-cgi blk
infospost: make object! decode-cgi data
shadwolf19-Jul-2008/8:59:43+2:00
il manque une balise de fermeture ?> avant </BODY> en bas de la page.
rosanoff20-Jul-2008/4:11:33+2:00
Bonjour,
en fait j'étudie les codes donnés en exemple dicorebol-fr( celui là est de la rubrique "read-io"
ok pour la balise de fin.
Pour la méthode post je pense que mon probleme est que data est du binaire.
Donc là je suis coincé (je débute)
un bout de code commenté sera pour moi une précieuse aide.
merci par avance

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2