Aller au contenu

Antho03

Actif
  • Compteur de contenus

    25
  • Inscrit(e) le

  • Dernière visite

Messages postés par Antho03

  1. Bonjour à tous,

    J'ai créé un formulaire d'inscription comprenant des cases à cocher. Je souhaiterai intégrer des sessions pour récupérer les infos entrées par l'utilisateur si ce dernier doit revenir sur le formulaire suite à l'insertion de mauvaises données.

    Pour les champs textes et radio il n'y a aucun soucis, cependant je bute sur les cases à cocher.

    Voilà mon code :

    <input type="checkbox" name="projets_vises[]" id="projets_vises[]" value="créations d'entreprises" />
    Création d'entreprises<br />
    <input type="checkbox" name="projets_vises[]" id="projets_vises[]" value="Projet innovants / fort potentiel" />
    Projet innovants / fort potentiel<br />
    <input type="checkbox" name="projets_vises[]" id="projets_vises[]" value="Transmission / reprise dentreprise" />
    Transmission / reprise dentreprise<br />
    <input type="checkbox" name="projets_vises[]" id="projets_vises[]" value="Economie sociale et solidaire" />
    Economie sociale et solidaire<br />
    <input type="checkbox" name="projets_vises[]" id="projets_vises[]" value="Projet coopératif (création ou reprise dentreprise)" />
    Projet coopératif (création ou reprise dentreprise)

    Dans ma page de traitement :

    $_SESSION['projets_vises'] = implode(",", $_POST['projets_vises']);

    Pour info, je pensais utilisais le même bout de code que pour mes radio :

     <?php if($_SESSION['type_organisme']=='Association') {echo 'checked="checked"';}?> 

    Mais si je fais ça pour mes cases à cocher, le nombre de tests à faire va être sans fin.

    Auriez-vous un bout de code à me proposer ou pouvez-vous me guider ?

    Merci d'avance

  2. J'ai modifié mon code suite à vos conseils :

    if ($nl == "oui")
    {

    mysql_query("insert into spip_nl (id, Nom, Prenom, email) values('', '".$nom."', '".$prenom."', '".$email."')");

    mail($cible, $objet, $contenu, $headers);

    echo '<p style="padding:5px 0 8px 5px;">'.$message_envoye1.'</p>'."\n"; }

    else if ($nl != "oui")

    {
    mail($cible, $objet, $contenu, $headers);

    echo '<p style="padding:5px 0 8px 5px;">'.$message_envoye2.'</p>'."\n";

    }

    else
    {
    echo '<p style="padding:5px 0 8px 5px;">'.$message_non_envoye.'</p>'."\n\n\n";

    }


    }
    else
    {
    // une des 3 variables (ou plus) est vide ...
    echo '<p style="padding-left:5px; color:#BF0D0D">'.$message_formulaire_invalide.'</p>'."\n";
    $err_formulaire = true;
    };
    };

    et tout fonctionne comme je veux.

    Merci beaucoup pour votre aide ! :thumbsup:

  3. J'y pensais à ça, mais il est impossible d'imbriquer plusieurs "else" dans un seul "if" ?

  4. Bonjour à tous,

    Je demande votre aide car j'ai un petit soucis de codage :

    mon code :

    if (mail($cible, $objet, $contenu, $headers) && ($nl == "oui"))
    {

    mysql_query("insert into spip_nl (id, Nom, Prenom, email) values('', '".$nom."', '".$prenom."', '".$email."')");

    echo '<p style="padding:8px 0 8px 5px;">'.$message_envoye1.'</p>'."\n"; }

    else

    {
    echo '<p style="padding:8px 0 8px 5px;">'.$message_envoye2.'</p>'."\n";

    }

    else
    {
    echo '<p>'.$message_non_envoye.'</p>'."\n\n\n";

    }


    }
    else
    {
    // une des 3 variables (ou plus) est vide ...
    echo '<p style="padding-left:5px;">'.$message_formulaire_invalide.'</p>'."\n";
    $err_formulaire = true;
    };
    };

    Quand je mets ces lignes dans mon code, l'erreur suivante est retournée :

    Parse error: parse error, unexpected T_ELSE in D:... : eval()'d code on line 153

    La ligne 153 correspond à la ligne où se situe mon second "else". Si j'enlève cet "else", le code est bon.

    Je suis sur que ce n'est pas grand chose mais n'étant pas spécialiste du PHP, je bloque.

    Merci pour vos lumières.

  5. Ok.

    Pour remplir mes champs, je fais une requête qui va chercher l'info dans la BDD et affiche la variable dans le "value".

    Mon code :

    //requête récupérant la raison sociale de l'entreprise
    $raisonsoc = mysql_query("SELECT raison_sociale FROM annuaire WHERE id='$ident'");

    et dans le formulaire :

     <?php 
    while($resultat = mysql_fetch_row($raisonsoc))
    {

    echo '<input style="font-family:calibri; font-size:14px;" type="text" name="Zraison_soc" value="' . $resultat[0] .'" />';

    }

    ?>

    Voilà, c'est plus en JS mais si ça peut aider quelqu'un...

  6. Bonjour,

    J'ai créé un formulaire que je souhaite remplir dynamiquement avec des infos présentes en BDD.

    Pour cela, je fais une requete qui va chercher l'info dans la BDD et affiche la variable dans le "value".

    Mon code :

    //requête récupérant la raison sociale de l'entreprise
    $raisonsoc = mysql_query("SELECT raison_sociale FROM annuaire WHERE id='$ident'");

    et dans le formulaire :

     <?php 
    while($resultat = mysql_fetch_row($raisonsoc))
    {

    echo '<input style="font-family:calibri; font-size:14px;" type="text" name="Zraison_soc" value="' . $resultat[0] .'" />';

    }

    ?>

    Pour les champs texte, je n'ai pas de soucis. Cependant je bloque sur les listes déroulantes.

    J'ai un code particulier pour les variables de session :

    <? $liste_dep = array("", "Ariège (09)", "Aveyron (12)", "Haute-Garonne (31)", "Gers (32)", "Lot (46)", "Hautes-Pyrénées (65)", "Tarn (81)", "Tarn-et-Garonne (82)");
    echo' <select style="color: #000; font-size:14px; font-family: calibri;" name="Zdepartement" id="dep">';

    foreach ($liste_dep as $value=>$label) {
    if ($label == $_SESSION['form']['Zdepartement']) {
    $selected = ' selected="selected"';
    }
    else {
    $selected = '';
    }

    echo '<option' . $selected . ' value="' . $label . '">' . $label . '</option>';
    }
    echo '</select>';
    ?>

    Je ne sais pas comment il faut placer le code pour que le département sélectionné soit celui présent dans ma BDD.

    Merci d'avance

  7. Merci pour ta réponse.

    Ca ne fonctionne pas. J'ai trouvé cependant un autre moyen pour réaliser ce que je souhaite.

    Par ailleurs, la question pourrait être intéressante pour d'autres personnes.

    Dois-je mettre le sujet en "résolu" ?

    Merci

  8. Bonjour,

    J'ai réalisé un formulaire de saisie. Je souhaiterai pré-remplir des champs input type="text".

    Mon formulaire :

    <input id="rs" style="font-family:calibri; font-size:14px;" type="text" name="Zraison_soc" />

    J'ai essayé avec ce code :

    document.getElementById("rs").elements["Zraison_soc"].value = 'test1';

    mais ça ne marche pas.

    D'où vient le problème selon vous et/ou avez une autre piste à m'indiquer ?

    Merci

  9. Bonjour Antho03,

    Sur ton "if" (<?php if($_POST['Zgroupe']=='oui') {echo 'checked="checked"';}?>) tu fais ta vérification avec ton $_POST['...'], ne serait-ce pas plutôt avec ton $_SESSION['...'] initialisé dans tes traitements ?

    Pour le textarea, tu n'as pas de value à définir. Ta valeur doit se trouver entre le <textarea> et </textarea>.

    Donc pour toi :

    <textarea name="Zautres_entre_groupe" cols="24" rows="5"><?php echo $_SESSION['Zautres_entre_groupe'] ;?></textarea>

    Pour vérifier l'ensemble des SESSIONS initialisées lors de ton retour sur le formulaire, tu peux faire "print_r($_SESSION)", qui te permettra de visualiser tout ce qui est rempli.

    Bonne chance,

    camillejg

    C'était bien ça.

    Merci beaucoup camillejg !!

    Merci à Jacques aussi pour ses précisions.

  10. Bonjour,

    J'ai créé un formulaire avec entre autres des boutons radios et des textarea. Quand l'utilisateur à fait une erreur, je lui indique dans ma page de traitement dans laquelle j'ai placé un lien qui lui permet de revenir sur la page du formulaire. Je récupère les valeurs de mes différents champs (text, select) avec des variables de sessions sans pb. Je bloque seulement sur les radio et textarea.

    mon formulaire :

    <?php 
    session_start();
    ?>
    ...
    <form name=...>
    ...
    <input type="radio" name="Zgroupe" value="oui" <?php if($_POST['Zgroupe']=='oui') {echo 'checked="checked"';}?>/>oui
    <input type="radio" name="Zgroupe" value="non" <?php if($_POST['Zgroupe']=='non') {echo 'checked="checked"';}?>/>non

    <textarea name="Zautres_entre_groupe" cols="24" rows="5" value="<?php echo $_POST['Zautres_entre_groupe'] ;?>"></textarea>
    ...
    </form>

    ma page de traitement :

    <?php 
    session_start();
    ...
    $_SESSION['Zgroupe'] = $_POST['Zgroupe'];
    $_SESSION['Zautres_entre_groupe'] = $_POST['Zautres_entre_groupe'];
    ...
    ?>

    Mes valeurs ne sont pas récupérées avec ces bouts de code.

    J'ai écumé plusieurs forums disant que ce type de code fonctionne mais pas chez moi :??: Où je fais erreur ?

    Il ne me reste qu'à faire fonctionner ces 2 fonctions pour terminer mon formulaire...

    Merci pour votre aide

  11. Bonjour,

    je vous explique mon problème.

    J'ai créé un formulaire en intégrant des listes dynamiques liées. Ces listes sont constituées en appelant le contenu de 2 tables ("région" et "département" ) de ma BDD. La 2ème liste s'affiche en fonction du choix fait dans la 1ère. Je récupère les variables des listes et insère le contenu dans une 3ème table "annuaire" dans ma BDD. Jusque là, tout est ok.

    Voici le code de mon formulaire :

     <?php
    /* Requête SQL de récupération des données de la première liste */
    $sql = "SELECT `id_region` AS idr, `region` ".
    "FROM `region` ".
    "ORDER BY `id_region`;";
    /* Connexion et exécution de la requête */
    $connexion = mysql_connect($serveur, $admin, $mdp);
    if($connexion != false)
    {
    $choixbase = mysql_select_db($base, $connexion);
    $recherche = mysql_query($sql, $connexion);
    /* Création du tableau PHP des valeurs récupérées */
    $regions = array();
    /* Index du département par tableau régional */
    $id = 0;
    while($ligne = mysql_fetch_assoc($recherche))
    {
    $regions[$ligne['idr']] = $ligne['region'];
    }

    ?>

    <form name="form" action="action.php" method="post" style="color: #333; font-size:14px;">

    <table width="650" border="0" cellspacing="3">

    <tr class="bleu">
    <td> Région :
    <select name="Zregion" id="region" onChange="getSecteur1(this.value);">
    <option value="vide">- - - Choisissez une région - - -</option>
    <?php
    /* Construction de la première liste : on se sert du tableau PHP */
    foreach($regions as $nr => $nom)
    {
    ?>
    <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option>
    <?php
    }
    ?>
    </select>
    <!-- on met un bloc avec un id ou va s'insérer le code de
    la seconde liste déroulande -->
    <span id="blocDepartements">Départements</span><br />
    <? $rq="Select region from region where (id_region = '".$nr."')"; ?>
    </td></tr></table>
    </form>

    la liste département est générée par un fichier PHP (et un fichier JS également) :

     <?php
    /**
    * Code qui sera aeeplé par un objet XHR et qui
    * retournera la liste déroulante des départements
    * correspondant à la région sélectionnée.
    */
    /* Paramètres de connexion */
    $serveur = "localhost";
    $admin = "*****";
    $mdp = "*****";
    $base = "*****";

    /* On récupère l'identifiant de la région choisie. */
    $idr = isset($_GET['idr']) ? $_GET['idr'] : false;
    /* Si on a une région, on procède à la requête */
    if(false !== $idr)
    {
    /* Cération de la requête pour avoir les départements de cette région */
    $sql2 = "SELECT `id_departement`, `departement`".
    " FROM `departement`".
    " WHERE `id_region` = ". $idr ."".
    " ORDER BY `id_departement`;";
    $connexion = mysql_connect($serveur, $admin, $mdp);
    mysql_select_db($base, $connexion);
    $rech_dept = mysql_query($sql2, $connexion);
    /* Un petit compteur pour les départements */
    $nd = 0;
    /* On crée deux tableaux pour les numéros et les noms des départements */
    $code_dept = array();
    $nom_dept = array();
    /* On va mettre les numéros et noms des départements dans les deux tableaux */
    while(false != ($ligne_dept = mysql_fetch_assoc($rech_dept)))
    {
    $code_dept[] = $ligne_dept['id_departement'];
    $nom_dept[] = $ligne_dept['departement'];
    $nd++;
    }
    /* Maintenant on peut construire la liste déroulante */
    $liste = "";
    $liste .= '<select name="Zdepartement" id="departement">'."\n";
    for($d = 0; $d < $nd; $d++)
    {
    $liste .= ' <option value="'. $code_dept[$d] .'">'. htmlentities($nom_dept[$d]) .'</option>'."\n";
    }
    $liste .= '</select>'."\n";
    /* Un petit coup de balai */
    mysql_free_result($rech_dept);
    /* Affichage de la liste déroulante */
    echo($liste);
    }
    /* Sinon on retourne un message d'erreur */
    else
    {
    echo("<p>Une erreur s'est produite. La région sélectionnée comporte une donnée invalide.</p>\n" );
    }
    ?>

    Mon problème est le suivant : en récupérant les valeurs "Zregion" et "Zdepartement" dans les listes, ce sont les id qui sont enregistrés dans ma table et non pas les noms des départements et régions.

    La question que je me pose et sur laquelle je demande votre aide est : comment faire pour enregistrer les noms à la place des id ?

    J'ai pensé à une requête du genre :

    $rq="Select region from region where (id_region = '".$nr."')";

    qui permettrait de changer l'id en nom mais 1: je ne suis pas sur qu'elle soit correcte et 2: je ne sais pas où la placer.

    Merci pour votre aide

  12. A moins que tu n'utilises une option php qui est fortement déconseillée, les variables de ton formulaire sont dans $_POST['nom_du_champ'], pas dans $nom_du_champ...

    Jacques.

    Il manquait en effet tout simplement l'appel des variables..., par exemple :

    $Zsecteur1 = htmlentities($_POST['Zsecteur1']);

    Merci Jacques

  13. Bonjour à tous,

    J'ai créé un formulaire d'inscription sur mon site et souhaite insérer les valeurs sélectionnées de ce dernier dans ma BDD.

    voici le code de mon formulaire :

    <form name="form" action="action.php" method="post">
    <fieldset style="border: 3px double #333399">
    <legend>Secteur d'activité</legend>

    <!-- Secteur 1 -->
    Secteur d'activité 1 :
    <select name="Zsecteur1" onChange="getSecteur1(this.value);">
    <option value="vide">- - - Choisissez un secteur - - -</option>
    <?php
    /* Construction de la première liste : on se sert du tableau PHP */
    foreach($regions as $nr => $nom)
    {
    ?>
    <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option>
    <?php
    }
    ?>
    </select>

    <span id="blocDepartements">Sous-secteur</span><br />

    <!-- Secteur 2 -->
    Secteur d'activité 2 :
    <select name="Zsecteur2" onChange="getSecteur2(this.value);">
    <option value="vide">- - - Choisissez un secteur - - -</option>
    <?php
    /* Construction de la première liste : on se sert du tableau PHP */
    foreach($regions as $nr => $nom)
    {
    ?>
    <option value="<?php echo($nr); ?>"><?php echo($nom); ?></option>
    <?php
    }
    ?>
    </select>

    <span id="blocDepartements2">Sous-secteur</span><br />

    Adresse :
    <input type="text" name="Zadresse">

    <input type="submit" name="ok" id="ok" value="Envoyer" />
    </fieldset>
    </form>

    Ce formulaire est composé de 2 menus déroulants, appelant eux-mêmes un second menu déroulant en fonction du choix effectué dans le premier (AJAX) et d'un champ texte.

    voilà ensuite le fichier "action.php" :

    <?php
    echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
    /* Variables de connexion */
    $serveur = "localhost";
    $admin = "******";
    $mdp = "******";
    $base = "******";

    //connexion à la base
    _AT_mysql_connect($serveur, $admin, $mdp)
    or die("Impossible de se connecter au serveur de bases de données.".mysql_error());

    //sélection de la base
    _AT_mysql_select_db($base)
    or die("Impossible de se connecter à la base de données.".mysql_error());

    /* Enregistrement du formulaire dans la BDD */

    $annuaire = mysql_query("insert into spip_annuaire (secteur1,secteur2,sous_secteur1,sous_secteur2,adresse) values('".$Zsecteur1."','".$Zsecteur2."','".$Zsous_secteur1."','".$Zsous_secteur2."','".$Zadresse."')");
    echo $annuaire;

    ?>

    Ma requête est effectuée correctement (test avec des alert) et insère une ligne dans ma table mais avec des champs vides. J'ai testé ma requête directement dans PHP My Admin, elle fonctionne correctement. J'ai mis la valeur "adresse" en dur dans ma requête dans action.php, elle apparait bien dans la BDD.

    "echo $annuaire;" m'affiche systématiquement "1"

    Le problème vient donc à mon avis de la récupération des variables du formulaire et là...je bloque complétement.

    Pour info, la récupération des variables "sous_secteur1" et "sous_secteur2" est générée grâce à un autre fichier php.

    Merci pour votre aide

  14. Mets les utf8_decode autour de $nom et $prenom directement dans la ligne où tu composes le "From".

    Note que même si ça marche dans ton cas particulier, ce n'est pas la "bonne vraie méthode qui marche à tous les coups". La bonne méthode est bien d'utiliser des encoded words (normalement mb_encode_mimeheader mais les commentaires laissent penser que la fonction est bugguée).

    Jacques.

    C'est ok.

    la ligne modifiée est

    $headers .= 'From: '.utf8_decode($prenom).' '.utf8_decode($nom).' <'.$email.'>' . "\r\n";

    (si ça peut servir à d'autres personnes)

    Merci beaucoup pour votre aide !

  15. Je reviens vers vous car mon problème n'est pas réglé entièrement.

    Je me suis aperçu que le header de mon mail ne gérait pas les caractères spéciaux... :(

    J'ai essayé de rajouter

    $nom = utf8_decode($nom);

    et

    $prenom = utf8_decode($prenom);

    mais si je mets cette ligne dans mon code, le header est ok mais les caractères spéciaux ne sont plus gérés dans le corps du mail pour le nom et le prénom.

    j'ai un peu modifié mon code, je vous le remets :

    <?php
    /*
    ********************************************************************************************
    CONFIGURATION
    ********************************************************************************************
    */
    // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    $destinataire = 'nom_AT_fai.com';


    // Action du formulaire (si votre page a des paramètres dans l'URL)
    // si cette page est index.php?page=contact alors mettez index.php?page=contact
    // sinon, laissez vide
    $form_action = '';

    // Messages de confirmation du mail
    $message_envoye = "Votre message a bien été envoyé";
    $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

    // Message d'erreur du formulaire
    $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

    /*
    ********************************************************************************************
    FIN DE LA CONFIGURATION
    ********************************************************************************************
    */

    /*
    * cette fonction sert à nettoyer et enregistrer un texte
    */
    function Rec($text)
    {
    $text = trim($text); // delete white spaces after & before text
    if (1 === get_magic_quotes_gpc())
    {
    $stripslashes = create_function('$txt', 'return stripslashes($txt);');
    }
    else
    {
    $stripslashes = create_function('$txt', 'return $txt;');
    }

    // magic quotes ?
    $text = $stripslashes($text);
    $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
    $text = nl2br($text);
    return $text;
    };

    /*
    * Cette fonction sert à vérifier la syntaxe d'un email
    */
    function IsEmail($email)
    {
    $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
    return (eregi($pattern,$email)) ? true : false;
    };

    $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

    // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
    $civilite = (isset($_POST['civilite'])) ? Rec($_POST['civilite']) : '';
    $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
    $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
    $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
    $telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
    $lieu = (isset($_POST['lieu'])) ? Rec($_POST['lieu']) : '';
    $secteur = (isset($_POST['secteur'])) ? Rec($_POST['secteur']) : '';
    $projet = (isset($_POST['projet'])) ? Rec($_POST['projet']) : '';
    $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';



    if (isset($_POST['envoi']))
    {
    // On va vérifier les variables et l'email ...
    $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
    $err_formulaire = (IsEmail($email)) ? false : true;

    if (($nom != '') && ($email != '') && ($projet != '') && ($lieu != '') && ($secteur != '') && ($message != ''))
    {
    // les 4 variables sont remplies, on génère puis envoie le mail

    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";
    $headers .= 'From: '.$prenom.' '.$nom.' <'.$email.'>' . "\r\n";


    $contenu = "Civilité : ".stripslashes($civilite)."\n\n";
    $contenu .= "Nom : ".stripslashes($nom)."\n\n";
    $contenu .= "Prénom : ".stripslashes($prenom) ."\n\n";
    $contenu .= "Téléphone : ".stripslashes($telephone) ."\n\n";
    $contenu .= "Type de projet : ".stripslashes($projet) ."\n\n";
    $contenu .= "Lieu d'implantation géographique : ".stripslashes($lieu) ."\n\n";
    $contenu .= "Secteur d'activité : ".stripslashes($secteur) ."\n\n\n";
    $contenu .= "Message :"."\n\n".stripslashes( $message);


    $cible = $destinataire;
    $objet2 = "Demande d'informations - formulaire site web";
    $objet = utf8_decode($objet2);

    // Remplacement de certains caractères spéciaux
    $contenu = html_entity_decode($contenu);
    $contenu = str_replace(''',"'",$contenu);
    $contenu = str_replace('’',"'",$contenu);
    $contenu = str_replace('<br>','',$contenu);
    $contenu = str_replace('<br />','',$contenu);

    // Envoi du mail

    if (mail($cible, $objet, $contenu, $headers))
    {
    echo '<p style="padding:8px 0 8px 5px;">'.$message_envoye.'</p>'."\n";
    }
    else
    {
    echo '<p>'.$message_non_envoye.'</p>'."\n\n\n";

    };
    }
    else
    {
    // une des 3 variables (ou plus) est vide ...
    echo '<p style="padding-left:5px;">'.$message_formulaire_invalide.'</p>'."\n";
    $err_formulaire = true;
    };
    }; // fin du if (!isset($_POST['envoi']))

    ?>



    <?php
    if (($err_formulaire) || (!isset($_POST['envoi'])))
    {
    // afficher le formulaire
    echo '<form style="padding: 0px 5px 5px 5px;" id="contact" method="post" action="'.$form_action.'">'."\n";



    echo ' <fieldset><legend style="color:#333"><b>Vos coordonnées</b></legend>'."\n";?>

    <table width="500" border="0" cellspacing="8" cellpadding="0" style="padding-left:60px;">
    <tr><td>
    <label for="civilite">Civilité* :</label></td>
    <td><select id="civilite" name="civilite" value="<? '.stripslashes($civilite).' ?>" tabindex="1" />
    <option selected="selected">M.</option>
    <option>Mme</option>
    <option>Melle</option>
    </select>
    </td></tr>

    <tr><td>
    <label for="nom">Nom* :</label></td>
    <td><input type="text" id="nom" name="nom" value="<? '.stripslashes($nom).' ?>" tabindex="2" /></td></tr>

    <tr>
    <td><label for="prenom">Prénom :</label></td>
    <td><input type="text" id="prenom" name="prenom" value="<? '.stripslashes($prenom).' ?>" tabindex="3" /></td></tr>

    <tr><td>
    <label for="email">Email* :</label></td>
    <td><input type="text" id="email" name="email" value="<? '.stripslashes($email).' ?>" tabindex="4" /></td></tr>

    <tr><td>
    <label for="telephone">Téléphone :</label></td>
    <td><input type="text" id="telephone" name="telephone" value="<? '.stripslashes($telephone).'?>" tabindex="5" /></td></tr>

    <tr><td>
    <label for="projet">Type de projet* :</label></td>
    <td><select id="projet" name="projet" value="<? '.stripslashes($projet).'?>" tabindex="7" />
    <option selected="selected">création d'entreprise</option>
    <option>reprise d'entreprise</option>
    <option>transmission d'entreprise</option>
    <option>autres</option>
    </select></td></tr>


    <tr><td align="left">
    <label for="lieu">Lieu d'implantation géographique* :</label></td>
    <td><input type="text" id="lieu" name="lieu" value="<? '.stripslashes($lieu).'?>" tabindex="6" /></td></tr>

    <tr><td>
    <label for="secteur">Secteur d'activité* :</label></td>
    <td><input type="text" id="secteur" name="secteur" value="<? '.stripslashes($secteur).'?>" tabindex="6" /></td></tr>


    </table>

    </fieldset>

    <fieldset style="padding-top:10px">


    <legend style="color: #333"><i><b>Décrivez ici votre projet en quelques lignes ainsi que l'objet de votre demande</b></i></legend>


    <table width="500" border="0" cellspacing="0" cellpadding="0" style="padding-top:10px">

    <tr><td valign="top"style="padding-left:59px;">
    <label for="message">Message* :</label></td>
    <td style="padding-left:8px;"><textarea id="message" name="message" tabindex="9" cols="45" rows="8"><? '.stripslashes($message).'?></textarea></td></tr>

    </table>
    </fieldset>
    <span style="padding:3px 0 3px 1px; color:#BB0F0B; font-size: 10px"><?php echo "Les champs pourvus d'une * doivent être remplis";?></span>
    <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer " /></div>
    </form>
    <? };
    ?>

    Merci d'avance

  16. encode ton objet en utf-8 avant de l'envoyer, lui aussi

    Je reviens vers vous. Je ne trouve pas la bonne ligne de code à ajouter. J'ai mis

    $objet .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";

    mais ce n'est pas ça.

    Pouvez-vous m'indiquer quelle ligne il faut mettre svp ?

    Désolé d'être une buse en PHP :(

    Merci

  17. En effet, ce que tu reçois montre que c'est de l'UTF-8 interprété comme de l'ISO-8859-1.

    Ajoute un header Content-Type: text/plain; charset=UTF-8 (ou text/html si c'est du HTML, mais je ne crois pas que ce soit le cas), et ça devrait fonctionner correctement.

    Jacques.

    Merci pour vos réponses.

    J'ai rajouté la ligne

     $headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";

    dans mon code.

    L'encodage est bon à présent sauf pour l'objet du mail qui prend le mauvais encodage pour les caractères spéciaux. J'ai essayé de comprendre pourquoi mais je sèche. D'où cela peut-il venir ?

    Merci d'avance

  18. Bonjour,

    J'ai réalisé un formulaire de contact pour mon site. Il fonctionne correctement, le mail est bien envoyé mais à la réception dans mon client de messagerie, les caractères spéciaux tels que "à", "é" sont remplacés par "é" ou encore Ã". Quel est le bout de code à rajouter pour encoder correctement le mail de mon formulaire ?

    voici mon code :

    <?php
    /*
    ********************************************************************************************
    CONFIGURATION
    ********************************************************************************************
    */
    // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    $destinataire = 'nom_AT_fai.com';


    // Action du formulaire (si votre page a des paramètres dans l'URL)
    // si cette page est index.php?page=contact alors mettez index.php?page=contact
    // sinon, laissez vide
    $form_action = '';

    // Messages de confirmation du mail
    $message_envoye = "Votre message a bien été envoyé";
    $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

    // Message d'erreur du formulaire
    $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

    /*
    ********************************************************************************************
    FIN DE LA CONFIGURATION
    ********************************************************************************************
    */

    /*
    * cette fonction sert à nettoyer et enregistrer un texte
    */
    function Rec($text)
    {
    $text = trim($text); // delete white spaces after & before text
    if (1 === get_magic_quotes_gpc())
    {
    $stripslashes = create_function('$txt', 'return stripslashes($txt);');
    }
    else
    {
    $stripslashes = create_function('$txt', 'return $txt;');
    }

    // magic quotes ?
    $text = $stripslashes($text);
    $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
    $text = nl2br($text);
    return $text;
    };

    /*
    * Cette fonction sert à vérifier la syntaxe d'un email
    */
    function IsEmail($email)
    {
    $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
    return (eregi($pattern,$email)) ? true : false;
    };

    $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

    // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables.
    $civilite = (isset($_POST['civilite'])) ? Rec($_POST['civilite']) : '';
    $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
    $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
    $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
    $telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
    $lieu = (isset($_POST['lieu'])) ? Rec($_POST['lieu']) : '';
    $secteur = (isset($_POST['secteur'])) ? Rec($_POST['secteur']) : '';
    $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
    $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

    if (isset($_POST['envoi']))
    {
    // On va vérifier les variables et l'email ...
    $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
    $err_formulaire = (IsEmail($email)) ? false : true;

    if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
    {
    // les 4 variables sont remplies, on génère puis envoie le mail
    $headers = 'From: '.$prenom.' '.$nom.' <'.$email.'>' . "\r\n";
    $contenu = "Civilité : ".stripslashes($civilite)."\n\n";
    $contenu .= "Nom : ".stripslashes($nom)."\n\n";
    $contenu .= "Prénom : ".stripslashes($prenom) ."\n\n";
    $contenu .= "Téléphone : ".stripslashes($telephone) ."\n\n";
    $contenu .= "Lieu d'implantation géographique : ".stripslashes($lieu) ."\n\n\n";
    $contenu .= "Message :"."\n\n".stripslashes( $message);

    $cible = $destinataire;


    // Remplacement de certains caractères spéciaux
    $contenu = html_entity_decode($contenu);
    $contenu = str_replace(''',"'",$contenu);
    $contenu = str_replace('’',"'",$contenu);
    $contenu = str_replace('<br>','',$contenu);
    $contenu = str_replace('<br />','',$contenu);

    // Envoi du mail

    if (mail($cible, $objet, $contenu, $headers))
    {
    echo '<p>'.$message_envoye.'</p>'."\n";
    }
    else
    {
    echo '<p>'.$message_non_envoye.'</p>'."\n\n\n";
    echo "<a href='http://www.entreprendre.midipyrenees.fr/spip.php?auteur1003'>Retourner au formulaire de contact</a>";
    };
    }
    else
    {
    // une des 3 variables (ou plus) est vide ...
    echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
    $err_formulaire = true;
    };
    }; // fin du if (!isset($_POST['envoi']))

    if (($err_formulaire) || (!isset($_POST['envoi'])))
    {
    // afficher le formulaire
    echo '<form style="padding: 5px 5px 5px 5px;" id="contact" method="post" action="'.$form_action.'">'."\n";
    echo ' <fieldset><legend>Vos coordonnées</legend>'."\n";

    echo ' <p>'."\n";
    echo ' <label for="civilite">Civilité :</label>'."\n";
    echo ' <select id="civilite" name="civilite" value="'.stripslashes($civilite).'" tabindex="1" />
    <option selected="selected">M.</option>
    <option>Mme</option>
    <option>Melle</option>
    </select>'."\n";
    echo ' </p>'."\n";

    echo ' <p>'."\n";
    echo ' <label for="nom">Nom :</label>'."\n";
    echo ' <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="2" />'."\n";
    echo ' </p>'."\n";

    echo ' <p>'."\n";
    echo ' <label for="prenom">Prénom :</label>'."\n";
    echo ' <input type="text" id="prenom" name="prenom" value="'.stripslashes($prenom).'" tabindex="3" />'."\n";
    echo ' </p>'."\n";

    echo ' <p>'."\n";
    echo ' <label for="email">Email :</label>'."\n";
    echo ' <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="4" />'."\n";
    echo ' </p>'."\n";


    echo ' <p>'."\n";
    echo ' <label for="telephone">Téléphone :</label>'."\n";
    echo ' <input type="text" id="telephone" name="telephone" value="'.stripslashes($telephone).'" tabindex="5" />'."\n";
    echo ' </p>'."\n";

    echo ' <p>'."\n";
    echo ' <label for="lieu">Lieu d\'implantation géographique :</label>'."\n";
    echo ' <input type="text" id="lieu" name="lieu" value="'.stripslashes($lieu).'" tabindex="6" />'."\n";
    echo ' </p>'."\n";

    echo ' <label for="secteur">Secteur d\'activité :</label>'."\n";
    echo ' <select id="secteur" name="secteur" value="'.stripslashes($secteur).'" tabindex="7" />
    <option selected="selected">Textile</option>
    <option>Batiment</option>
    <option>TIC</option>
    </select>'."\n";
    echo ' </p>'."\n";
    echo ' </fieldset>'."\n";

    echo ' <fieldset><legend>Votre message :</legend>'."\n";
    echo ' <p>'."\n";
    echo ' <label for="objet">Objet :</label>'."\n";
    echo ' <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="8" />'."\n";
    echo ' </p>'."\n";
    echo ' <p>'."\n";
    echo ' <label style="float:left; padding-right:4px" for="message">Message :</label>'."\n";
    echo ' <textarea id="message" name="message" tabindex="9" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n";
    echo ' </p>'."\n";
    echo ' </fieldset>'."\n";

    echo ' <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n";
    echo '</form>'."\n";
    };
    ?>

    J'ai essayé avec htmlentities et écumé plusieurs forums, je n'ai rien trouvé...

    Je débute en PHP et je m'y casse les dents là.

    Je précise que mon site est réalisé sous SPIP (si ça peut avoir une incidence...)

    D'avance merci pour votre réponse

  19. Bonjour,

    Je suis entrain d'intégrer un e-mailing et confronté à un problème d'interprétation des différents clients de messagerie sur l'affichage de la bordure autour d'une image comprenant un lien hypertexte. Cette bordure s'affiche sur gmail et yahoo alors que sur hotmail et Lotus Notes (c'est le monde à l'envers) c'est ok.

    J'ai testé les 3 codes ci-dessous mais rien ne change :

    1. <td><a href=&quot;http://www.google.fr" style="border:none; text-decoration: none;"><img src="haut.gif" width="600" height="114" border="0" /></a>

    2. </td>

    1. <td><a href=&quot;http://www.google.fr"><img src="haut.gif" width="600" height="114" border="0" style="border:none; text-decoration: none;" /></a>

    2. </td>

    1. <td><a href=&quot;http://www.google.fr"><img src="haut.gif" width="600" height="114" border="0" /></a>

    2. </td>

    Si j'enlève le lien sur mon image, la bordure n'apparait plus.

    Je me casse les dents sur ce problème.

    Merci par avance pour vos réponses car je débute en intégration d'e-mailing et je m'aperçois des joies que cela entraine...

  20. Vous n'avez peut-être pas tort mais l'utilisateur peut se désinscrire à tout moment, donc c'est lui qui gère. Si ça intéresse, Feedburner (by Google) permet de faire tout ce que j'ai indiqué dans mon 1er post.

  21. Bonjour à tous,

    J'ai récemment installé un flux rss sur le site de mon entreprise. Je souhaiterais qu'un mail automatique soit envoyé à une liste de diffusion dès qu'une nouvelle news est mise en ligne. Je sais qu'il existe des sites tels que "feed my inbox" permettant d'envoyer des flux rss par mail mais ils ne permettent pas de réaliser précisément ce que je souhaite.

    Si quelqu'un a une solution ou peut m'aiguiller, je suis preneur :).

    Merci d'avance

×
×
  • Créer...