Bouton Submit pour envoi de mail

Résolu/Fermé
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 - 14 juin 2011 à 16:22
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 - 15 juin 2011 à 17:29
Bonjour à tous,

j'ai un script php qui affiche différentes informations et mon script envoie ses infos par mail automatiquement. Je souhaiterais que l'envoi de mail ne se fasse pas automatiquement mais uniquement si on appuie sur un bouton (de type submit ??)
Ci-dessous le code que j'utilise pour l'envoi de mail :

//*****************ENVOI PAR MAIL*****************//
    $headers ='From: exemple@fai.net'."\n"; 
    $headers .='Reply-To: exemple@fai.net'."\n";
    $headers .='Content-Type: text/html; charset="utf-8"'."\n";
    $headers .='Content-Transfer-Encoding: 8bit';
    $destinataire = 'exemple@fai.fr';
    $sujet = 'Infos '.$libelle;

	
	ini_set("SMTP","192.168.92.15" );
	
	if(mail($destinataire, $sujet, $message, $headers))
     {
          $message .= 'Le message a été envoyé';
     }
     else
     {
          $message .= 'Le message n\'a pu être envoyé';
     } 

}


merci d'avance pour votre aide

10 réponses

boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 juin 2011 à 09:30
Je pourrais pas utiliser le JS pr faire un truc du genre :

<form method="POST" onsubmit="return confirm('Envoyer l\'email ?');">
	<input type="email" name="email" placeholder="email@example.fr" />
	<input type="submit" />
</form>


help me please !
1
skymax406 Messages postés 218 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 22 avril 2015 24
Modifié par skymax406 le 15/06/2011 à 11:20
De rien :p

Au fait ne pas oublier le php est un langage POUR le SERVEUR donc le mieu si t'a rien a afficher dans ton code tu met le php avant tout code html voir ne pas mettre de html du tout et faire un
 header('Location:tapage.php'); 
histoire que sa envoi le mail et que sa renvoi l'utilisateur directement sur tapage.php.
Comme sa l'utilisateur n'y verra que du feu hahaaa :D

