PHP : Problème de formulaire

Résolu
Super_Miaou Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
BartWadela Messages postés 562 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis en train de réaliser un système permettant l'ajout de commentaires.
En attendant, j'ai préparé un petit formulaire pour permettre aux visiteurs de me faire part de leurs remarques.
Le site est encore sur mon disque dur, mais sera très prochainement en ligne.
Concrètement, voici mon problème :
Lorsque j'envoie le formulaire, la page envoi_contact.php est censée vérifier si tout les champs ( sauf l'email ) sont remplis, puis afficher un message de confirmation/d'erreur, rediriger au bout de quelques secondes, et m'envoyer un e-mail contenant les informations du formulaire si tous les champs sont bien remplis.
Voici le code de mon formulaire ( contact.php ) :

<form action="envoi_contact.php" method="post" >
<span class="Style5">Votre pseudo :</span>
<input name="Pseudo" type="text" size="15" maxlength="15" />
<br />
<br />
<span class="Style5">Votre e-mail : </span>
<input name="adresse_mail" type="text" size="30" maxlength="30" />
<br />
<br />
<span class="Style5">Titre de l'article : </span>
<input name="Titre" type="text" size="20" maxlength="20" />
<span class="Style5">rubrique : </span>
<input name="Rubrique" type="text" size="20" maxlength="20" /><br /><br />

<span class="Style5">Commentaire : </span><br/>
<br />
<textarea name="Contenu" cols="50" rows="8" maxlenght="130"></textarea>
<input name="envoyer" type="submit" value="envoyer" />

</form>


Celui de ma page envoi_contact.php

<title>commentaire</title><?php

//Recuperation des données
$Pseudo= $_REQUEST["Pseudo"];
$adresse_mail= $_REQUEST["adresse_mail"];
$Titre = $_REQUEST["Titre"];
$Rubrique = $_REQUEST["Rubrique"];
$Contenu= nl2br($_REQUEST["Contenu"]);

//Vérification des champs du formulaire
//En cas d'erreur de saisie.
if (empty($Pseudo) or empty($Rubrique) or empty($Titre) or empty($Contenu))
{
echo("<b>Un ou plusieurs des champs est vide. Veuillez recommencer ; vous allez être redirigé dans 5 secondes</b>");
?>
<script language="JavaScript">
setTimeout("window.location='contact.php'",5000); // temps t'attente en millisecondes
</script>
<?
}
//Sinon...
else
{

// Message de confirmation
echo("<b>Merci pour votre commentaire . Je le mettrai en ligne dès que possible.<br> Vous allez maintenant être redirigé </b>");
?>
<script language="JavaScript">
setTimeout("window.location='contact.php'",4000); // temps t'attente en millisecondes
</script>
<?

//Envoi de l'email
$adresse_mailAdmin="monadresse@gmail.com";
$titre="Nouveau Commentaire !!!";
$message="Un nouveau commentaire ! ".$Pseudo $adresse_mail $Titre $Rubrique $Contenu;//les infos
mail($adresse_mailAdmin, $titre, $message);

}

?>


Lorsque j'envoie mon formulaire après l'avoir-ou non- bien rempli, je reçois le message suivant :


Un ou plusieurs des champs est vide. Veuillez recommencer ; vous allez être redirigé dans 5 secondes"); ?> Merci pour votre commentaire . Je le mettrai en ligne dès que possible.
Vous allez maintenant être redirigé "); ?>

Je suis en suite redirigé. Pouvais-vous m'aider ?
A voir également:

5 réponses

Matio Messages postés 671 Date d'inscription   Statut Membre Dernière intervention   300
 
Salut,
c'est peut-être and (ou &&) à la place de or
if (empty($Pseudo) and empty($Rubrique) and empty($Titre) and empty($Contenu))
0
Super_Miaou Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Heu nan ça change rien...Merci quand même
0
Utilisateur anonyme
 
Personnellement, ça marche bien après l'avoir modifié comme ça :

<?php

//Recuperation des données
$Pseudo= $_REQUEST["Pseudo"];
$adresse_mail= $_REQUEST["adresse_mail"];
$Titre = $_REQUEST["Titre"];
$Rubrique = $_REQUEST["Rubrique"];
$Contenu= nl2br($_REQUEST["Contenu"]);

//Vérification des champs du formulaire
//En cas d'erreur de saisie.
if (empty($Pseudo) or empty($Rubrique) or empty($Titre) or empty($Contenu))
{
echo("<b>Un ou plusieurs des champs est vide. Veuillez recommencer ; vous allez être redirigé dans 5 secondes</b>");
?>
<script type="text/javascript">
setTimeout("window.location='index.php'",5000); // temps t'attente en millisecondes
</script>
<?php
}
//Sinon...
else
{

// Message de confirmation
echo("<b>Merci pour votre commentaire . Je le mettrai en ligne dès que possible.<br> Vous allez maintenant être redirigé </b>");
?>
<script type="text/javascript">
setTimeout("window.location='index.php'",4000); // temps t'attente en millisecondes
</script>
<?php

//Envoi de l'email
$adresse_mailAdmin="adresse@gmail.com";
$titre="Nouveau Commentaire !!!";
$message="Un nouveau commentaire ! ". $Pseudo . $adresse_mail . $Titre . $Rubrique . $Contenu;//les infos
mail($adresse_mailAdmin, $titre, $message);

}

?>

ps : j'ai juste modifié les <? en <?php et j'ai rajouté les points pour la concaténation entre tes variables.
0
Super_Miaou Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Pas de changement... Marche toujours pas. C'est incompréhensible...Merci quand même Sly34gl3
J'ai essayé en changeant l'envoi du formulaire de POST en GET. Idem.
0
Utilisateur anonyme
 
Bah personnellement ça marche, sinon en restant dans la méthode post, essaie en remplaçant tes $_REQUEST par $_POST.
Et essaie plutôt de vérifier si tes variables existent en testant avec if (isset($_POST['variable'])).
0
Super_Miaou Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
Heu...J'ai fait le code suivant :

<?php

//Recuperation des données
$Pseudo= $_POST["Pseudo"];

//Si existe
if (isset($_POST['Pseudo']));
echo("OK");

?>

C'est bien comme ça qui fallait le présenter ?
En tout cas rien ne s'affiche, j'arrive sur une page blanche. Je dois en déduire que les variables n'arrivent pas à la page voulue ? Comment est-ce possible ?
0
Utilisateur anonyme
 
Pourrais-tu m'envoyer ton msn par MP? Ca serait plus simple.
0
Utilisateur anonyme
 
Dis moi si tu me l'as envoyé car certaines fois je ne reçois rien...
0

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

Posez votre question
Super_Miaou Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
heu oui oui je l'ai envoyée...Je vais recommencer
0
Utilisateur anonyme
 
Toujours rien reçu... Bon à la limite poste ici ton adresse puis supprime là.
0
Super_Miaou Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
oki c'est fait
0
BartWadela Messages postés 562 Date d'inscription   Statut Membre Dernière intervention   107
 
tu arrive bien a afficher tes variables = $pseudo // $_REQUEST['pseudo'] // $_POST['pseudo']

avec l'instruction echo ??
0