OVH Cloud OVH Cloud

Perte de donn=c3=a9es

16 réponses
Avatar
Le Fou
Bonsoir,

J'ai un formulaire qui m'envoie une donnée... qui n'arrive jamais !

Le formulaire en HTML (mail.htm) :
<form method="post" enctype="text/plain" action="mail.php">
<input type="text" name="message" size="70">
<input type="submit" value="Envoyer">
</form>

Le PHP qui récupère les données (mail.php) :
<?php
if (isset($_POST['message'])) {
echo 'Votre nom est '.$_POST['message'];
} else {
echo 'Erreur';
}
?>

ça m'affiche toujours Erreur, pourquoi ?

Visible sur http://ffessm.cd84.free.fr/mail.htm

--
A' tchao

Le Fou
http://shippylelivre.free.fr/
http://ffessm.cd84.free.fr/

6 réponses

1 2
Avatar
Olivier Miakinen
Le 21/10/2018 14:45, Doug713705 a écrit :
Il n'y a que ces deux cas si la cible est une page html, mais text/plain
pourrait être utilisé si la cible est un lien mailto: par exemple.

Il doit me manquer quelqchose car sie je me réfère à
« text/plain is a valid option, although it sends the data without any
encoding at all. It is not recommended, as its behavior is difficult
to predict. »

Le comportement dans une page web n'est pas prédictible, car le html
a un format particulier, dans lequel certains caractères sont réservés
(« < » ou « & » par exemple). Il faut donc encoder ces caractères.
Même si la cible est un mail, si le comportement n'est pas prédictible,
je n'en vois pas l'intérêt.

Mais lorsque le lien est mailto, ça ne fait rien d'autre que d'ouvrir
un courrielleur en copiant le contenu dans l'éditeur. Si encodage il
doit y avoir, ce sera fait par le courrielleur au moment où tu vas
cliquer sur son bouton « envoyer ».
Rien de pire qu'un comportement non prédictible.

En fait il faudrait lire les docs de référence (ce que je n'ai pas
fait, et il est trop tard pour que je le fasse maintenant).
Bonne nuit !
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 22/10/2018 02:49, j'écrivais :
En fait il faudrait lire les docs de référence (ce que je n'ai pas
fait, et il est trop tard pour que je le fasse maintenant).

Dans HTML 4.0, seuls application/x-www-form-urlencoded et
multipart/form-data sont spécifiés, avec une explication pour
les deux, et il est dit que le comportement d'autres valeurs
de enctype est non spécifié :
<https://www.w3.org/TR/html4/interact/forms.html#h-17.13.4>.
Dans HTML 5.3, text/plain est autorisé, mais il est dit la
chose suivante :
<https://www.w3.org/TR/2018/WD-html53-20181018/sec-forms.html#plain-text-form-data%E2%91%A0>
Payloads using the text/plain format are intended to be human readable.
They are not reliably interpretable by computer, as the format is
ambiguous (for example, there is no way to distinguish a literal newline
in a value from the newline at the end of the value).
</>
C'est donc bien ce qui convient à un lien mailto: puisque c'est un
humain qui lira le contenu du courriel avant de le soumettre.
Tout ceci me semble très clair. La seule interrogation qu'il me
reste, c'est où Le Fou a pris son exemple de formulaire avec enctype
en text/plain puisque visiblement ce n'était pas adapté à ce qu'il
voulait faire.
--
Olivier Miakinen
Avatar
Doug713705
Le 2018-10-22, Olivier Miakinen nous expliquait dans
fr.comp.lang.php
(<pqj6qg$1b8t$) :
Le 21/10/2018 14:45, Doug713705 a écrit :
Il n'y a que ces deux cas si la cible est une page html, mais text/plain
pourrait être utilisé si la cible est un lien mailto: par exemple.

Il doit me manquer quelqchose car sie je me réfère à
« text/plain is a valid option, although it sends the data without any
encoding at all. It is not recommended, as its behavior is difficult
to predict. »

Le comportement dans une page web n'est pas prédictible, car le html
a un format particulier, dans lequel certains caractères sont réservés
(« < » ou « & » par exemple). Il faut donc encoder ces caractères.
Même si la cible est un mail, si le comportement n'est pas prédictible,
je n'en vois pas l'intérêt.

