Etre prévenu par mail d'une action sur un bouton. [Résolu]

Signaler
-
Messages postés
125
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
8 octobre 2020
-
Bonjour,

A partir de ce script ci dessous, je souhaiterai qu' un message soit envoyé par mail lorsque le bouton "Envoyer le message" est cliqué.(Ligne 33).

case 'send' :
//<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
		$contents = '
			<style type="text/css">import url(css/vader/jquery-ui-1.8.13.custom.css);</style>
			<script type="jquery-ui.min.js"></script>
			<script type="text/javascript" src="javascript/messages.js"></script>
		';

		$subject = htmlentities($message['subject'], ENT_QUOTES, 'UTF-8', false);
		$message_text = htmlentities($message['message'], ENT_QUOTES, 'UTF-8', false);

		$contents .= <<< EOT
			<br><h2>Envoyer un message</h2>
			<div id="content" class="">
				
					<a href="index.php?page=messages">Retourner à la boîte de réception</a><br><br>
					<?php echo date(\''.$CFG_LONGDATE.'\'); ?>
				
				<form method="post" action="{$_SERVER['REQUEST_URI']}"><div class="formdiv">
					<div style='float:right;'>
						Appuyez et maintenez enfoncée la touche CTRL pour sélectionner plusieurs destinataires<br><br>
						<label for="user_ids">Destinataires</label><br><select name="user_ids[]" id="user_ids" multiple="multiple" size="5">
						{$recipient_options}
						</select>
					</div>
					<br>
					<div style='float:left;margin-left:220px;margin-top:-105px'><label alt="" for="send_date">Date d'envoi <br>(Laissez vide ce champ pour un envoi immédiat)</label><br><input type="text" name="send_date" id="send_date" /><br>
					<label for="expire_date">Date d'expiration <br>(Laissez vide ce champ pour que le message n'expire jamais)</label><br><input type="text" name="expire_date" id="expire_date" /></div>
					
					<div><label for="subject">Objet</label><br><input style='width:422px' type="text" name="subject" id="subject" value="{$subject}" size="50" maxlength="255" /></div>
					<div><label for="message">Message</label><br><textarea style='width:422px;max-width:422px;min-width:422px;max-height:500px;' name="message" id="message" rows="15" cols="50">{$message_text}</textarea></div>
					<div><label> </label><input type="submit" name="submit" value="Envoyer le message" /></div>
				</div></form>
			</div>
EOT;
		$monfichier = fopen('news.txt', 'r+');
		$tab = file('news.txt');
		 $lignes = "";
		foreach($tab as $li){
			$lignes .= fgets($monfichier);
		}
		$hint = $lignes;
		fclose($monfichier);
		$html = get_item($contents, $hint);
		break;


Je dispose des éléments pour envoyer un message par mail.Mais je ne sais pas à quel endroit le placer dans ce script. Et quel en serait la condition pour envoyer le mail.

