Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2007, 12h05   #1
Mut
Membre confirmé
 
Avatar de Mut
 
Inscription : mars 2003
Messages : 789
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : mars 2003
Messages : 789
Points : 237
Points : 237
Envoyer un message via MSN à Mut
Par défaut [PHP-JS] Variable Javascript en php dans une même page

Bonjour, voilà j'ai une page (Mail.php) où j'affiche une textarea avec un bouton. Lorsque je clique sur le bouton, je souhaiterais que ce qui est dans la 'textarea' soit sauvegardé dans une variable php afin de l'utiliser dans une fonction mail().

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
 
<?php
session_start();
$User = $_SESSION['User_Name'];
 
// Fonction Mail
function EnvoiMail(){
     $headers ='From: '.$User.'<'.$User.'@test.fr>'."\n"; 
     $headers .='Reply-To: test@test.fr'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
     $message ='<html><head><title>Demande de catalogue</title></head><body> variable de la TEXTAREA</body></html>'; 
 
     if(mail('test@test.fr', 'Demande de Catalogue', $message, $headers)) 
     { 
          echo 'Le message a été envoyé'; 
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
 
</head>
<body> 
<div align='left'> Veuillez saisir le nom du fournisseur-fabricant que vous souhaitez :</div><br /> 
 
<textarea name='Message' id='message' rows='5' cols='30' ></textarea><br />
<br />
<input type='button' name='envoyer' id='send' value='Demander' align='center' onclick='document.location.href=Mail.php'>
 
</body>
 
</html>
Cela doit être possible en réaffichant la page mais je vois pas comment faire...
Mut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 12h10   #2
Membre habitué
 
Inscription : mai 2002
Messages : 101
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 101
Points : 106
Points : 106
Le javascript s'exécutant au niveau client et le PHP au niveau serveur, la première solution qui me vient à l'esprit est la suivante :

onClick de ton bouton, tu renseignes le contenu de ton textarea dans une variable de formulaire hidden (attention aux caractères spéciaux, sauts de ligne, etc !). Puis, tu submit() ton formulaire sur lui-même et tu renseignes ta variable PHP.

Si il y a une autre solution, elle ne me vient pas à l'esprit...
Cold Hand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 12h38   #3
Mut
Membre confirmé
 
Avatar de Mut
 
Inscription : mars 2003
Messages : 789
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : mars 2003
Messages : 789
Points : 237
Points : 237
Envoyer un message via MSN à Mut
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
session_start();
$User = $_SESSION['User_Name'];
$ContenuTxtArea=$_POST['message'];
// Fonction Mail
function EnvoiMail(){
     $headers ='From: '.$User.'<'.$User.'@test.fr>'."\n"; 
     $headers .='Reply-To: <a href="mailto:test@test.fr">test@test.fr</a>'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
     $message ='<html><head><title>Demande de catalogue</title></head><body> variable de la TEXTAREA</body></html>'; 
 
     if(mail('test@test.fr', 'Demande de Catalogue', $message, $headers)) 
     { 
          echo 'Le message a été envoyé'; 
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
 
</head>
<body> 
<div align='left'> Veuillez saisir le nom du fournisseur-fabricant que vous souhaitez :</div><br />
 
<form name="Formulaire" id="FormCata" method="post">
<textarea name='Message' id='message' rows='5' cols='30' ></textarea><br />
<br />
<input type="submit" name="envoyer" id="send" value="Demander" align="center" onclick="window.opener.document.getElementById('FormCata').submit();">
</form>
 
</body>
 
</html>
J'ai ajouté le formulaire. Mais il veut pas faire le submit. J'ai déclaré la variable de session dans la balise php aussi.
Mut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 13h22   #4
Membre habitué
 
Inscription : mai 2002
Messages : 101
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 101
Points : 106
Points : 106
On s'est pas compris. Je voyais un truc comme ça (reflexion faite, la variable hidden ne sert à rien)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
session_start();
$User = $_SESSION['User_Name'];
$ContenuTxtArea=$_POST['message'];
// Fonction Mail
function EnvoiMail(){
     $headers ='From: '.$User.'<'.$User.'@test.fr>'."\n"; 
     $headers .='Reply-To: <a href="mailto:test@test.fr">test@test.fr</a>'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
     $message ='<html><head><title>Demande de catalogue</title></head><body> variable de la TEXTAREA</body></html>'; 
 
     if(mail('test@test.fr', 'Demande de Catalogue', $message, $headers)) 
     { 
          echo 'Le message a été envoyé'; 
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
 
</head>
<body> 
<div align='left'> Veuillez saisir le nom du fournisseur-fabricant que vous souhaitez :</div><br />
 
<form name="Formulaire" id="FormCata" method="post">
<textarea name='Message' id='message' rows='5' cols='30' ></textarea><br />
<br />
<input type="submit" name="envoyer" id="send" value="Demander" align="center" onclick="document.Formulaire.submit();">
</form>
 
</body>
 
</html>
Par contre, je ne comprends pas quelle est la subtilité de ton problème... Ce formulaire est une simple form d'envoi de mail... Donc, en l'occurence, le onClick ne sert à rien, le type "submit" fait déjà le job. Par contre, ton form n'a pas de target.
Cold Hand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 13h41   #5
Mut
Membre confirmé
 
Avatar de Mut
 
Inscription : mars 2003
Messages : 789
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : mars 2003
Messages : 789
Points : 237
Points : 237
Envoyer un message via MSN à Mut
Merci de tes réponses.

Je vais essayer d'être plus clair dans mes explications...

Je souhaite pouvoir dans une même page envoyer un mail qui contient le contenu d'une textarea. Php étant coté serveur, il faut que je recharge la même page afin de pouvoir passer le contenu de la textarea dans une variable php qui s'intégrera dans la variable $message de la fonction mail.

En résumé, je voudrais envoyer un mail en php avec comme message, le contenu d'une textarea et le tout sur une même page.


Merci
Mut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 13h52   #6
Membre habitué
 
Inscription : mai 2002
Messages : 101
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 101
Points : 106
Points : 106
Citation:
Envoyé par Mut Voir le message
En résumé, je voudrais envoyer un mail en php avec comme message, le contenu d'une textarea et le tout sur une même page.
C'est bien ce que je dis : tu veux simplement un formulaire d'envoi de mail J'ai pas de PHP ici, mais essaie ça

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
<?php
session_start();
$User = $_SESSION['User_Name'];
 
if($_POST['envoyer'] == "Demander";){
    $ContenuTxtArea = $_POST['message'];
    EnvoiMail();
}
 
// Fonction Mail
function EnvoiMail(){
     $headers ='From: '.$User.'<'.$User.'@test.fr>'."\n"; 
     $headers .='Reply-To: <a href="mailto:test@test.fr">test@test.fr</a>'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
     $message ='<html><head><title>Demande de catalogue</title></head><body> variable de la TEXTAREA</body></html>'; 
 
     if(mail('test@test.fr', 'Demande de Catalogue', $message, $headers)) 
     { 
          echo 'Le message a été envoyé'; 
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
 
</head>
<body> 
<div align='left'> Veuillez saisir le nom du fournisseur-fabricant que vous souhaitez :</div><br />
 
<form name="Formulaire" id="FormCata" method="post" target="<?php echo $_SERVER['PHP_SELF']; ?>">
<textarea name='Message' id='message' rows='5' cols='30' ></textarea><br />
<br />
<input type="submit" name="envoyer" id="send" value="Demander" align="center">
</form>
 
</body>
 
</html>
Sinon, tu dois pouvoir trouver plein d'exemples de forms d'envoi de mail sur le web.
Cold Hand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 15h19   #7
Mut
Membre confirmé
 
Avatar de Mut
 
Inscription : mars 2003
Messages : 789
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : mars 2003
Messages : 789
Points : 237
Points : 237
Envoyer un message via MSN à Mut
Bon ça fonctionne toujours pas. J'ai corrigé quelques erreurs mais j'arrive toujours pas à envoyé le mail...pourtant j'ai quand meme le message "l'email a bien été envoyé".

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
 
<?php
session_start();
$User = $_SESSION['User_Name'];
 
if ($_POST['envoyer'] == "Demander"){
    EnvoiMail();
}
 
// Fonction Mail
function EnvoiMail(){
     $headers ='From: '.$User.'<'.$User.'@domaine.fr>'."\n"; 
     //$headers .='Reply-To: <a href="mailto:nobody@domaine.fr">nobody@domaine.fr</a>'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
     $message ='<html><head><title>Demande de catalogue</title></head><body>'.$_POST["message"].'</body></html>'; 
 
     if(mail('monadresse@domaine.fr', 'Demande de Catalogue', $message, $headers)) 
     { 
          echo 'Le message a été envoyé';
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
 
</head>
<body> 
<div align='left'> Veuillez saisir le nom du fournisseur-fabricant que vous souhaitez :</div><br />
 
<form name="Formulaire" id="FormCata" method="post" target="<?php echo $_SERVER['PHP_SELF']; ?>">
<textarea name='Message' id='message' rows='5' cols='30' ></textarea><br />
<br />
<input type="submit" name="envoyer" id="send" value="Demander" align="center">
</form>
 
</body>
 
</html>
Ce que j'ai corrigé/modifié :

suppression du ; après "Demander"
ajout de la variable $_POST dans le corps du message
mise en commentaire d'une ligne $header

Une dernière chose très importante je pense...la page s'ouvre en double
Mut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 17h18   #8
Mut
Membre confirmé
 
Avatar de Mut
 
Inscription : mars 2003
Messages : 789
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : mars 2003
Messages : 789
Points : 237
Points : 237
Envoyer un message via MSN à Mut
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
<?php
session_start();
$User = $_SESSION['User_Name'];
//if(isset($_POST['message'])){$ContenuTxtArea=$_POST['message'];}else{$ContenuTxtArea="";}
 
if (isset($_POST['envoyer']) == "Demander"){
    EnvoiMail();
}
 
// Fonction Mail
function EnvoiMail(){
     $headers ='From:<nobody@domaine.fr>'."\n"; 
     $headers .='Reply-To: <a href="mailto:nobody@domaine.fr">nobody@domaine.fr</a>'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit';
     if(isset($_POST['message'])){$ContenuTxtArea=$_POST['message'];}else{$ContenuTxtArea="";}  
     $message ='<html><head><title>Demande de catalogue</title></head><body>'.$ContenuTxtArea.'</body></html>'; 
 
     if(mail('cedric.mutel@auxitec.fr', 'Demande de Catalogue',$message,$headers)) 
     { 
          echo 'Le message a été envoyé';
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
 
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
 
</head>
<body> 
<div align='left'> Veuillez saisir le nom du fournisseur-fabricant que vous souhaitez :</div><br />
 
<form name="Formulaire" id="FormCata" method="post">
<textarea name='message' id='message' rows='5' cols='30' ></textarea><br />
<br />
<input type="submit" name="envoyer" id="send" value="Demander" align="center">
</form>
 
</body>
 
</html>
Cette version de code fonctionne très bien ! Merci à toi
Mut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 17h18   #9
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Salut !

J'ai repéré quelques erreurs dans ton code qui devraient peut-etre t'aider :

Code :
<form name="Formulaire" id="FormCata" method="post" target="<?php echo $_SERVER['PHP_SELF']; ?>">
"target" n'est pas le bon attribut -> A remplacer par "action" !

Par ailleurs, je ne suis pas sur que tu puisses utiliser les variables $_POST directement dans ta fonction EnvoiMail() sans les déclarer comme global ou les passer en paramètre.

Essaie avec :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if ($_POST['envoyer'] == "Demander"){
    EnvoiMail($User, $_POST['message']);
}
 
// Fonction Mail
function EnvoiMail($user, $message){
     $headers ='From: '.$user.'<'.$user.'@domaine.fr>'."\n"; 
     //$headers .='Reply-To: <a href="mailto:nobody@domaine.fr">nobody@domaine.fr</a>'."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
     $html ='<html><head><title>Demande de catalogue</title></head><body>'.$message.'</body></html>'; 
 
     if(mail('monadresse@domaine.fr', 'Demande de Catalogue', $html, $headers)) 
     { 
          echo 'Le message a été envoyé';
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé, contacter votre administrateur réseau'; 
     }
}
?>
Voilà
A++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2007, 12h15   #10
Mut
Membre confirmé
 
Avatar de Mut
 
Inscription : mars 2003
Messages : 789
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : mars 2003
Messages : 789
Points : 237
Points : 237
Envoyer un message via MSN à Mut
Merci de tes réponses. On a du poster en même temps hier . J'ai effectivement modifié l'attribut (en le supprimant) comme ça je n'avais plus le problème du doublon de page. Par contre pour les variables je peux les utiliser directement dans ma fonction car il me semble que les variables $_POST sont globales...
Mut est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h41.


 
 
 
 
Partenaires

Hébergement Web