Mettre quelquechose devant une variable

Bonjour à tous,

Etant en train de developper un petit site perso, j'ai voulu faire un formulaire.

Problème, mon fournisseur d'accès semble avoir bloqué la fonction mail. C'est l'explication que j'ai trouvé.
J'avais fait un .HTML et un .PHP, mais cela ne semble marcher... (cela marche sur un autre hebergeur mais je suis obligée d'utiliser celui qui me pose problème).

J'ai donc contourné la difficulté en passant pas HIWIT.ORG et son Form-mail... Génial cela marche...

Cependant je n'arrive pas a faire une concaténation de données pour ajouter quelquechose à la réception du mail.

Concrétement :

je voudrais que dans le sujet, lorsque le client ecrit "Demande de renseignements", le mail qui m'arrive me donne "OBJET : Demande de renseignements"

Ci dessous le script (.HTML) qui fonctionne en passant par HIWIT... Ou inserer mon "OBJET : " ???

j'ai fouiné sur les forums, mais je n'ai pas trouvé...

Un GROS détail : soyez conscient que je ne programme pas, je BIDOUILLE... Mes connaissances sont limitées....

Par avance merci...
Bien cordialement

Sofia

<FORM onsubmit="window.open('','newsinsc','width=520,height=370,screenX=250,screenY=250,scrollbars=yes,resizable=yes')" Method="post" Action="https://form.hiwit.org/index.php" target=newsinsc>
<input type="hidden" name="idsite" value="999999">
<input type="hidden" name="zone" value="a">
<input type="hidden" name="action" value=formmail>
<br><br><br>
Entrez votre nom :
<input type=text size="48" name=pseudo value=><br>
Entrez votre adresse email :<br>
<input type=text size="48" name=email value=><br><br>
Entrez le sujet de votre message :<br>
<input type=text size="48" name=sujet value=><br>
Entrez votre message :<br>
<textarea cols="66" name=content rows="10"></textarea><br>

<input type="submit" value=" Envoi ">
</form>



--

