Aide à une débutante en "php"

Résolu/Fermé
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013 - 4 févr. 2010 à 14:26
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013 - 19 févr. 2010 à 11:50
Bonjour,
Tout d'abord un grand merci à votre forum qui m'a beaucoup aidée. Je précise qu'à part le "html" je ne connais rien de rien au "php". Je me suis donc lancée, J'ai fait mon "form sur ma page index" et j'ai fait ma page "formmail" en php. Quand je lance wamp (que j'ai installé sur mon ordi) et que je tape "localhost" ma page s'ouvre mais quand je simule un message venant de l'extérieur je reçois bien un mail mais envoyé de "moi" à "moi" et pas de sujet, pas de commentaires...alors que j'ai rempli ces zones. Je ne sais pas si vous allez me comprendre, est-ce que je suis loin du but ou est ce que j'ai tout faux ??? Si vous pouvez m'aider, d'avance merci.
Vega32
A voir également:

19 réponses

Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
4 févr. 2010 à 14:37
salut a toi,

Si tu reçoit le mail c'est que certaine chose doivent marcher, malheureusement, n'étant pas extralucide, je ne peux voir ton code si tu ne le montre pas donc je peux pas t'aider xD

a bientot
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 14:43
Voilà le form: <form method="post" action="formmail.php"><input
name="subject" value="formmail" type="hidden">
<table>
<tbody>
<tr>
<td>Votre Nom:</td>
<td><input name="realname" size="30"
type="text"></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input name="email" size="30"
type="text"></td>
</tr>
<tr>
<td>Votre Telephone:</td>
<td><input name="telephone" size="30"
type="text"></td>
</tr>
<tr>
<td>modele bmw:</td>
<td><input name="modele" size="30"
type="text"></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input name="title" size="30"
type="text"></td>
</tr>
<tr>
<td colspan="2">votre message:<br>
<textarea cols="50" rows="6"
name="comments"></textarea>
</td>
</tr>
</tbody>
</table>
<br>
<input value="Envoyer" type="submit"> -
<input value="Annuler" type="reset"></form>
et voilà le formmail en php :
<?php
$TO = "cedricbernard@stationbm95.fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://stationbm95.fr");

?>

Merci si vous pouvez m'aider de manière à ce que je comprenne.
vega32
0
JeepyLeChat Messages postés 59 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 27 février 2012 1
4 févr. 2010 à 14:47
Salut,

Comme Camuke dit, sans ton code, c'est un peu difficile d'être précis sur le pourquoi. Cependant, il est possible qu'il y ait une erreur de syntaxe dans ton update sur WampServer, (virgule manquante, etc). Souvent, lorsque quelque chose échoue comme ça, c'est à cause d'une erreur stupide comme ça. C'était souvent ça pour moi. ^^

J'aimerais voir en particulier ce que tu fais pour simuler un message provenant de l'extérieur.
Allez, va poster du code! =)

JeepyLeChat

/*edit*/

Eh ben, tu as postée ton code pendant que je tapais ça. Haha.
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
4 févr. 2010 à 14:57
Essaye sa:

$TO = "cedricbernard@stationbm95.fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($_POST)) {
$message .= "$key : $val<br>";
}

mail($TO, $_POST['title'], $message, $h);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 15:11
Merci d'abord pour l'aide. Alors j'ai essayé, maintenant je reçois le mail mais avec ça dans le texte :
subject : formmail<br>realname : <br>email : <br>telephone : <br>modele : <br>title : <br>comments : esai<br>

J'ai du oublié quelquechose en route, des espaces en trop en moins ???? et ce "php" me prend la tête, je n'y comprends rien, c'est vraiment pas parlant contrairement au "html".
Vega32
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 15:21
j'ai mis ça :
<?php
$TO = "cedricbernard@stationbm95.fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://stationbm95.fr");

?>
et voilà ça marche, mais sur le mail je reçois ça :

subject : formmail
realname :
email : mtb32@laposte.net
telephone :
modele :
title :
comments : essai

