Bonjour,

Nous avons sur notre site dans sa partie ouverte à tous des formulaires (cf. code ci-dessous).
Ils marchent bien.
Cependant déjà depuis longtemps certains internautes nous disent que quand nous ne recevons rien, ils ont bien rempli le formulaire, ils ont bien été redirigés vers la page de succès après envoi, et ils n'ont pas reçu la copie prévue du formulaire envoyé.
Cela vient de certains pays (Espagne, Japon, USA).
Nous n'avons aucune idée de quoi cela peut provenir (leur navigateur, leur émetteur, etc.).
Naturellement nous avons mis en place une solution de repli par mail direct (et là pas de souci), mais cela nous oblige à recopier les données prévues dans le(s) formulaire(s) dans différents items manuellement.
Y aurait-il une soluce pour rendre ce formulaire (et d'autres chez nous, similaires) universel?

La question plus générale concerne un projet de formulaire que nous avons pour la partie fermée du site (membres).
Quand notre formulaire deviendra universel (avec votre aide) alors nous aimerions que lors du clic sur le bouton de la page d'ouverture (qui ouvre une page neuve), l'URL de la page précédente s'affiche automatiquement comme objet du formulaire.
Est-ce que c'est faisable en php et si oui quelqu'un du forum pourrait il aider (si c'est simple, nous ne voulons pas abuser).

Merci d'avance, Steph

Voici le code à problème mystérieux (repris d'Internet):

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
    $destinataire = 'registration@XXXXXXX.org';
    $copie = 'oui';
    $form_action = '';
    $message_envoye = "<script>\n document.location='form-acknowledgement.php';</script>";
    $message_non_envoye = "Sorry, the message has not been sent, please try again.";
    $message_formulaire_invalide = "Check all fields have been fed and the e-mail address is without mistake.";
    function Rec($text)
    {
        $text = trim($text);
        if (1 === get_magic_quotes_gpc())
        {$stripslashes = create_function('$txt', 'return stripslashes($txt);');}
        else{$stripslashes = create_function('$txt', 'return $txt;');        }
        $text = $stripslashes($text);
        $text = htmlspecialchars($text, ENT_QUOTES);
        $text = nl2br($text);
        return $text;};
    function IsEmail($email)
    {$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
        return (eregi($pattern,$email)) ? true : false;};
    $err_formulaire = false;
    $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
    $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
    $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
    if (isset($_POST['envoi'])){
        $email = (IsEmail($email)) ? $email : '';
        $err_formulaire = (IsEmail($email)) ? false : true;
        if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
        {$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
            if ($copie == 'oui')
            {$cible = $destinataire.','.$email;}
            else{$cible = $destinataire;};
            $message = html_entity_decode($message);
            $message = str_replace(''',"'",$message);
            $message = str_replace('’',"'",$message);
            $message = str_replace('<br>','',$message);
            $message = str_replace('<br />','',$message);
            if (mail($cible, $objet, $message, $headers))
            {echo '<p>'.$message_envoye.'</p>'."\n";}
            else{echo '<p>'.$message_non_envoye.'</p>'."\n";};}
        else{echo '<p>'.$message_formulaire_invalide.' <a href="registration.php">Back to blank form.</a></p>'."\n";
            $err_formulaire = true;};};
    if (($err_formulaire) || (!isset($_POST['envoi']))){
        echo '    <form id="order" method="post" action="'.$form_action.'">'."\n";
        echo '    <fieldset><legend>Your coordinates</legend>'."\n";
        echo '    <p>'."\n";
        echo '    <label for="nom">Full name (name, first name, middle name) [required]:</label>'."\n";
        echo '    <input type="text" size="80" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1">'."\n";
        echo '    </p>'."\n";
        echo '    <p>'."\n";
        echo '    <label for="email">E-mail [required] (it must be a personal e-mail address with your name mentioned in it) :</label>'."\n";
        echo '    <input type="text" size="60" id="email" name="email" value="'.stripslashes($email).'" tabindex="2">'."\n";
        echo '    </p>'."\n";
        echo '    </fieldset>'."\n";
        echo '    <fieldset><legend>Your message :</legend>'."\n";
        echo '    <p>'."\n";
        echo '    <label for="objet">Subject [required] (fill your name in place of NAME and payment date, in place of YYYY-MM-DD, e.g., 2015-11-03):</label>'."\n";
        echo '    <input type="text" size="130" id="objet" name="objet" value="XXXXXXX, NAME, fee payment date YYYY-MM-DD, membership'.stripslashes($objet).'" tabindex="3">'."\n";
        echo '    </p>'."\n";
        echo '    <p>'."\n";
        echo '    <label for="message">Message [required] (fill data, then delete the explanation texts within parenthesis):</label>'."\n";
        echo '    <textarea id="message" name="message" tabindex="4" cols="100" rows="11">"blabla avec 1056 caractères"'.stripslashes($message).'</textarea>'."\n";
        echo '    </p>'."\n";
        echo '    </fieldset>'."\n";
        echo '    <div style="text-align:center;"><input type="submit" name="envoi" value="Send the form !"></div>'."\n";
        echo '</form>'."\n";};
?>