Mettre un texte dans le presse papier en html

Signaler
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020
-
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020
-
Bonjour,
Un de mes programmes envoie un mail codé html contenant un mot de passe.
Il arrive que le destinataire ne recopie pas bien le mot de passe ou ne le sélectionne pas correctement pour le copier dans son presse-papier.
Comment puis-je faire en sorte que ce document html copie d'office le mot de passe dans le presse-papier, éventuellement après avoir appuyé sur un bouton ?
Je pourrais le faire en JS mais comment envoyer le script js en même temps que le mail ?
Grand merci d'avance pour vos réponses

37 réponses

Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
Tu peux lors de la sauvegarde du mot de passe dans la base de données générer un fichier .txt dans un répertoire de ton serveur contenant le mot de passe et envoyer un email automatique contenant le lien de téléchargement du fichier .txt
Voir ici comment créer et éditer un fichier .txt en php. https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/creer-ecrire-fichier/
Aussi il est préférable que le dossier contenant le fichier .txt lui aussi soit créé en php par un nom crypté et sera détruit une fois le client ai téléchargé le fichier .txt pour des raisons de sécurité. Voir ici comment créer un répertoire.
https://phpsources.net/code/php/fichiers-repertoires/114_creation-d-un-nouveau-repertoire
Voir comment crypter et décrypter un dossier contenant un fichier en php.
https://riptutorial.com/fr/php/example/25499/cryptage-symetrique-et-decryptage-de-fichiers-volumineux-avec-openssl
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Merci pour ta réponse mais ce n'est pas ma question.
Le mot de passe est envoyé en clair dans un mail; comme il ne peut servir qu'une seule fois ceci ne pose aucun problème.

Ma question : comment copier ce mot de passe dans le presse papier
afin que l'utilisateur n'ait plus qu'à le coller dans le logiciel ?

Évidemment il suffit de le sélectionner puis Ctrl+V mais il semble que certains n'y parviennent pas !
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
Apparemment A l'intérieur d'une Boite e-mail gmail.
le serveur mail.google.com empeche l'execution de Javascript à l'intérieur de l'email il empeche son fonctionnement (Protégé par CORS Policy), on ne peut utiliser que Html css alors que c'est impossible de le faire en css.
Voir Erreur ci-dessous : (je ne sais pas si cela fonctione sous webmail ou outlook)
Access to XMLHttpRequest at 'https://mail-ads.google.com/mail/u/1/ads/main_jspb?rt=r&client=25' from origin 'https://mail.google.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Voici le code que j'ai testé sur une boite gmail :
<?php
$sujet = 'Sujet de l\'email';
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body><p>Copiez cette adresse : <span id="tocopy">https://www.knacss.com/</span><input type="button" value="Copier" class="js-copy" data-target="#tocopy"></p><script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("click", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }} </script></body></html>';

$destinataire = 'exemple@gmail.com';
$headers = "From: \"expediteur moi\"<exemple@gmail.com>\n";
$headers .= "Reply-To: exemple@gmail.com\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";

if(mail($destinataire,$sujet,$message,$headers))
{
        echo "L'email a bien été envoyé.";
}
else
{
        echo "Une erreur c'est produite lors de l'envois de l'email.";
}
?>

Le code est fonctionnel sauf qu'il ne fonctionne pas à l'initérieur d'une boite gmail mais je ne sais pas si il fonctionne sous thunderbird (Le probleme c'est qu'il doit marcher sur n'importe quel boite)
A priori c'est impossible. Sinon si on arrive à executer du javascript à l'intérieur d'une boite e-mail Gmail et bien on peut pirater Google donc le message CORS Policy ca veut dire ce que ca veut dire.
Je voudrais bien avoir ton avis aussi....
Dans le code change les 3 mail exemple@gmail.com par un mail à toi pour tester tu inspecte l'élément pour voir l'erreur. dans la console.
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
La solution c'est d'exécuter le javascript sur ton serveur depuis un lien de la boite e-mail avec un paramètre get
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Je n'ai pas compris ce dernier message.
J'étais en train d'essayer le code que tu m'as donné et qui semble aller dans le bon sens; voici la partie $message que j'ai utilisée
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body>';
$message .= '<p>Copiez cette adresse : <span id="tocopy">https://www.knacss.com/</span><input type="button" value="Copier" class="js-copy" data-target="#tocopy"></p><script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("click", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }} </script>';
 $message .= "<P>Bonjour ".$First." ".$Last.",</P>";
 $message .= "<P>Votre nom d'utilisateur : ".$Userid."</P>";
 $message .= "<P>Votre mot de passe : «".$PW."»</P>";