J'ai déjà fait des progrès grâce à vous !!!! J'espère que je vais y arriver :)
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
4 févr. 2010 à 15:39
C'est sur que sa affiche se genre de chose, dans ton code ton message est crée par une boucle qui met à la suite dans le message le nom de la variable et sa valeur.

Si tu veux une mini présentation, le code ressemble plus a sa:
<?php
if(isset($_POST['email'])) {
$TO = "cedricbernard@stationbm95.fr";

$h = "From: " . $TO;
$message_html='<html>
					<head>
						<title>Titre</title>
					</head>
					<body>	Nom : '.$_POST['realname'].' <br>
							Email : '.$_POST['email'].' <br>
							Telephone : '.$_POST['telephone'].' <br>
							modele bmw : '.$_POST['modele'].' <br>
							sujet : '.$_POST['title"'].' <br>
							message : '.$_POST['comments'].' <br>
					</body>
				</html>'; 

$message = "";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n"; 

mail($TO, $_POST['title'], $message, $h);

}
?> 
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 15:51
j'ai peur de tester ton nouveau code et de ne plus y arriver car là ça y est grâce à toi voilà ce que j'ai reçu après l'envoi du formulaire :
sujet :
Nom : BERNARD
email : mtb32@laposte.net
telephone : 0000000000
modele_bmw : serie 5 tant qu'à faire !!!
message : Je fais un essai et génial on dirait que ça marche maintenant je voudrais que l'expéditeur retombe sur une page de remerciement.


Je n'avais rien rempli dans la case "sujet" donc normal qu'il n'y ait rien.

et comme je le dis dans le message, comment faire pour rediriger le visiteur sur une page du style "merci message envoyé, nous vous répondrons dès que possible" ???
Est-ce que c'est simple ??
Merci
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
4 févr. 2010 à 15:56
a la fin de ton code php tu met sa:
header('Location: mapage.php');
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 16:07
juste ça ? en remplaçant "mapage.php" par "la mienne.php" ??? alors là je comprends pas comment le visiteur va être redirigé vers une page de remerciement ?? tu peux m'expliquer stp, merci. Vega
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
4 févr. 2010 à 16:13
Oui tu met le nom de la page que tu veux.
Comment sa marche, aucune idée....
Comme dans beaucoup de langage, PHP possède des fonctions prédéfinit que les humbles codeur comme nous peuvent utiliser, le code derrière je le connais pas et très honnêtement, je pense que, comme tout le monde , je m''en moque complètement.

En français la fonction headers permet de dire a ton navigateur internet d'aller voir la page indiqué.
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 16:32
bon ben je vais essayer et je te dirai si ça marche, mais d'abord une pause et puis je m'y remets :):)
Vega
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
4 févr. 2010 à 19:08
merci merci merci, ça marche !!!! oh, y'aura probablement des bugs et faut que j'améliore mais là déjà c'est super !!!!
Bonne soirée à tous
vega
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
5 févr. 2010 à 14:22
Bonjour,
c'est re-moi. Mon formulaire fonctionne, merci encore à Camuke . Ce formulaire est peut être pas très "pro" mais bon dans l'immediat ça marche. Maintenant je voudrais savoir ce que je peux rajouter en "javascript" ou en "php" pour obliger le visiteur à remplir certains champs comme : le nom, l'email et le n° de telephone avant de valider.
Merci pour votre aide
Vega
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
5 févr. 2010 à 15:24
l'ideal c'est les 2!!

D'abord en javascript:
le script :
<script type="text/javascript">
function valider(){
  if(document.contact.email.value != "") {
      // les données sont ok, on peut envoyer le formulaire    
      return true;
  }
  else {
    // sinon on affiche un message
    alert("Saisissez le prénom");
    // et on indique de ne pas envoyer le formulaire
    return false;
  }
}
</script>
le formulaire :
<form method="post" action="formmail.php" name="contact" onsubmit="return valider()">
//Liste des champs
</form>


