Formulaire PHP - Petit Pb code

Résolu/Fermé
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 - 10 juin 2009 à 10:53
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 - 11 juin 2009 à 10:26
Bonjour,

A tous

je vais poster un message relatif à un formulaire php. oui encore un !!!;-) oups

Je sais que ca fait pester - voire pire - sourire - les habitués du php mais j'aurai besoin dun petit coup de pouce et un regard sur ce qui cloche sur mon envoi de formulaire
qui me renvoie inexorablement la même erreur - "veuillez remplir tous les champs"
ca doit etre bête et je vous prie de m'en excuser par avance mais quand on sait pas ben on sait pas - sourire
j'ai debute un site il ya 2 mois et je n'avais aucune notion HTML ou autre outils web !
merci de votre comprehension

je vous donne le code pour le formulaire html et le fichier php lié

jespere que quelqu un pourra juste jeter un petit coup d'oeil pour voir ce qui ne va pas!

Merci sincerement par avance!!

Code form HTML :
<form action="send.php""" method="post" enctype="text/plain" name="contact" id="contact"maito:supportinfo58@neuf.fr>
<table width="100%" border="0" cellpadding="0" cellspacing="5" class="texte">
<tr>
<td width="19%">Nom ou pseudo : </td>
<td width="81%"><input name="nom" type="text" id="nom"></td>
</tr>
<tr>
<td>Lieu</td>
<td><input name="lieu" type="text" id="lieu"></td>
</tr>
<tr>
<td>Votre email : </td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>Sujet du message : </td>
<td><textarea name="message" cols="60" id="message"></textarea></td>
</tr>
<tr>
<td><img src="images/tortue.gif" width="120" height="60" align="top"></td>
<td><input name="Submit" type="submit" onClick="MM_validateForm('nom','','R','email','','RisEmail','msg','','R');return document.MM_returnValue" value="Envoyer">
-
<input type="reset" name="Submit" value="Réinitialiser"></td>
</tr>
</table>
</form>


Et le code du fichier PHP :

<?php
/*
*/
$nom = $_POST['nom'];
$lieu = $_POST['lieu'];
$email = $_POST['email'];
$message = $_POST['message'];

if ($_COOKIE['sent']) $already = true;
elseif(($nom!=NULL)&&($prenom!=NULL)&&($msg!=NULL))
{
$to = "supportinfo58@neuf.fr";
//The sent message's subject
//Sujet du message envoyé
$subject = "Contact - Support Info";
$message = "Nom : $nom
Lieu : $lieu
Email : $email
Message : $message";

$ok = mail ($to,$subject,$message);
if ($ok)
{
$sent = true;
$expire = time() + 3600;
setcookie('sent',1,$expire);
}
else
{
$error = true;
}
}
else
$fill = true;
?><html>
<head>
<title>
Nous contacter
</title>
</head>
<body>
<link href="file:///C|/Documents%20and%20Settings/Utilisateur/Bureau/style.css" rel="stylesheet" type="text/css">
<center>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<table width="400" border="1" cellpadding="0" cellspacing="0" bordercolor="#FF9933" style="border-collapse:collapse;">
<tr>
<td height="62" class="texte"><center>
<?php
if ($already) echo "Vous avez déja envoyé le formulaire";
elseif ($sent) echo "Message envoyé";
elseif ($error) echo "Erreur lors de l'envoi";
elseif ($fill) echo "Veuillez remplir tous les champs";
?>
</center>
</td>
</tr>
</table>
</center>
</body>
</html>

Merci par avance

Amicalement

Bonne journee a toutes et tous!
A voir également:

16 réponses

Salut regarde dans le fichier PHP, au moment de ta boucle de vérification de tes champs tu as $prenom qui est évoqué nul part ailleurs et tu as la variable $msg alors que tu récupère la valeur au dessus dans $message donc vérifie déjà la syntaxe de ces variables à ce niveau
1
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 11:14
Merci tonio,

c ca ! de pomper un truc tout fait sans essayer de comprendre!

je vais tester!

Me rend compte de la boulette!