Le mail que je reçois :
Copiez cette adresse : [https://www.knacss.com/[Copier]]
Bonjour 2 3,
Votre nom d'utilisateur : 1
Votre mot de passe : «PassWord»

Je ne comprends pas l'URL, je m'attendais à trouver un bouton "Copier".
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
Tu as oublié la fermeture de la page html
</body></html>
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Non, je n'ai pas mis tout le message, mes excuses pour t'avoir induit en erreur, voici la suite
 $message .= "Copiez ce mot de passe (sans les guillemets) et collez-le dans la fenêtre du logiciel.";
 $message .= "<BR><BR>Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d'emploi du logiciel";
 $message .= "<BR>n'hésitez pas à demander de l'aide en répondant à ce mail ou via le forum www.LeForumRecifal.com";
 $message .= '<BR><BR><a href="https://www.LeForumRecifal.com"><IMG src="https://www.leforumrecifal.com/images/Banniere700.jpg"></a>';
 $message .= "</body></html>";

J'essaye de comprendre pourquoi j'ai cette URL et pas le bouton
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
le mode d'emploi il y a une apostrophe qui casse tout <BR>n'hésitez pas aussi il y a une apostrophe
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

C'est la raison pour laquelle je mets tout entre " ça fonctionne très bien
$message .= "<BR><BR>Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d'emploi du logiciel";

j'ai juste ajouté ton script devant
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body>';
$message .= '<p>Copiez cette adresse : <span id="tocopy">https://www.knacss.com/</span><input type="button" value="Copier" class="js-copy" data-target="#tocopy"></p><script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("click", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }} </script>';
 $message .= '<P>Bonjour '.$First.' '.$Last.',</P>';
 $message .= '<P>Votre nom d\'utilisateur : '.$Userid.'</P>';
 $message .= '<P>Votre mot de passe : «'.$PW.'»</P>';
 $message .= 'Copiez ce mot de passe (sans les guillemets) et collez-le dans la fenêtre du logiciel.';
 $message .= '<BR><BR>Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d\'emploi du logiciel';
 $message .= '<BR>n\'hésitez pas à demander de l\'aide en répondant à ce mail ou via le forum www.LeForumRecifal.com';
 $message .= '<BR><BR><a href="https://www.LeForumRecifal.com"><IMG src="https://www.leforumrecifal.com/images/Banniere700.jpg"></a>';
 $message .= '</body></html>';


Met ca et dit moi Si tu met les guillemet tu vas avoir des problemes avec les selecteur en javascript
Messages postés
503
Date d'inscription
dimanche 17 juillet 2016
Statut
Membre
Dernière intervention
31 mai 2020
45
Ce que tu peux faire, c'est d'héberger un fichier chez "Mediafire" d'attendre que 'copy link" apparaisse, tu enregistre la page avec Firefox, et ensuite tu va fouiller dans le dossier de fichier et dans le html pour voir comment ils font.
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
Aussi tu peux créer un fichier php et l'heberger sur ton serveur exemple : fonction.php
ce fichier vas récupérer les données de la base de donnée grace au paramètre GET exemple :
<!DOCTYPE html>
<html>
	<head>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
	</head>
<body>
<?php
// Ici code retourner les resultats du user avec mot de passe avec le paramètre $_GET['idUser']
?>
<p>Copiez cette adresse : 
	<span id="tocopy"><?php echo $mot_de_passe; ?> </span>
	<input type="hidden" value="Copier" class="js-copy" data-target="#tocopy">
</p>
<script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("load", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }} </script>

 	
 </body>
</html>


Et quand tu envoi un email tu met le lien du fichier fonction.php

<?php
$sujet = 'Sujet de l\'email';
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body><p>Copiez cette adresse : <span id="tocopy">https://www.knacss.com/</span><input type="button" value="Copier" class="js-copy" data-target="#tocopy"></p><script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("click", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }}	</script></body></html>';

