Mail en PHP

Signaler
Messages postés
110
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 octobre 2007
-
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
-
Bonjour!
J'ai fait un site de voitures d'occasion qui se trouve sur www.autos-occasions.org
J'ai un problème sur la page "occasions" car j'ai fait un lien " Posez-nous votre question " qui va vers une popup qui contient un mail en php. J'ai trouvé ce code en php sur le net et il fonctionne très bien pour certaines applications.
Je reçois bien le mail dans ma messagerie quand j'envoie le message terminé mais le problème qui se pose, c'est qu'après l'avoir envoyé, je suis redirigé à nouveau vers la page index.php du site. Autrement dit, j'ai à nouveau la page index.php du site www.autos-occasions.org qui s'ouvre sur le site www.autos-occasions.org qui était déjà ouvert.
J'aimerais bien que mon message soit envoyé, qu'il disparaisse et que je me retrouve à nouveau sur ma page "occasions" où je me trouvais avant de l'envoyer.

Voici le code PHP de la partie qui sert à envoyer le message où on voit bien qu'il y a:
$insertGoTo = "http://www.autos-occasions.org/index.php";
qui sert à se rediriger à nouveau vers la page "index.php" une fois que le mail est envoyé.
.

<?php
if($_POST['action'] == 'submitted')
{
$adress = "[mailto:jacques.del-chicca@club-internet.fr jacques.del-chicca@club-internet.fr]";
$sujet = "Question posée par un client";
$message = "Une question a été posée par un client sur le site:\n\n";
$message .= "Nom du client: {$_POST['nom']}\nPrenom: {$_POST['prenom']}\nE-mail: {$_POST['email']}\n\nAdresse:\n {$_POST['adresse']}\n\n";
$message .= "Téléphone:\n{$_POST['tel']}\n\n";
$message .= "Voici la question posée par le client:\n{$_POST['mess']}\n";
$entete = "From: Client/Question\n";
mail($adress, $sujet, $message, $entete);
//page de sortie
$insertGoTo = "http://www.autos-occasions.org/index.php";
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>

Et voilà ce que j'ai dans mon formulaire
<form name ="forml" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onSubmit="return verif_champs()">

Auriez-vous une idée pour résoudre mon problème?
Salutations
Jacques

6 réponses

Messages postés
110
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 octobre 2007

Bonjour
J'ai trouvé un script pour envoyer le mail en php dont je vous ai parlé dans le message du dessus et que j'ai envoyé hier soir. ( Voir le code php à l'adresse suivante ).http://www.asp-php.net/tutorial/asp-php/email.php?page=8

Je l'ai adapté à ce que je désirais mais il reste encore un petit problème.
Tel qu'est conçu le script, l'utilisateur est obligé de rentrer l'adresse du garage s'il veut que son mail parte.
C'est à dire qu'il remplit les champs avec son nom, son prénom, son message + le reste, et en dernier lieu, je suis obligé de lui mettre un champ pour qu'il rentre l'e-mail de destination. En ce moment, cette adresse de destination est [mailto:jaco132@club-internet.fr jaco132@club-internet.fr] qui est la mienne car ce site est encore à l'essai.
Savez-vous comment je pourrais modifier le code pour que l'utilisateur n'est pas besoin de rentrer cette adresse de destination et que ça se fasse automatiquement en supprimant le champ destiné à çà?
Avez-vous également une idée comment je pourrais réduire la taille de la popup qui contient le message à remplir car elle est vraiment trop grande?
J'ai essayé plein de trucs mais ça ne fonctionne pas. Je ne suis pas fort en programmation, je bidouille un peu comme on dit. Pensez-y si vous souhaitez me répondre.

L'exemple du problème est visible en cliquant sur " Posez-nous votre question " à cette adresse:
http://www.autos-occasions.org/occasions.php

Merci beaucoup pour vos suggestions.
Cordialement
Jacques


Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Bonjour,



Donc tu as deux problèmes...



Un assez simple : pour ouvrir ta fenêtre popup, je suppose que tu utilise la fonction javascript window.open();

Via cette fonction, tu peux sépcifier la taille de la fenêtre qui s'ouvrira (entre autres)

window.open(url, nom_de_la_fenetre_pour_usage_interne, "width=200, height=300");





Concernant l'envoi de mail, tu poses un faux problème...

Puisque l'adresse email doit toujours être la même, donne la directement dans la fonction PHP qui envoie le mail :

mail('jaco132@club-internet.fr',$message, $header);

Sinon, tu peux utiliser mais je ne vois pas trop l'intéret dans ton
cas.





Cordialement,
Messages postés
110
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 octobre 2007

Merci beaucoup de m'avoir répondu.
L'envoi du mail avec le masqué fonctionne très bien et c'est super.
Par contre, le code de la popup ne fonctionne pas.
Voici le code de ma popup qui se trouve sur la page "occasions.php" qui permet d'ouvrir la popup qui se trouve sur la page "popup5.php".
&#9679; Posez-nous votre question


Ce code-là fonctionne très bien mais pas moyen de réduire la taille de la popup qui est dans un tableau de "500" de large et environ 500 de haut.

Si je mets javascript: window.open( 'popup5.php', 'width=200, height=300');
Rien ne s'ouvre!
Cordialement
Jacques
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Bonjour,



Passé un bon WE ?



Bref... Venons en au fait :

Tu as mal lu mon dernier post (rien de grave)

la fonction open prend 3 paramètres

1 => url de la fenêtre à ouvrir

2 => nom de l'objet fenêtre qui sera ouvert

3 => options suplémentaire de style

le deuxième paramêtre ne sert que dans le cas d'une utilisation avancée du JavaScript... mais bon il existe!



Essaye un truc comme ça :

javascript: window.open( 'popup5.php', 'fenetreMail', 'width=200, height=300');
Messages postés
110
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 octobre 2007

Bon W.E,? Ben W.E. à bosser tout simplement sur le site. :-)
Pas toujours marrant quand même!

J'ai donc mis le code que tu m'as suggéré de mettre dans la page qui ouvre la popup. Il ne fonctionne pas lorsque je clique sur le lien en ligne pour ouvrir la popup. Le lien ne réagit pas et rien ne se passe.
Je t'ai donc mis mon code tel qu'il existe sur mon site. Peut-être ai-je oublié de nommer convenablement quelque chose par rapport à la solution que tu m'avais donnée dans ton message précédent. J'avais simplement modifié le code se trouvant sur la page "index.php" avec celui que tu m'avais donné au-dessus et dans le code de la popup5.php, je n'avais rien modifié du tout. Peut-être est-ce le nom "fenetreMail" qui ne colle pas?
Salutations

Voici le code se trouvant sur la page "index.php" et qui commande l'ouverture de la popup
[centre.css
<link href= "immo.css" rel="stylesheet" type="text/css">
</HEAD>

<center>


<? // SI LE FORM A ETE POSTE
if(!empty($_POST["Email"])) {


// Récupère les éléments du form
$temp="";
while (list($truc, $val) = each($HTTP_POST_VARS))
$temp .= $truc." : ".$val."\n\n";
// Caractères spéciaux
$temp = stripslashes($temp);


// Envoie le message
// L'émetteur est aussi le récepteur dans cet exemple !
if(@sendmail($_POST["Email"],$_POST["Email"],"Message envoyé par un client du site",$temp)) {
// Affiche un message de confirmation
echo "Le formulaire a bien été envoyé à ".$_POST["Email"]." !";
} else {
// ou un message d'erreur
echo "Impossible d'envoyer le formulaire !";
}


// SINON AFFICHAGE DU FORM
} else { ?>
<script language ="JavaScript">
// Teste si le mail a une forme correcte
function checkmail(email) {
var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
return (reg.exec(email)!=null)
}
// Teste le contenu des champs du form avant submit
function test(nom,mail) {
if(nom.value=="") {
alert("Indiquez votre nom !"); nom.focus(); return false;
} else if(!checkmail(mail.value)) {
alert("Email incorrect !"); mail.focus(); return false;
}
return true;
}
</script>
<form method=\"post\" onsubmit=\"return test(this.Nom,this.Email)\">
----

Question posée par un client,

----

Nom
,
Prénom
,

----

Tél:
,
e-mail
,

----

Adresse postale

<textarea wrap=virtual rows=5 cols=28 name="Adresse"></textarea>,

----

Votre message

<textarea wrap=virtual rows=5 cols=35 name="Message"></textarea>,

----

<!-- Envoyez votre message à: ]jaco132@club-internet.fr
name="Email">, -->
jaco132@club-internet.fr">,

----

<!-- "> -->
,

</form>

<? } ?>

</HTML>
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut...



Je vois que les choses sont difficiles ;)

Va faire un petit tour sur cette url : http://www.editeurjavascript.com/scripts/scripts_navigation_1_51.php

Et dis moi si tu y as trouvé ton bonheur !



Et pour la suite, je te conseil vivement d'utiliser l'EditeurJavascript
pour trouver de bons petits scripts de derrière les fagots. C'est
vraiment le must en Javascript !!!!





A+