(Le bouton "Envoyer le message", envoi un message en interne sur le site.
Mais ne prévient pas le correspondant qu' un message lui est envoyé.)

Ainsi, pourriez vous m'indiquer la façon de procéder pour remédier à cet inconvénient?

Merci d'avance.

Configuration: Windows / Opera 36.0.2130.80

2 réponses

Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 842
Bonjour,

Tu dois placer le code d'envoi du mail, dans le code qui sert à traiter ton formulaire....

A noter que si tu bosses en "local" sur ton ordi, l'envoi de mail est un peu compliqué à paramétrer si tu veux simplement utiliser la fonction "mail" de php.
A la place, il est plus facile d'utiliser la class phpMailer et d'utiliser un compte de message type gmail ( tu trouveras de nombreux exemples/tutos sur le net sans difficulté pour ça ...)

Par contre, si ton site est hébergé sur un serveur, là, la fonction mail de php devrait fonctionner.
La aussi, de nombreux tutos/exemples existent à ce sujet sur le net...


Oui merci jordane.

Mais pour l'envoi par mail je sais faire sur serveur distant.Merci néanmoins pour tes infos sur les mails.
Ce que je ne sais pas, et que j'apprécierai de ta part, serait que tu m'indiques à partir de quelles ligne dans le formulaire je pourrai insérer mon script permettant d'être prévenu qu'un message est envoyé en interne sur mon site.
Car ça malgré mes recherches je ne sais pas faire.
Il faut dire que c'est particulier entre les lignes 12 et 36.
Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 842 > Max747
En partant du principe que ton formulaire renvoi sur le même script que celui que tu nous montres...
Là.comme ça je dirais n'importe où..
Avant la ligne 45...
Messages postés
125
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
8 octobre 2020

Il s'agit bien du même script intégré à la condition switch se terminant par break.
En plaçant mon script d'envoi de mail en ligne 44, l'envoi d'un message est envoyé par le fait que le script est parcouru dans son intégralité.

Serait il possible de soumettre mon script d'envoi de mails à la condition d' appui sur le bouton Envoyer le message qui se trouve en ligne 33 ?
Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 842
Oui,
IL suffit de le traiter comme n'importe quel formulaire html/php
En utilisant un ISSET sur une des variables de ce formulaire via un IF ...
Messages postés
125
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
8 octobre 2020
>
Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

Pourrais tu m'indiquer sur quelle variable de ce formulaire dois je appliquer la condition if?
Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 842 >
Messages postés
125
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
8 octobre 2020

Ben celle que tu veux......
en général on utilisater le name du bouton ou celui du form...
Mais n'importe quelle variable du formulaire peut faire l'affaire... à toi de voir.
Messages postés
125
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
8 octobre 2020
>
Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

Voici mon script dont j'ai ajouté la condition if après avoir tester une variable après le formulaire:

case 'send' :
//<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
		$contents = '
			<style type="text/css">import url(css/vader/jquery-ui-1.8.13.custom.css);</style>
			<script type="jquery-ui.min.js"></script>
			<script type="text/javascript" src="javascript/messages.js"></script>
		';

		$subject = htmlentities($message['subject'], ENT_QUOTES, 'UTF-8', false);
		$message_text = htmlentities($message['message'], ENT_QUOTES, 'UTF-8', false);

		$contents .= <<< EOT
			<br><h2>Envoyer un message</h2>
			<div id="content" class="">
				
					<a href="index.php?page=messages">Retourner à la boîte de réception</a><br><br>
					<?php echo date(\''.$CFG_LONGDATE.'\'); ?>
				
				<form method="post" action="{$_SERVER['REQUEST_URI']}"><div class="formdiv">
					<div style='float:right;'>
						Appuyez et maintenez enfoncée la touche CTRL pour sélectionner plusieurs destinataires<br><br>
						<label for="user_ids">Destinataires</label><br><select name="user_ids[]" id="user_ids" multiple="multiple" size="5">
						{$recipient_options}
						</select>
					</div>
					<br>
					<div style='float:left;margin-left:220px;margin-top:-105px'><label alt="" for="send_date">Date d'envoi <br>(Laissez vide ce champ pour un envoi immédiat)</label><br><input type="text" name="send_date" id="send_date" /><br>
					<label for="expire_date">Date d'expiration <br>(Laissez vide ce champ pour que le message n'expire jamais)</label><br><input type="text" name="expire_date" id="expire_date" /></div>
					
					<div><label for="subject">Objet</label><br><input style='width:422px' type="text" name="subject" id="subject" value="{$subject}" size="50" maxlength="255" /></div>
					<div><label for="message">Message</label><br><textarea style='width:422px;max-width:422px;min-width:422px;max-height:500px;' name="message" id="message" rows="15" cols="50">{$message_text}</textarea></div>
					<div><label> </label><input type="submit" name="submit" value="Envoyer le message" /></div>
				</div></form>
			</div>
EOT;
		$monfichier = fopen('news.txt', 'r+');
		$tab = file('news.txt');
		 $lignes = "";
		foreach($tab as $li){
			$lignes .= fgets($monfichier);
		}
		$hint = $lignes;
		fclose($monfichier);
		$html = get_item($contents, $hint);
		
if (isset ($subject)){
    echo "Sujet présent";
    exit(" Stop");
}else{
    echo "Sujet absent";
    exit(" Stop");
}
		
		break;


Et voici la réponse de mon navigateur à l'ouverture de la page comportant se formulaire:
Sujet présent Stop
Donc cela ne fonctionne donc pas.Car à mon avis la condition pour déclencher l'envoi d'un mail serait plutôt le fait de cliquer sur le bouton "Envoyer le message".
Qu'en penses tu?
Messages postés
125
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
8 octobre 2020
>
Messages postés
29743
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

J'ai trouvé:
if (isset($_POST['submit'])){  	


Puis le scrip pour l'envoi du mail.

Résolu.