$destinataire = 'exemple@gmail.com';
$headers = "From: \"expediteur moi\"<exemple@gmail.com>\n";
$headers .= "Reply-To: exemple@gmail.com\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";

if(mail($destinataire,$sujet,$message,$headers))
{
        echo "L'email a bien été envoyé.";
}
else
{
        echo "Une erreur c'est produite lors de l'envois de l'email.";
}
$message = '<!DOCTYPE html><html><head></head><body>';
$message .= '<p>Copiez ce mot de passe : <a href="https://www.ton_nom_de_domaine.com/fonction.php?idUser=<?php echo stripslashes($idUser); ?>">Copier</a></p>';
$message .= '</body></html>';
?>

Lorsque le fichier fonction.php vas se charger il va te copier le mot de passe dans le presse papier tu peux ajouter du javascript à la fin de la page pour fermer la page après chargement.
C'est à dire que l'utilisateur va voir une page pop up qui s'ouvre est se ferme en arrière plan
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Pour l'histoire des guillemets j'ai copié ton code, j'ai la même chose
Copiez cette adresse : https://www.knacss.com/[Copier]
Bonjour 2 3,
Votre nom d'utilisateur : 1
Votre mot de passe : «PassWord»
Copiez ce mot de passe (sans les guillemets) et collez-le dans la fenêtre du logiciel.

Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d'emploi du logiciel
n'hésitez pas à demander de l'aide en répondant à ce mail ou via le forum www.LeForumRecifal.com

Pour la suite pas besoin de php pour récupérer un mot de passe dans une DB, il n'y en a pas, le mot de passe est connu au niveau html.

Explication : pour pouvoir utiliser le logiciel il faut communiquer une adresse mail; il compose un mdp aléatoirement, l'envoie par mail, et attend qu'on lui mette le même mdp dans une zone de saisie; si ok il met une clé dans le registre qui ouvrel'accès au logiciel; le mdp n'est dons stocké nulle part, il ne sert qu'une fois.
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
<?php
$First = "1";
$Last = "1";
$Userid = "1";
$PW = "1";
$sujet = 'Sujet de l\'email';
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body>';
$message .= '<p>Copiez cette adresse : <span id="tocopy">https://www.knacss.com/</span><input type="button" value="Copier" class="js-copy" data-target="#tocopy"></p><script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("click", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }} </script>';
$message .= '<P>Bonjour '.$First.' '.$Last.',</P>';
$message .= '<P>Votre nom d\'utilisateur : '.$Userid.'</P>';
$message .= '<P>Votre mot de passe : «'.$PW.'»</P>';
$message .= 'Copiez ce mot de passe (sans les guillemets) et collez-le dans la fenêtre du logiciel.';
$message .= '<BR><BR>Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d\'emploi du logiciel';
$message .= '<BR>n\'hésitez pas à demander de l\'aide en répondant à ce mail ou via le forum www.LeForumRecifal.com';
$message .= '<BR><BR><a href="https://www.LeForumRecifal.com"><IMG src="https://www.leforumrecifal.com/images/Banniere700.jpg"></a>';
$message .= '</body></html>';
 
$destinataire = 'anis.visualis@gmail.com';
$headers = "From: \"expediteur moi\"<anis.visualis@gmail.com>\n";
$headers .= "Reply-To: anis.visualis@gmail.com\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";

if(mail($destinataire,$sujet,$message,$headers))
{
        echo "L'email a bien été envoyé.";
}
else
{
        echo "Une erreur c'est produite lors de l'envois de l'email.";
}
?>


Chez moi ca marche Ton souci regarde ce bout de code, comment tu affecte tes variables ?
$First = "1";
$Last = "1";
$Userid = "1";
$PW = "1";
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Les variables viennent d'ici
https://www.xxxx.be/PressePapier.php?Userid=1&First=2&Last=3&Mail=xxxx@yyyy.net&PW=PassWord

Je les récupère comme ceci
$PW=utf8_encode($_GET["PW"]);
$Mail=utf8_encode($_GET["Mail"]);
$Userid=utf8_encode($_GET["Userid"]);
$First=utf8_encode($_GET["First"]);
$Last=utf8_encode($_GET["Last"]);

