Etre prévenu par mail d'une action sur un bouton.

Résolu/Fermé
Max747 - 8 oct. 2020 à 14:27
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 - 8 oct. 2020 à 19:09
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
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 oct. 2020 à 15:17
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...


0
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.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Max747
8 oct. 2020 à 16:00
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...
0
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024
8 oct. 2020 à 16:24
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 ?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 oct. 2020 à 17:08
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 ...
0
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
8 oct. 2020 à 17:12
Pourrais tu m'indiquer sur quelle variable de ce formulaire dois je appliquer la condition if?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024
8 oct. 2020 à 17:51
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.
0
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
8 oct. 2020 à 18:46
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?
0
Max747 Messages postés 258 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 11 janvier 2024 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
8 oct. 2020 à 19:09
J'ai trouvé:
if (isset($_POST['submit'])){  	


Puis le scrip pour l'envoi du mail.

Résolu.
0