11 réponses

  1. salut
    essaye ca
    <?php
    // recuperation de la valeur de sujet de ton formulaire
    $sujet = $_POST['sujet'];
    $sujet = 'OBJET :'.sujet;
     
    //remarque bien le point entre 'OBJET :' et $sujet c'est l'operateur de concatenation
    

    Cordialement
    1. Tu as oublié un "$" avant "sujet" (4e ligne).
      Et il ne peut pas modifier le PHP puisqu'il passe par un service externe.
      Par contre, il peut mettre comme cible de son formulaire un script PHP qui se chargera de faire les vérifications (et notemment l'ajout du texte devant la variable) et qui enverra une requête HTTP POST sur le script (grâce à cURL ou aux sockets).
  2. Merci thunder et AvionF16 pour vos réponses.

    Thunder :

    En effet comme le disait Avion, je ne peux pas modifier le .php car je passe par hiwit.org. MON fichier, celui auquel j'ai accès est uniquement le .html decrit ci-dessus

    AvionF16 :

    "Par contre, il peut mettre comme cible de son formulaire un script PHP qui se chargera de faire les vérifications (et notemment l'ajout du texte devant la variable) et qui enverra une requête HTTP POST sur le script (grâce à cURL ou aux sockets)."

    Si la solution Thunder etait "dans mes cordes", là, tu me depasses un peu.

    Si tu as une explication à ma modeste portée, je suis preneuse.

    Bien amicalement à vous deux

    Sofia

    --
    1. https://www.php.net/curl
      En gros, tu récupères les données POST, tu fais les traitement nécessaire et tu simules l'envoie du formulaire vers Hiwit grâce à cURL, en passant toutes les données POST de ton formulaire.
      1. Merci AvionF16 pour ta réponse.

        Cependant, je suis allé vers ton lien, et honnetement, je me sens totalement incapable de mettre cela en place...

        En plus tout en anglais, cela dépasse mes compétence...

        Merci encore

        Bien Amicalement

        Sofia
        --
        1. Ça existe également en français :
          https://www.php.net/manual/fr/book.curl.php

          Ton formulaire amélioré :
          <form method="post" action="cible.php">
          	<p>
          		<input type="hidden" name="idsite" value="999999" />
          		<input type="hidden" name="zone" value="a" />
          		<input type="hidden" name="action" value="formmail" />
          	</p>
          	
          	<p>
          		<label for="pseudo">Entrez votre nom :</label><br/>
          		<input type="text" name="pseudo" id="pseudo" />
          	</p>
          	
          	<p>
          		<label for="email">Entrez votre adresse email :</label><br/>
          		<input type="text" name="email" id="email" />
          	</p>
          	
          	<p>
          		<label for="sujet">Entrez le sujet de votre message :</label><br/>
          		<input type="text" name="sujet" id="sujet" />
          	</p>
          	
          	<p>
          		<label for="content">Entrez votre message :</label><br/>
          		<textarea cols="66" name="content" id="content" rows="10"></textarea>
          	</p>
          	
          	<p>
          		<input type="submit" value="Envoyer" />
          	</p>
          </form>
          Et le code de "cible.php" :
          <?php
          if(!empty($_POST)) {
          	// Tes traitements sur les variables $_POST
          	// Exemple : $_POST['message'] = 'Sujet : '.$_POST['sujet']."\n\n".$_POST['message'];
          	// Info : "\n" (entre guillemets doubles) permet de faire un retour à la ligne
          	
          	$curl = curl_init('http://form.hiwit.org/index.php');
          	curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST);
          	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
          	$resultat = curl_exec($curl);
          	echo $resultat;
          }
          ?>
          1. Bonjour AvionF16

            Merci de m'avoir aidé sur ce point...

            Cependant, j'ai toujours des soucis que je pense expliquer...

            TA methode sur l'hébergeur actuel ne semble pas fonctionner. En effet j'ai le message suivant :

            Method Not Allowed
            The requested method POST is not allowed for the URL /sofia_harriz/cible.php.
            Apache/1.3.26 Server at perso.menara.ma Port 80

            On m'avait dit que ce provider ne devait pas accepter la méthode POST/GET... mais je ne sais pas si il existe un moyen de le vérifier ou pas... (Je ne compte pas sur la HotLine, pas toujours compétente)

            PAR CONTRE, si je mets sur un serveur (byethost9.com) qui lui fonctionne avec un fichier .html et un fichier .php, cela semble fonctionner.

            En fait le problème doit etre une incompatiblité de Menara.ma (Orange marocain) Apparement il ne semble pas reconnaitre la méthode post

            Si je passe par Hiwit, cela marche mais par contre avec ce probleme de post, je ne peux rien adapter

            Voila ou j'en suis...

            Si cela t'inspire...

            Encore Merci

            Bien amicalement

            Sofia
            --
            1. Effectivement, ton hébergeur ne doit pas accepter la méthode POST.
              Il y a deux autres solutions :
              - Utiliser les sockets en PHP
              - Modifier la valeur du champ en JS, avant l'envoie du formulaire (entre le moment où l'utilisateur clique sur le bouton et celui où le formulaire est envoyé).
              1. Re Re bonjour Avion...

                Tu te moques de moi là ? lol lol lol !!

                Tu parles le gabonnais là ! lol

                Si c pas trop compliqué je veux bien essayer... mais le succès n'est pas garanti... de part mon niveau...

                Amicalement

                Sofia

                --
                1. Pour la solution en Javascript :
                  - Le formulaire reste le même
                  - Inclus le fichier "form.js" grâce à cette balise (entre <head> et </head>) :
                  <script type="text/javascript" src="form.js"></script>
                  -Le contenu de form.js :
                  window.onload = function() {
                  	formulaire = document.getElementsByTagName('form').item(0);
                  	champPseudo = formulaire.elements['pseudo'];
                  	champEmail = formulaire.elements['email'];
                  	champSujet = formulaire.elements['sujet'];
                  	champContent = formulaire.elements['content'];
                  	
                  	formulaire.onsubmit = function() {
                  		champContent.value = 'Sujet : ' + champSujet.value + "\n" + champContent.value;
                  	};
                  };
                  1. MONSIEUR AvionF16, vous êtes GENIAL... Encore Merci... cela marche !

                    Je viens d'adapter VOTRE travail à mon site car en fait, sans vouloir rentrer dans les détail, le "Sujet " devant l'objet du mail est en fait pour mettre des indications sur le but du mail en fonction de quel menu il est envoyé (Contact X, contact Y...)
                    et ainsi de pouvoir filtrer les messages.

                    Bref... cela marche... et j'aurais été INcapable de le faire toute seule...

                    Juste un détail :

                    Lorsque l'on fait "Envoyer", le js "reformule" le message avec les différentes info avant d'envoyer...

                    Serait-il possible de fermer la page après l'envoi, car j'ai peur que le client s'exite sur la touche "envoyer" pensant que le message n'est pas parti... car il reste apparent.. ?

                    Encore merci pour votre aide

                    Bien amicalement

                    Sofia

                    --
                    1. Désolé, je ne vois pas comment le texte pourrait rester puisque quand on soumet la page, on est envoyé sur le fichier sur Hiwit puis ce fichier nous redirige vers le formulaire.

                      Par contre, on peut faire comme ceci :
                      <?php
                      if($_SERVER['HTTP_REFERER'] == 'http://form.hiwit.org/index.php') {
                          echo 'Email envoyé';
                      } else { ?>
                          <!-- Code du formulaire -->
                      <?php } ?>
                      (je n'ai pas testé mais ça devrait aller)