Le javascript est superbe pour sa car tu envoie pas le formulaire le tant que tout est pas remplit mais l'utilisateur peut le désactive dans son navigateur donc une petite vérification coté serveur (php) est nécessaire. la réponse est déjà en partie écrite d'ailleurs car tu as dans le code:
if(isset($_POST['email'])): cela test si tu recoit le champs email, tu as juste a rajouter les autres, du genre:
<?php
if(isset($_POST['email']) && isset($_POST['nom'])) {
   //Tout est bien remplit
}else{
 // Un petit message pour avertir
}
?>


Voila, a intégrer et terminer pour ton formulaires.
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
5 févr. 2010 à 16:26
bonjour et merci pour la rapide réponse,
on va me prendre pour une truffe mais je ne sais pas où mettre le javascript dans ma page d'accueil, je viens d'essayer ainsi que le formmail modifié et là ça ne marche plus du tout. Je croyais que ça allait être simple mais là je bute et puis je te renvoie mon form car c'est peut être à cause de la redirection vers la page de remerciement ??? merci d'avance

<?php
$TO = "xxxxx@xxxx.fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://xxxx.fr/merci.html");
// Rediriger vers la page de remerciement
header("Location:merci.html");

?>
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
8 févr. 2010 à 10:13
Je reprend le tout avec le code que j'ai a disposition:

Dans la page de ton formulaire tu doit avoir :

<script type="text/javascript">
function valider(){
  if(document.contact.email.value != "" && document.contact.realname.value != "" && document.contact.telephone.value != "") {
      // les données sont ok, on peut envoyer le formulaire    
      return true;
  }
  else {
    // sinon on affiche un message
    alert("Merci de remplir tout les champs obligatoires");
    // et on indique de ne pas envoyer le formulaire
    return false;
  }
}
</script>

<form method="post" action="formmail.php" name="contact" onsubmit="return valider()">
	<input name="subject" value="formmail" type="hidden">
	<table>
		<tbody>
			<tr>
				<td>Votre Nom:</td>
				<td><input name="realname" size="30" type="text"></td>
			</tr>
				<tr>
				<td>Votre Email:</td>
				<td><input name="email" size="30" type="text"></td>
			</tr>
			<tr>
				<td>Votre Telephone:</td>
				<td><input name="telephone" size="30" type="text"></td>
			</tr>
			<tr>
				<td>modele bmw:</td>
				<td><input name="modele" size="30" type="text"></td>
			</tr>
			<tr>
				<td>Sujet:</td>
				<td><input name="title" size="30" type="text"></td>
			</tr>
			<tr>
				<td colspan="2">votre message:<br>
				<textarea cols="50" rows="6" name="comments"></textarea></td>
			</tr>
		</tbody>
	</table>
	<br>
	<input value="Envoyer" type="submit"> -
	<input value="Annuler" type="reset">
</form> 


Et dans ton fichier formmail.php:

<?php
if(isset($_POST['email']) && isset($_POST['telephone']) && isset($_POST['realname'])) {
	$TO = "xxxxx@xxxx.fr";
	$h = "From: " . $TO;
	while (list($key, $val) = each($_POST)) {
	$message .= "$key : $val\n";
	}
	mail($TO, $subject, $message, $h);
	header("Location:merci.html");
}else{
	echo 'Tout les champs n\'ont pas ete correctement remplit';
}
?>
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
8 févr. 2010 à 11:50
Bonjour Camuke et encore un grand merci car je viens de tester en local et ça marche :):):) Maintenant il me faut l'accord du grand chef du site concerné pour l'installer mais en attendant j'ai 2 autres sites où j'ai bien l'intention de le faire. Je pense que toutes tes infos seront utiles à d'autres, bonne continuation sur "ccm" et peut être à bientôt si jamais j'avais encore besoin de ton aide dans ce domaine ?
Vega
0
vega32 Messages postés 15 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 9 octobre 2013
19 févr. 2010 à 11:50
Bonjour à tous,
Encore une petite question : mon formulaire fonctionne très bien mais quand je fais rentrer les mails des expéditeurs je ne peux cliquer sur répondre car je "me" réponds, je suis obligée de cliquer sur l'adresse mail de l'expéditeur pour lui répondre, est-ce normal ? y-a-il une solution et, avez vous compris ma question ?
d'avance merci
Vega
0