Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

help in a php form

Status
Not open for further replies.

h2mhd

Programmer
Feb 20, 2008
40
CA
hi i am working on a newsletter field, so that the client just have to fill the field with his email and click on the button and i will receive his email.

so heres my code


<form id="search" action="bat/bulletinhandler.php" method="post">
<input type="text" name="email">
<a onClick="document.getElementById('search').submit()"></a>
</form>

PHP

<?php
//$owner_email = $_POST["owner_email"];
$headers = 'De :' . $_POST["email"];
$subject = 'Bulletin trimestriel';
$messageBody = "";

//Obligatoire
if($_POST['email']!='nope'){
$messageBody .= 'courriel : ' . $_POST["email"] . "\n";
}


try{
if(!mail("hugo@example.com", $subject, $messageBody, $headers)){
throw new Exception('mail failed');
}else{
header('Location: ../index.html');
exit;
}
}catch(Exception $e){
echo $e->getMessage() ."\n";
}
?>

and heres the error im getting

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\HostingSpaces\lavalleesfcom\lavalleesf.com\ on line 14 mail failed

could someone help me with this issue

thanks a lot
 

Utiliser 'From:' au lieu de "De" et rajoutez "\r\n\r\n" a la fin du string $headers.
Ou éditer PHP.ini et remplissez le champ 'sendmailfrom' (redemarrez le serveur après bien sur)


 
Salut Jpadie

j'aurais une autre question pour toi

comment je peux faire pour que si les gens entre des accents comme é à et autres que je les reçoive correctement par courriel?

car présentement ca sort ainsi:

Message : je ne comprends pas ce qui se passe, mais c'est supposé fonctionné
Type Produit : allo c'est un test évaluons si ca
 
C'est à priori une question de charset. Il faut que le page du formulaire est utf-8 ET que tu envoie le mel en utf-8.

Le premier c'est fastoche. Soit sur que dans la section <head> du page il y a
Code:
<meta charset="UTF-8"/>
(Bien sur si tu utilise un doctype htlm5. Autres doctypes utilisent des conventions différents)


Le deuxième c'est un peu pareil:
Code:
$headers =
"Content-type: \"text/plain\"; charset=\"UTF-8\"\r\nFrom: monemailadresse.com \r\n\r\n";
 
Salut Jpadie

merci pour ta réponses rapide

donc j'ai essayer ceci:

$headers = 'Content-type: \"text/plain\"; charset=\"UTF-8\"\r\nFrom:' . $_POST["email"];

et ceci

$headers = 'Content-type: \"text/plain\"; charset=\"UTF-8\"\r\n' . 'From:' . $_POST["email"];


mais ca me retourne ceci

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\HostingSpaces\lavalleesfcom\lavalleesf.com\ on line 93 mail failed

c'est probablement pas grand choses mais je la comprends pas!

Merci énormément pour ton aide
 
non. ca ne marche pas car il y a un difference entre ' et ". entre les " " les sequences escapes marchent. Entre les ' ' ils sont traités comme literales.

ainsi
Code:
$headers = "Content-type: \"text/plain\"; charset=\"UTF-8\"\r\nFrom: {$_POST[email]} \r\n\r\n";

 
salut jpadie

donc ca fonctionne pas parfaitement c'est à dire que je reçois un courriel et les accents ne fonctionne pas et en plus je recois le message avec un attachement .dat qui contient le message suivant:

Nom : user
Prénom : user
jj/mm/aaaa : 11/01/1971
Fumeur : Non
Sexe : Masculin
Courriel : user@user.com
Message : éeéeéeéeé


Type Produit : éaéeéeé


Téléphone :

voici les modifications:

soumission.html
<title>Soumission</title>
<meta charset="UTF-8">

mailhandler.php
<?php
$headers = "Content-type: \"text/plain\"; charset=\"UTF-8\"\r\nFrom: {$_POST} \r\n\r\n";
$subject = 'Un message de vos visiteur : ' . $_POST["prename"] . ' ' . $_POST["name"];
$messageBody = "";

//Obligatoire
if($_POST['name']!='nope'){
$messageBody .= 'Nom : ' . $_POST["name"] . "\n";
}

//Optionnel
if (isset($_POST['prename']))
{
if($_POST['prename']!='nope'){
$messageBody .= 'Prénom : ' . $_POST["prename"] . "\n";
}
}

//Optionnel
if (isset($_POST['jour']) && isset($_POST['mois']) && isset($_POST['annee'])){
$messageBody .= 'jj/mm/aaaa : ' . $_POST["jour"] . '/' . $_POST["mois"] . '/' . $_POST["annee"] . "\n";
}

//Optionnel
if (isset($_POST['habit']))
{
if($_POST['habit']!='on'){
$messageBody .= 'Fumeur : Oui' . "\n";
}
else{
$messageBody .= 'Fumeur : Non' . "\n";
}
}

// Optionnel
if (isset($_POST['sexe']))
{
if($_POST['sexe']!='on'){
$messageBody .= 'Sexe : Feminin' . "\n";
}
else{
$messageBody .= 'Sexe : Masculin' . "\n";
}
}

// Obligatoire
if($_POST['email']!='nope'){
$messageBody .= 'Courriel : ' . $_POST['email'] . "\n";
}else{
$headers = '';
}

//Obligatoire
if($_POST['message']!='nope'){
$messageBody .= 'Message : ' . $_POST["message"] . "\n\n\r";
}

//Optionnnel
if (isset($_POST['typeproduit']))
{
if($_POST['typeproduit']!='nope'){
$messageBody .= 'Type Produit : ' . $_POST["typeproduit"] . "\n\n\r";
}
}

//Optionnel
if (isset($_POST['state']))
{
if($_POST['state']!='nope'){
$messageBody .= 'Province : ' . $_POST['state'] . "\n";
}
}

//Obligatoire
if($_POST['phone']!='nope'){
$messageBody .= 'Téléphone : ' . $_POST['phone'] . "\n";
}

//Optionnel
if (isset($_POST['fax']))
{
if($_POST['fax']!='nope'){
$messageBody .= 'Fax : ' . $_POST['fax'] . "\n";
}
}

if($_POST["stripHTML"] == 'true'){
$messageBody = strip_tags($messageBody);
}

try{
if(!mail("user@user.com", $subject, $messageBody, $headers)){
throw new Exception('mail failed');
}else{
header('Location: ../index-1.html');
exit;
}
}catch(Exception $e){
echo $e->getMessage() ."\n";
}
?>




je suis désolé de t'importuner encore une fois mais ton aide est précieuse.

Merci à l'avance
 
j'estime que tu n'utilise pas le bon doctype

Code:
[COLOR=#CC0000]<!DOCTYPE html>[/color]
<head>
 <meta charset="UTF-8">
</head>
<body>
<!-- form -->
</body>
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top