Ce que le bouton devrait mettre dans le presse-papier c'est $PW
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
$PW = utf8_encode(stripslashes($_GET['PW']));
$Mail = utf8_encode(stripslashes($_GET['Mail']));
$Userid = utf8_encode(stripslashes($_GET['Userid']));
$First = utf8_encode(stripslashes($_GET['First']));
$Last = utf8_encode(stripslashes($_GET['Last']));

ET REMPLACE CA AUSSI
$headers .= "Content-Type: text/html; charset=\"utf-8\"";
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

C'est gentil à toi de vouloir m'aider mais ça ne change rien, le mail contient toujours

Copiez cette adresse : https://www.knacss.com/[Copier]
Bonjour 2 3,
Votre nom d'utilisateur : 1
Votre mot de passe : «PassWord»
...
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
ALORS AU LIEU DE L'INPUT ON MET UN LIEN
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body>';
$message .= '<p>Copiez cette adresse : <span id="tocopy">https://www.knacss.com/</span><a style="font-size: 14px;background: gray;padding: 10px 10px;color:#fff;font-weight:bold;cursor:pointer;" class="js-copy" data-target="#tocopy" >Copier</a></p><script> var btncopy = document.querySelector("input"); if(btncopy) {    btncopy.addEventListener("click", docopy);} function docopy() {    var target = this.dataset.target; var fromElement = document.querySelector(target); if(!fromElement) return;  var range = document.createRange();   var selection = window.getSelection(); range.selectNode(fromElement); selection.removeAllRanges();  selection.addRange(range); try { var result = document.execCommand("copy"); if (result) { alert("Copié !"); } } catch(err) { alert(err); } selection = window.getSelection(); if (typeof selection.removeRange === "function") { selection.removeRange(range); } else if (typeof selection.removeAllRanges === "function") { selection.removeAllRanges(); }} </script>';
$message .= '<P>Bonjour '.$First.' '.$Last.',</P>';
$message .= '<P>Votre nom d\'utilisateur : '.$Userid.'</P>';
$message .= '<P>Votre mot de passe : «'.$PW.'»</P>';
$message .= 'Copiez ce mot de passe (sans les guillemets) et collez-le dans la fenêtre du logiciel.';
$message .= '<BR><BR>Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d\'emploi du logiciel';
$message .= '<BR>n\'hésitez pas à demander de l\'aide en répondant à ce mail ou via le forum www.LeForumRecifal.com';
$message .= '<BR><BR><a href="https://www.LeForumRecifal.com"><IMG src="https://www.leforumrecifal.com/images/Banniere700.jpg"></a>';
$message .= '</body></html>';
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
SI L'AFFICHAGE EST BON DIT LE MOI CAR C'EST PAS FINIT,
C'EST UN PLAISIR DE T'AIDER....
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

La première ligne du mail reçu devient
Copiez cette adresse : https://www.knacss.com/Copier

Je suppose que le but n'est pas d'arriver à cette URL.
Pourquoi passer par knacss et pas mettre directement un bouton dans le html ?
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
TU UTILISE QUELLE TYPE DE BOITE EMAIL
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Que veux-tu dire par "boîte" ?
Les mails arrive chez mon provider skynet.be
Je les lis avec Outlook 2007 (pas Outlook.com mais le logiciel de messagerie Office).
J'ai essayé d'envoyer le mail sur mon adresse gmail : c'est exactement la même chose.

N'y a-t-il pas moyen de faire qqch de simple comme ceci
<input type="button" value="Copier le mot de passe dans le presse-papier">

var btncopy = document.querySelector("input");
if(btncopy)
{
btncopy.addEventListener("click", docopy);
}
function docopy() qui n'a plus qu'à mettre le contenu de la variable $PW dans le presse-papier non ?
Messages postés
61
Date d'inscription
vendredi 10 avril 2020
Statut
Membre
Dernière intervention
17 mai 2020
5
PATIENCE J'AI TROUVÉ LA SOLUTION
clique sur ce lien j'ai mi le mot de passe dans une variable php et cette variable php est copié quand tu ouvre le lien
Voici le lien : https://i-unpaidclaims-m.ma/test-2.php?variable=HERVE
Et voici son code :
<!DOCTYPE html>
<html lang="fr">
<head>