merci en tout cas pour ton petit coup d'oeil avisé!

Cordialement

Supportinfo
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
10 juin 2009 à 12:12
il faut enlever enctype="text/plain" dans la déclaration du formulaire, je ne l'avais pas vu toute a l'heure...

et ça fonctionne je viens de tester avec le code que j'ai mis plus haut

il faut aussi remplacer

if ($_COOKIE['sent']) $state = 'already';

par

if (isset($_COOKIE['sent'])) $state = 'already';
1
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 11:29
$nom = $_POST['nom'];
$lieu = $_POST['lieu'];
$email = $_POST['email'];
$message = $_POST['message'];

if ($_COOKIE['sent']) $already = true;
elseif(($nom!=NULL)&&($lieu!=NULL)&&($email!=NULL)&&($message!=NULL))
{
$to = "supportinfo58@neuf.fr";
//The sent message's subject
//Sujet du message envoyé
$subject = "Contact - Support Info";
$message = "Nom : $nom
Lieu : $lieu
Email : $email
Message : $message";

re
J'ai modifie les variables dans la boucle comme tu me las indiqué mais j'ai toujours le même probléme.
Humm
merci!
Supportinfo
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
10 juin 2009 à 11:36
bonjour, j'ai essayé de corriger ton code mais je ne l'ai pas testé, ça donne ça :

<!-- PAGE 1-->

<form action="send.php" method="post" enctype="text/plain" name="contact" id="contact"  onsubmit="MM_validateForm('nom','','R','email','','RisEmail','msg','','R');return document.MM_returnValue">
	<table width="100%" border="0" cellpadding="0" cellspacing="5" class="texte">
		<tr>
			<td width="19%">Nom ou pseudo : </td>
			<td width="81%"><input name="nom" type="text" id="nom"></td>
		</tr>
		<tr>
			<td>Lieu</td>
			<td><input name="lieu" type="text" id="lieu"></td>
		</tr>
		<tr>
			<td>Votre email : </td>
			<td><input name="email" type="text" id="email"></td>
		</tr>
		<tr>
			<td>Sujet du message : </td>
			<td><textarea name="message" cols="60" id="message"></textarea></td>
		</tr>
		<tr>
			<td><img src="images/tortue.gif" width="120" height="60" align="top"></td>
			<td><input name="Submit" type="submit" value="Envoyer">
		
			<input type="reset" name="Submit" value="Réinitialiser"></td>
		</tr>
	</table>
</form>



<!-- PAGE 2 -->



<?php


	$nom = htmlentities($_POST['nom']);
	$lieu = htmlentities($_POST['lieu']);
	$email = htmlentities($_POST['email']);
	$message = htmlentities($_POST['message']);

	if ($_COOKIE['sent']) $state = 'already';
	elseif($nom != '' && $lieu != '' && $message != '') {
		$to = "supportinfo58@neuf.fr";
		//The sent message's subject
		//Sujet du message envoyé
		$subject = "Contact - Support Info";
		$message = "Nom : $nom
Lieu : $lieu
Email : $email
Message : $message";

		if(mail($to,$subject,$message)) {
			$state = 'sent';
			setcookie('sent',1,time() + 3600);
		}
		else $state = 'error';
	}
	else $state = 'fill';

?>

<html>
<head>
	<title>Nous contacter</title>
	<link href="file:///C|/Documents%20and%20Settings/Utilisateur/Bureau/style.css" rel="stylesheet" type="text/css">
</head>
<body>
	<p><br /><br /><br /><br /><br /><br /><br /></p>
	<table style="border-collapse:collapse; border: 1px solid #FF9933; width=400px;">
		<tr>
			<td class="texte" style="text-align: center; height:62px;"><?php
			switch($state){
				case 'already' : echo "Vous avez déja envoyé le formulaire";
					break;
				case 'sent' : echo "Message envoyé";
					break;
				case 'error' : echo "Erreur lors de l'envoi";
					break;
				case 'fill' : echo "Veuillez remplir tous les champs";
					break;
			}
			?></td>
		</tr>
	</table>
</body>
</html>


mais il faut encore modifier des trucs pour la compatibilité w3c dans la page 1 surtout je pense...
0

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

Posez votre question
Regarde mais je crois qu'il ne vérifie pas la dernière condition de ton si. Sinon je peux copier ton code et faire un test?
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 11:51
oui bien sur ! et merci tonio

je copie le fichier code d'atropa que je remercie d'ailleurs et je teste de mon coté

a tout a lheure
0
J'ai fait des tests, il faudrait regarder du coté de l'appel dans ton fichier html de la fonction envoi par email. Je t'explique: lorsque je veux afficher les valeurs des variables à la suite de l'envoi avec ta fonction définie rien ne s'affiche par contre si je laisse seulement <form action="" method="post"> g bien l'affichage lors du transfert
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 11:58
j'ai repris le code d'atropa!

encore meme reponse! veuillez remplir tous champs

je pense que c une question de if toujours - toujours une question de si!!

je plaisante !

bon dans l'attente je continue a essayer de comprendre !

et merci!

bon courage si boulot de votre côté.

amicalement
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 12:13
Re et fin avant le repas!

j'ai repris le code d'atropa - à la limite je vais me concentrer sur les Page 1 et page 2 recopiées

j'ai testé ! ca m'indique toujours le même message initial " veuillez remplir ..."

bon dans tous les cas - merci de votre aide et la solution la plus simple et la plus commode pour tous je l'accepterais avec plaisir.

merci d'avance de maniere penaude...,-)

A+
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 13:16
merci encore pour votre aide - ca ne me gene pas de vous le reredire.

jai suivi vos recommandantions et celles d'atropa notamment

en supprimant text / plain et la ligne 9 if...isset...

jai maintenant ce probleme qui est peut etre lié à mon hebergeur fai / sfr -pb securite - fonction php à cause de mon hebergeur qui nest qu'un fai.

voici l'erreur renvoyé - on avance mais jespere ne pas etre bloqué pour des raisons de securite parce que la ce serait dommage!(-euh colere interieure-,-))

Warning: mail() has been disabled for security reasons in /var/www/s/su/sup/supportinfo58.perso.neuf.fr/public_html/send.php on line 20


donc en resume jai repris codes atropa avec les deux modifs !

alors si oui astuce je prends!

merci par avance à vous deux!

Supportinfo
0
Est ce que tu as accès au fichier php.ini. si oui il faudrait que tu regardes la valeur de la variable display_errors si elle différente de Off mais Off à la place et logique ton problème sera résolu.
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 17:19
Et non impossible dacceder au php.ini de mon fai /herbergeur.

Rien nest modifiable dans ce form PHP? pour qu'il n'y ait plus d'erreur Warning?

Merci
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
10 juin 2009 à 17:40
ben là non c'est surement que ton hébergeur ne t'autorise pas a envoyer des mails...

pour le savoir créer un fichier php par exemple info.php

et tapes :

<?php
echo phpinfo();
?>


met ce fichier sur ton serveur vas dessus avec firefox

et recherche mail dans la page (pour rechercher tu peux faire Ctrl+F)

après je pense que tu peux voir si tu peux en envoyer ou non a la ligne ou ça écris quelquechose.mail_limit.

je ne suis pas sur de ce que j'avance j'en déduis juste que si cette valeur est a 0 c'est que tu ne peux pas en envoyer.

c'est dans le tabeau PHP Core
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
10 juin 2009 à 19:06
dommage!

non ca ne fonctionne pas

je vous remercie pour votre aide en tout cas .

je suis chez neuf /sfr

en desespoir de cause esperant une intervention divine je vais pas le mettre de suite en resolu meme si le formulaire est ok

et bien je vais choisir un veritable hebergeur, il ny a plus que ca!!

allez bonne soiree!

et encore merci

supportinfo
0
Si tu as accès à un serveur SMTP, un coup d'oeil au package Mail de PEAR peut être d'un grand secours.
0
supportinfo58 Messages postés 40 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 17 septembre 2009 3
11 juin 2009 à 10:26
peux tu preciser anonymous?

je nai pas compris.

Merci
0