Mais lorsque le lien est mailto, ça ne fait rien d'autre que d'ouvrir
un courrielleur en copiant le contenu dans l'éditeur. Si encodage il
doit y avoir, ce sera fait par le courrielleur au moment où tu vas
cliquer sur son bouton « envoyer ».

Mais si c'est un mailto, alors la balise n'est pas un <form
method='post'> mais <a href='mailto:'>.
Rien de pire qu'un comportement non prédictible.

En fait il faudrait lire les docs de référence (ce que je n'ai pas
fait, et il est trop tard pour que je le fasse maintenant).

J'ai eu la même flemme mais cette fois je prends mon courage à deux
mains et en consultant https://www.w3schools.com/tags/att_form_enctype.asp
on trouve:
text/plain: Spaces are converted to "+" symbols, but no special
characters are encoded
Du coup, ce n'est pas "difficult to predict".
Ça me rassure.
Bonne nuit !

Bonne journée :)
--
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
-- H.F. Thiéfaine, L'ascenceur de 22H43
Avatar
Olivier Miakinen
Le 22/10/2018 12:35, Doug713705 a écrit :
Mais si c'est un mailto, alors la balise n'est pas un <form
method='post'> mais <a href='mailto:'>.

Le lien avec <a href> ne permet pas de pré-remplir le message
dans le courrielleur.
En fait il faudrait lire les docs de référence (ce que je n'ai pas
fait, et il est trop tard pour que je le fasse maintenant).

J'ai eu la même flemme mais cette fois je prends mon courage à deux
mains et en consultant https://www.w3schools.com/tags/att_form_enctype.asp
on trouve: [...]

Sauf que w3schools ce n'est pas ce que j'appelle les docs de référence.
En revanche on y trouve un exemple de formulaire de type "mailto:" :
<https://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_mail>.
--
Olivier Miakinen
Avatar
Doug713705
Le 2018-10-22, Olivier Miakinen nous expliquait dans
fr.comp.lang.php
(<pqk9n2$1ltg$) :
Le 22/10/2018 12:35, Doug713705 a écrit :
Mais si c'est un mailto, alors la balise n'est pas un <form
method='post'> mais <a href='mailto:'>.

Le lien avec <a href> ne permet pas de pré-remplir le message
dans le courrielleur.
En fait il faudrait lire les docs de référence (ce que je n'ai pas
fait, et il est trop tard pour que je le fasse maintenant).

J'ai eu la même flemme mais cette fois je prends mon courage à deux
mains et en consultant https://www.w3schools.com/tags/att_form_enctype.asp
on trouve: [...]

Sauf que w3schools ce n'est pas ce que j'appelle les docs de référence.

Pas faux.
En revanche on y trouve un exemple de formulaire de type "mailto:" :
<https://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_mail>.

Ah oui, j'avais totalement oublié qu'on pouvait faire ça.
Ça me rappelle mes premiers sites Internet. De véritables horreurs.
Aujourd'hui mettre un formulaire pareil en ligne c'est se faire spammer
sa boite mail à coup sûr.
--
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
-- H.F. Thiéfaine, L'ascenceur de 22H43
Avatar
Le Fou
Le 22/10/2018 à 12:31, Olivier Miakinen a écrit :
Tout ceci me semble très clair. La seule interrogation qu'il me
reste, c'est où Le Fou a pris son exemple de formulaire avec enctype
en text/plain puisque visiblement ce n'était pas adapté à ce qu'il
voulait faire.

Je ne sais plus sur quel site j'avais trouvé cet exemple, mais c'était
pour faire un formulaire de contact, avec la fonction mail()...
Mais comme je n'arrivais pas à m'envoyer un mail j'avais simplifié au
maximum pour simplement tester la transmission d'une donnée d'une page
(avec le formulaire) à une autre page (PHP qui récupère la donnée).
Mais finalement j'abandonne car la fonction mail() n'envoie absolument
rien...
(page perso d'un compte gratuit de FREE)
--
A' tchao
Le Fou
http://shippylelivre.free.fr/
http://ffessm.cd84.free.fr/
1 2