</head>
<body>
<p>
<?php $PW = stripslashes($_GET['variable']); ?>
   <span id="tocopy"><?php echo $PW; ?></span>
   <input type="hidden" value="<?php echo $PW; ?>" class="js-copy" data-target="#tocopy">
</p>
<script>
var btncopy = document.querySelector('.js-copy');
if(btncopy) {
    btncopy.addEventListener('load', docopy);
}

function docopy() {

    // Cible de l'élément qui doit être copié
    var target = this.dataset.target;
    var fromElement = document.querySelector(target);
    if(!fromElement) return;

    // Sélection des caractères concernés
    var range = document.createRange();
    var selection = window.getSelection();
    range.selectNode(fromElement);
    selection.removeAllRanges();
    selection.addRange(range);

    try {
        // Exécution de la commande de copie
        var result = document.execCommand('copy');
        if (result) {
            // La copie a réussi
            alert('Copié !');
        }
    }
    catch(err) {
        // Une erreur est surevnue lors de la tentative de copie
        alert(err);
    }

    // Fin de l'opération
    selection = window.getSelection();
    if (typeof selection.removeRange === 'function') {
        selection.removeRange(range);
    } else if (typeof selection.removeAllRanges === 'function') {
        selection.removeAllRanges();
    }
}	
</script>	
</body>
</html>

-----------------------------------------------------------------------------
Tu vas seulement créer un lien dans ta boite e-mail
<?php
$PW = utf8_encode(stripslashes($_GET['PW']));
$Mail = utf8_encode(stripslashes($_GET['Mail']));
$Userid = utf8_encode(stripslashes($_GET['Userid']));
$First = utf8_encode(stripslashes($_GET['First']));
$Last = utf8_encode(stripslashes($_GET['Last']));
$sujet = 'Sujet de l\'email';
$message = '<!DOCTYPE html><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script></head><body>';
$message .= '<p>Copiez le code : <a style="font-size:14px;color:#fff;background:gray;padding:10px" href="https://i-unpaidclaims-m.ma/test-2.php?variable=<?php echo $PW; ?>">Copier le Code</a> </p>';
$message .= '<P>Bonjour '.$First.' '.$Last.',</P>';
$message .= '<P>Votre nom d\'utilisateur : '.$Userid.'</P>';
$message .= '<P>Votre mot de passe : «'.$PW.'»</P>';
$message .= 'Copiez ce mot de passe (sans les guillemets) et collez-le dans la fenêtre du logiciel.';
$message .= '<BR><BR>Si vous rencontrez la moindre difficulté et que vous ne trouvez pas la solution dans le mode d\'emploi du logiciel';
$message .= '<BR>n\'hésitez pas à demander de l\'aide en répondant à ce mail ou via le forum www.LeForumRecifal.com';
$message .= '<BR><BR><a href="https://www.LeForumRecifal.com"><IMG src="https://www.leforumrecifal.com/images/Banniere700.jpg"></a>';
$message .= '</body></html>';
 
$destinataire = 'anis.visualis@gmail.com';
$headers = "From: \"expediteur moi\"<anis.visualis@gmail.com>\n";
$headers .= "Reply-To: anis.visualis@gmail.com\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"";

if(mail($destinataire,$sujet,$message,$headers))
{
        echo "L'email a bien été envoyé.";
}
else
{
        echo "Une erreur c'est produite lors de l'envois de l'email.";
}
?>
Messages postés
710
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
18 mai 2020

Dans le mail reçu j'ai
Copiez le code : Copier le Code <= ceci étant un bouton

En cliquant sur la bouton j'arrive sur la page https://i-unpaidclaims-m.ma/test-2.php?variable=<%3B%3Fphp= echo $PW; ?>

la variable contient le texte "$PW" et non le contenu de la variable $PW !

et sur cette page je vois : test Copier <= ceci étant un bouton
si je clique dessus le presse-papier reste vide mais c'est probablement du au fait que la variable est vide
par contre est-il normal de devoir cliquer 2 fois ? Ça devient compliqué !