Mais le header('Location:......... ne marchera pas si il se trouve apré du code html n'oublie pas ça c'est a se taper la tete contre une vitre fendue quand tu ne le sais pas et que sa ne marche pas !
Souvent le gros du problème se trouve entre le clavier d'ordinateur et la chaise du bureau ... :D
1
skymax406 Messages postés 218 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 22 avril 2015 24
Modifié par skymax406 le 15/06/2011 à 10:05
Tu a une solution le faire en 2 pages :D
Et en HTML et PHP, je te laisse chercher ? ... Non allé :D

Tout Simplement dans ta première page, ton formulaire :

page1.html :

<form method="get" action="page2.php" > 
 Adresse mail :<input type="text" name="mail" /> 
    <input type="submit" name="submit" value="Envoyer" /> 
<form>


Donc en fait avec action, html va envoyer les infos que tu a rentré dans le formulaire à la page indiquée à la propriété "action".

Puis dans ta page 2 tu met le code que tu a dit :

page2.php :

<?php //*****************ENVOI PAR MAIL*****************// 
    $headers ='From: exemple@fai.net'."\n";  
    $headers .='Reply-To: exemple@fai.net'."\n"; 
    $headers .='Content-Type: text/html; charset="utf-8"'."\n"; 
    $headers .='Content-Transfer-Encoding: 8bit'; 
    $destinataire = $_POST['mail']; 
    $sujet = 'Infos '.$libelle; 

  
 ini_set("SMTP","192.168.92.15" ); 
  
 if(mail($destinataire, $sujet, $message, $headers)) 
     { 
          $message .= 'Le message a été envoyé'; 
     } 
     else 
     { 
          $message .= 'Le message n\'a pu être envoyé'; 
     } ?>


Tu récupère donc le contenu du champ qui a pour nom mail avec $_POST['mail'] et tu le range dans la variable destinataire.

Ton script en fait va affiche dans un premier temps un formulaire, puis à l'appuie du bouton Envoyer, automatiquement renvoyer l'utilisateur sur la page d'envoie du mail, avec les données qu'il aura rentrer précédemment.


Voila voila
Souvent le gros du problème se trouve entre le clavier d'ordinateur et la chaise du bureau ... :D
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 juin 2011 à 11:06
Ah ouai j'y avais pas pensé et je vais faire passer mon message en hidden, je vais essayé ça et je te redit.

En tout cas merci beaucoup skymax
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 juin 2011 à 11:50
Alors en fait j'ai un souci pour faire en 2 scripts parce que je n'arrive pas à transmettre le message (qui est au format HTML) je pense que c'est possible de faire ça sur le même fichier mais je n'y arrive pas; comment je pourras faire ?

Merci d'avance
0
skymax406 Messages postés 218 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 22 avril 2015 24
15 juin 2011 à 12:00
tu met le code php et html dans la mm page et ton formulaire :
<form method="get" action="ta_page_ou_sont_les_codes.php" >
Adresse mail :<input type="text" name="mail" />
<input type="submit" name="submit" value="Envoyer" />
<form>

En gros le bouton submit va actualiser ta page et donc envoyer la requete mais le probléme c'est que a chaque chargement de la page va yavoir un courriel envoyé donc il faut que tu tester avec la method POST comme je t'ai montrer si le bouton submit contien une valeur si oui on execute si non on fait rien.
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 juin 2011 à 12:05
Merci pour ton aide skymax, mais je ne sais pas comment on fait pour voir si le bouton submit contient une valeur ou pas
0
skymax406 Messages postés 218 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 22 avril 2015 24
15 juin 2011 à 12:09
<input type="submit" name="bouton_sub" value="Envoyer" />

$btn_submit = $_POST['bouton_sub'];

et la $btn_submit aura la valeur "Envoyer" . Comprend tu le lien direct entre le formulaire et les method GET et POST ?
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 juin 2011 à 12:22
En fait, mon problème c'est que ma page est déjà constitué d'une liste déroulante qui affiche des informations en fonction de notre choix et du coup quand la page se recharge il n'y a plus de choix dans la liste déroulante donc mes variables se réinitialisent donc plus de message, dc jsais pas trop comment faire ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  <head>
       <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Informations Clients</title>
    <link href="CSS/style.css" rel="stylesheet" type="text/css" media="screen" />
  </head>

<BODY background="metal.jpg" style="background-repeat:no-repeat; background-attachment:fixed">
<br>
<ul id="menu_dynamique">

     <li class="extend">Infos & Vulnérabilités<ul>
	<li><a href="traitement.php">Logiciels</a></li>
	<li class="sans"><a href="traitementmat.php">Matériels</a></li>
	<li><a href="traitementclient.php">Clients</a></li>
		
	</ul>
	</li>
	
	<li class="extend none">Gestion du Parc Informatique</a><ul>
	<li><a href="../ouapi1.0/index.php">Gérer le Parc Informatique</a></li>
	<li class="sans"><a href="traitementcontrat.php">Contrats</a></li>
	<li><a href="traitementmarque.php">Marques & Types</a></li>
	
	</ul>
	</li>
	
	<li class="extend">Gestion des infos<ul>
		
		<li><a href="ajout_info.php">Ajouter une info</a></li>
		<li class="bas"><a href="modifinfo.php">Modifier/Supprimer info</a></li>
	    
		</ul>
		
	</li>
		
	<li class="extend none">Gestion des vulnérabilités
		
		<ul>
		
		<li><a href="actu_flux.php">Actualiser les flux RSS</a></li>
		<li class="sans"><a href="ajout_flux.php">Ajouter un flux RSS</a></li>
	    <li class="mil"><a href="removeflux.php">Supprimer un flux RSS</a></li>
		<li><a href="removerss.php">Supprimer vulnérabilité</a></li>				
		</ul>
	
	<li class="extend"><a href="https://www.cheops.fr/fr/division-reseau-securite-et-communications-unifiees" title="Lien vers le site d'Ocealis Sécurité">Ocealis Sécurité</a></li>
	
</ul>
<br><br><br><br>

<?php

//***********INITIALISATION DES VARIABLES**********
$host = "localhost";
$user = "root";
$password = "";
$bdd = "application";
 
 
mysql_connect($host, $user, $password) or die ("impossible de se connecter au serveur" );
mysql_select_db($bdd) or die ("impossible de se connecter a la base de donnees" );

$compteurc = 1;
$compteuril = 1;
$compteurvl = 1;
$compteurim = 1;
$compteurvm = 1;
$mef = "A";
$message = ''; 

//******** FIN INITIALISATION***************


echo '<p align="center"><span style="font-variant: small-caps;"><font size=6>Clients</span></font></p><br>';
echo '<form method="post" action="traitementclient.php">';
echo '<p align="center"><select onchange=submit() name="libelle" id="libelle">';
$resu=mysql_query("SELECT libelle FROM ouapi_sites" );
echo '<option value="">---Choisir un client---</option>';
while ($liste = mysql_fetch_array($resu))
	{
      echo '<option value="', $liste['libelle'], '">', $liste['libelle'], '</option>';
    }
echo '</select></p>';

$libelle = ($_POST['libelle']);

$requetelog = mysql_query("SELECT id FROM ouapi_sites WHERE libelle = '$libelle'");
while ($rowlog = mysql_fetch_array($requetelog))
{
$agencelog = $rowlog[0];
}

$message .= '<table align="center" width="100%" height="100%" border="0" cellpadding="25" cellspacing="0">';
$message .= '<tr><td width="20%" height"100%" VALIGN="top">';


//*****test qu'on a bien choisit un client par le biais de la liste déroulante*****

if ($libelle != NULL)
{

// ******************PARTIE CONTRATS*****************
$message .= "<p align=\"center\"><A HREF=\"http://192.168.66.110/ouapi1.0/index.php?page=accueil.php&agence_id=$agencelog&rubrique=contr\" TITLE='Voir les contrats de cette entreprise'><FONT SIZE=5>Contrats<br> ".$libelle."</FONT></A><BR><BR></p>";

$requete = "SELECT ouapi_contrat.date_debut, ouapi_contrat.duree_mois, ouapi_contrat.reference, ouapi_co_type.libelle, ouapi_sites.libelle, ouapi_entreprise.raison_sociale, ouapi_contrat.agence_id, ouapi_contrat.id FROM ouapi_contrat, ouapi_co_type, ouapi_sites, ouapi_entreprise WHERE ouapi_contrat.agence_id = ouapi_sites.id AND ouapi_contrat.type_id = ouapi_co_type.id AND ouapi_entreprise.id = ouapi_contrat.entreprise_id AND ouapi_sites.libelle ='$libelle' ORDER BY ouapi_contrat.date_debut";
$reponse = mysql_query ($requete);

while ($row = mysql_fetch_array($reponse))
{
	$datedeb = $row[0];
	$duree = $row[1];
	$ref = $row[2];
	$type = $row[3];
	$site = $row[4];
	$entr = $row[5];
	$siteid = $row[6];
	$contid = $row[7];
	
	// Conversion de la date de début en unix timestamp
	list($y,$m,$d) = explode('-', $datedeb);
	$utdb = mktime(12,0,0,$m,$d,$y);

	// Calcul de la fin du contrat:
	$utdf = strtotime("+".$duree." months", $utdb);

	// On prend la date du jour à 12h, pour être dans le même contexte horaire que le contrat:
	$now = mktime(12, 0, 0, date('m'), date('d'), date('Y'));

	//Date de fin avec le bon format
	$datefin = date('d-m-Y', $utdf);
	
	$message .= "<p align='center'>";
	$message .= "<A HREF=\"http://192.168.66.110/ouapi1.0/index.php?page=visu_fiche.php&type=contr&id=$contid&action=visu\" TITLE='Voir la fiche du contrat'>".$ref."</A><BR>";
	$message .= $entr." > ";
	$message .= $type."<BR>";
	$message .= "Date de fin : ".$datefin."<BR>";
	$message .= "</p>";
	$compteurc ++;
}
if ($compteurc == 1)
	{
	$message .= "<p align='center'><font size=3><I>Aucun contrat avec ".$libelle." !</I></FONT></P>";
	}
//****************FIN PARTIE CONTRAT***************
$message .= '</td><td width="40%" height"100%" VALIGN="top">';
//****************PARTIE LOGICIEL******************

$message .= "<p align=\"center\"><A HREF=\"http://192.168.66.110/ouapi1.0/index.php?page=accueil.php&agence_id=$agencelog&rubrique=soft\" TITLE='Voir les logciels de cette entreprise'><FONT SIZE=5>Logiciels de ".$libelle."</FONT></A><BR><BR></p>";

//***************infos logiciels**********************
$requete2 = "SELECT DISTINCT infolog.logiciel, infolog.link, infolog.description, infolog.version FROM ouapi_sites, ouapi_software, infolog WHERE ouapi_sites.id=ouapi_software.agence_id AND ouapi_software.nom=infolog.logiciel AND ouapi_sites.libelle='$libelle' ORDER BY ouapi_software.nom";
$resultat2 = mysql_query ($requete2);
$message .= '<p align="center"><span style="font-variant: small-caps;"><font size=5>Informations</span></font></p>';
while ($row2 = mysql_fetch_array($resultat2))
{
	$ilogl = $row2[0];
	$ilinkl = $row2[1];
	$idescl = $row2[2];
	$iversl = $row2[3];
	if ($mef != $ilogl)
		{
		$message .= "<dl><p align=center><B>"."<A HREF='$ilinkl'><Font size=4>".$ilogl." ".$iversl."</A></FONT></B></p></dl>";
		$message .= "<p style='text-align:justify;'>";
		$message .= $idescl."</p>";
		$mef = $ilogl;
		}
	else 
		{
		$message .= "<p style='text-align:justify;'>";
		$message .= $idescl."</p>";
		}
	$compteuril ++;
}
if ($compteuril == 1)
{
$message .= "<p align='center'><font size=3><I>Aucune information concernant les logiciels chez ".$libelle." !</I></FONT></P>";
}

//***************fin info logiciel******************
$message .= '<BR><BR>';
//************vulnérabilités logiciel********************

$requete3 = "SELECT title, link, description FROM document";
$resultat3 = mysql_query ($requete3) or die (mysql_error());
$message .= '<p align="center"><span style="font-variant: small-caps;"><font size=5>Vulnérabilités</span></font></p>';
while ($row3 = mysql_fetch_array ($resultat3))
	{
	$vtitlel = $row3[0];
	$vlinkl = $row3[1];
	$vdescl = $row3[2];
	
	$requete32 = "SELECT DISTINCT ouapi_software.nom, ouapi_software.dern_version_num FROM ouapi_software, ouapi_sites WHERE ouapi_sites.id=ouapi_software.agence_id AND ouapi_sites.libelle='$libelle' ORDER BY ouapi_software.nom";
	$resultat32 = mysql_query ($requete32) or die (mysql_error());
	while ($row32 = mysql_fetch_array ($resultat32))
		{
		$noml = $row32[0];
		$versl = $row32[1];
		$regl = "#".$noml."#i";
		if (preg_match($regl, $vtitlel))
			{	
			if ($mef != $noml)
				{
				$message .= "<dl><p align=center><B>"."<A HREF='$vlinkl'><Font size=4>".$noml." ".$versl."</A></FONT></B></p></dl>";
				$message .= "<p style='text-align:justify;'>";
				$message .= $vdescl."</p>";
				$mef = $noml;
				}
			else
				{
				$message .= "<p style='text-align:justify;'>";
				$message .= $vdescl."</p>";
				}
			$compteurvl = $compteurvl + 1;
			}
		}
	}
if ($compteurvl == 1)
{
$message .= "<p align='center'><font size=3><I>Aucune vulnérabilité concernant les logiciels chez ".$libelle." !</I></FONT></P>";
}		
//*************fin vulnérabilité logiciel**********	
$message .= '</td><td width="40%" height"100%" VALIGN="top">';

//************PARTIE MATERIEL*****************
$message .= "<p align=\"center\"><A HREF=\"http://192.168.66.110/ouapi1.0/index.php?page=accueil.php&agence_id=$agencelog&rubrique=hard\" TITLE='Voir les matériel de cette entreprise'><FONT SIZE=5>Matériels de ".$libelle."</FONT></A><BR><BR></p>";
//*************info matériel******************
$requete4 = "SELECT DISTINCT infolog.logiciel, infolog.link, infolog.description, infolog.version FROM infolog, ouapi_ha_modele, ouapi_sites, ouapi_hardware WHERE ouapi_sites.id = ouapi_hardware.agence_id AND ouapi_hardware.modele_id = ouapi_ha_modele.id AND ouapi_sites.libelle = '$libelle' AND infolog.logiciel = ouapi_ha_modele.libelle ORDER BY infolog.logiciel";
$resultat4 = mysql_query ($requete4);
$message .= '<p align="center"><span style="font-variant: small-caps;"><font size=5>Informations</span></font></p>';
while ($row4 = mysql_fetch_array($resultat4))
{
	$ilogm = $row4[0];
	$ilinkm = $row4[1];
	$idescm = $row4[2];
	$iversm	= $row4[3];
	if ($mef != $ilogm)
		{
		$message .= "<dl><p align=center><B>"."<A HREF='$ilinkm'><Font size=4>".$ilogm." ".$iversm."</A></FONT></B></p></dl>";
		$message .= "<p style='text-align:justify;'>";
		$message .= $idescm."</p>";
		$mef = $ilogm;
		}
	else 
		{
		$message .= "<p style='text-align:justify;'>";
		$message .= $idescm."</p>";
		}
	$compteurim ++;
}
if ($compteurim == 1)
{
$message .= "<p align='center'><font size=3><I>Aucune information concernant le matériel chez ".$libelle." !</I></FONT></P>";
}
//***************fin info matériel******************
$message .= "<br><br>";
//**********vulnérabilités matériel********************
$requete5 = "SELECT title, link, description FROM document";
$resultat5 = mysql_query ($requete5) or die (mysql_error());
$message .= '<p align="center"><span style="font-variant: small-caps;"><font size=5>Vulnérabilités</span></font></p>';
while ($row5 = mysql_fetch_array ($resultat5))
	{
	$vtitlem = $row5[0];
	$vlinkm = $row5[1];
	$vdescm = $row5[2];
	
	$requete52 = "SELECT DISTINCT ouapi_ha_modele.libelle FROM ouapi_ha_modele, ouapi_sites, ouapi_hardware WHERE ouapi_sites.id = ouapi_hardware.agence_id AND ouapi_hardware.modele_id = ouapi_ha_modele.id AND ouapi_sites.libelle = '$libelle'";
	$resultat52 = mysql_query ($requete52) or die (mysql_error());
	while ($row52 = mysql_fetch_array ($resultat52))
		{
		$nomm = $row52[0];
		$versm = $row52[1];
		$regm = "#".$nomm."#i";
		if (preg_match($regm, $vtitlem))
			{	
			if ($mef != $nomm)
				{
				$message .= "<dl><p align=center><B>"."<A HREF='$vlinkm'><Font size=4>".$nomm." ".$versm."</A></FONT></B></p></dl>";
				$message .= "<p style='text-align:justify;'>";
				$message .= $vdescm."</p>";
				$mef = $nomm;
				}
			else
				{
				$message .= "<p style='text-align:justify;'>";
				$message .= $vdescm."</p>";
				}
			$compteurvm = $compteurvm + 1;
			}		
		}
	}
if ($compteurvm == 1)
{
$message .= "<p align='center'><font size=3><I>Aucune vulnérabilité concernant le matériel chez ".$libelle." !</I></FONT></P>";
}
$message .= "</td></tr></table>";
$message .= "</form>";
echo $message;

echo '<form method="post" action="traitementclient.php" >';
echo '<p align="center">';
echo 'Adresse mail :<input type="text" name="mail" />';
echo '<input type="submit" name="bouton" value="Envoyer" />'; 
echo '</p>';
echo '</form>';

$btnsubmit = $_POST['bouton']; 
}
if ($btnsubmit == "Envoyer")
{

$destinataire = $_POST['mail'];
ini_set("SMTP","192.168.98.15" ); 

    $headers ='From: example@fai.fr'."\n";  
    $headers .='example@fai.fr'."\n"; 
    $headers .='Content-Type: text/html; charset="utf-8"'."\n"; 
    $headers .='Content-Transfer-Encoding: 8bit'; 
    $sujet = 'Infos '.$libelle; 
	
if ($destinataire != NULL)
{
	mail($destinataire, $sujet, $message, $headers); 
}
}
?>
0
boss183 Messages postés 181 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 7 octobre 2011 17
15 juin 2011 à 17:29
J'ai trouvé la solution, voici mon code pour ceux que ça intéresse :

if((empty($_POST['email'])) || (!empty($_POST['libelle'])))
{?>
			<form method="POST" onsubmit="return confirm('Envoyer l\'email ?');">
			<p align="center">
			<input type="email" name="email" placeholder="email@example.fr" />
			<input type="hidden" name="message" value="<?php echo base64_encode($message); ?>" />
			<input type="submit" />
			</p>
			</form>
			
<?php
}

else 
	{
		$destinataire = $_POST['email'];
		$message = base64_decode($_POST['message']);
		$headers ='From: adresse@fai.fr'."\n"; 
        $headers .='Reply-To: exemple@fai.fr'."\n";
        $headers .='Content-Type: text/html; charset="utf-8"'."\n";
        $headers .='Content-Transfer-Encoding: 8bit';
        if(mail($destinataire, 'Infos Clients', $message , $headers))
        {
            echo '<br><p style="text-align:center;"><span style="font-weight: bold; font-size: 1.2em;">Les infos ont bien été envoyé à l\'adresse suivante :<BR><BR></span><span style="text-decoration: italic; font-weight: bold;"><I>'.$destinataire.'</I></span></p>';
        }
        else
        {
            echo '<br><p style="text-align:center;"><span style="font-weight: bold; font-size: 1.2em;">Désolé le message n\'a pas pu être remis<BR><BR></span>';
        }
	}

?>
0