affichage bizarre du résultatsur la page et erreur W3

Eléphanteau du PHP | 43 Messages

16 juin 2012, 22:13

donc ca je dois le mettre au debut avant Vérification du remplissage des champs je suppose. et je dois rajouter un else a la fin (redirection vers page d'accueil ou message d'erreur ou autre?)

ViPHP
xTG
ViPHP | 7331 Messages

16 juin 2012, 22:40

Non pas de else... Dedans c'est le traitement des données.
A la rigueur tu peux mettre un else et le formulaire dedans, mais en cas d'erreur tu vas être embêté pour afficher le formulaire pour que l'utilisateur le modifie.
Si cela peut t'aider à comprendre.

Eléphanteau du PHP | 43 Messages

16 juin 2012, 23:32

voila toujour ca d'affiché:
Votre civilité
Votre nom
Votre adresse
Votre code postal
Votre ville
Votre message
Votre demande a bien été prise en compte.
avec cette modif:
<?php
//Connexion bdd
  include("Includes/connexBDD.php");
  

if( !empty($_POST) ){
  // le formulaire a été posté
}


/*Vérification du remplissage des champs*/
  $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :
  <br/> <br/>";
  $msg_ok = "Votre demande a bien été prise en compte.";
  $message = $msg_erreur;
  
  if (empty($_POST['civilite']))
	$message .= "Votre civilité<br/>";

ViPHP
xTG
ViPHP | 7331 Messages

16 juin 2012, 23:46

Tu comprends le but d'une condition en PHP ?
Et ce qu'est un commentaire ? :roll:

Ou bien il se fait très tard chez toi aussi et tu as besoin d'une bonne nuit de sommeil pour remettre tout cela à plat. :)

Eléphanteau du PHP | 43 Messages

17 juin 2012, 20:41

je t'avoue la maintenant je suis en gros manque de sommeil et un peu perdu lol

ViPHP
xTG
ViPHP | 7331 Messages

18 juin 2012, 07:50

Voici avec un peu plus de commentaires pour te donner une piste :
if( !empty($_POST) ){
  // si je rentre ici c'est que le formulaire a été posté avec des données
}else{
  // si je rentre ici c'est que le formulaire n'a pas été posté ou bien que toutes ses données sont vides
}

if( isSet($_POST) ){
  // je rentre toujours ici car $_POST est un tableau super-global créé par PHP
}else{
  // je ne rentre donc jamais ici
}

if( isSet($_POST['unChampsDeMonFormulaire']) ){
  // je rentre ici quand le formulaire a été posté, que les données soient vides ou non
}else{
  // je rentre ici quand le formulaire n'a pas été posté
}

// je rentre ici... tout le temps !

Eléphanteau du PHP | 43 Messages

18 juin 2012, 23:38

Je viens de vois que je me suis gouré quand j'ai voulu séparer mon fichier html du php !!! mais en tout cas un grand merci pour votre aide car cela m'a quand même vraiment beaucoup servi en temps que rappel ou renforcement des connaissances :)

Si mon code peut en aider certains:

Le formulaire au format html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Formulaire d'inscription</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
                <meta http-equiv="content-language" content="fr" />
<style>
p.titre {
	background: #DED983;
	color: #345071;
	padding: .2em .3em;
	font-size: 1.2em;
	border: 2px outset #DED983;
	border-top-right-radius: 25%
	border-bottom-right-radius: 25%
	position: relative;
	margin-bottom: -1em;
	width: 10em;
	margin-left: 1em;
	margin-top: 1em;

fieldset {
  border:none;
  margin-bottom:1em;
  width:24em;
  padding-top:1.5em;
  
select {
  margin-left:9em;
  margin-bottom:0;
}

fieldset#coordonnees {
  background:#A4D8EE;
  border:outset #A4D8EE;
}

#coordonnees label {
  position:absolute;
  font-size:90%;
  padding-top:.2em;
  left:20px;
}

#coordonnees input {
  margin-left:9em;
  line-height:1.4em;
  margin-bottom:.2em;
}

fieldset#presentation {
  background:#A4D8EE;
  border:outset #A4D8EE;
}

#sexe {
  font-size:90%;
}

#sexe input {
  margin-left:9em;
}

#sexe input + input {
  margin-left:1em;
}

#interets {
   font-size:90%;
}
#interets input {
   margin-left:9em;
}
#interets input +input {
   margin-left:1em;
}
#interets br+input {
  margin-left:9em;
}

textarea {
  font:.8em "Trebuchet MS", Verdana, sans-serif;
  width:29em;
  padding:.2em;
}

input[type="submit"], input[type="reset"] {
  background:#DED983;
  font:1.2em "Trebuchet MS", Verdana, sans-serif;
  color:#345071;
}

p#buttons {
  text-align:center;
}; 	border-radius: 0px 15px 0px 15px;
	
	border-top-right-radius: 25px;
	border-bottom-right-radius: 25px;
</style>
</head>

<body>
<form method="post" action="traitement.php">
<p class="titre">Coordonn&eacute;es</p>
<fieldset id="coordonnees">
  <p id="sexe"><label>Sexe : </label>
    <input type="radio" name="sexe" value="homme" />homme
    <input type="radio" name="sexe" value="femme" />femme
    <input type="radio" name="sexe" value="hermaphrodite" /> hermaphrodite
    
  </p>
  <label>Pseudo : </label>
    <input type="text" name="pseudo" size="30" /><br />
  <label>Id PSN : </label>
    <input type="text" name="idpsn" size="30" /><br />
  <label>Email : </label>
  <input type="text" name="email" size="30" /><br />
  <label>Ville : </label>
    <input type="text" name="ville" size="30" /><br />
  <label>Pays : </label>
    <select name="pays">
      <option value="france">France</option>
      <option value="suisse">Suisse</option>
      <option value="Belgique">Belgique</option>
      <option value="AUTRE">AUTRE</option>
      <option value="Alg&eacute;rie">Alg&eacute;rie</option>
      <option value="Andorre">Andorre</option>
      <option value="B&eacute;nin">B&eacute;nin</option>
      <option value="Bulgarie">Bulgarie</option>
      <option value="Burkina Faso">Burkina Faso</option>
      <option value="Burundi">Burundi</option>
      <option value="Cameroun">Cameroun</option>
      <option value="Canada:">Canada:</option>
      <option value="Centrafrique">Centrafrique</option>
      <option value="Comores">Comores</option>
      <option value="Congo">Congo</option>
      <option value="C&ocirc;te d&acute;Ivoire">C&ocirc;te d&acute;Ivoire</option>
      <option value="Djibouti">Djibouti</option>
      <option value="Gabon">Gabon</option>
      <option value="Guin&eacute;e">Guin&eacute;e</option>
      <option value="Ha&iuml;ti">Ha&iuml;ti</option>
      <option value="Maurice"> Ile Maurice</option>
      <option value="Israel">Israel</option>
      <option value="Liban">Liban</option>
      <option value="Louisiane">Louisiane</option>
      <option value="Luxembourg ">Luxembourg </option>
      <option value="Madagascar">Madagascar</option>
      <option value="Mali">Mali</option>
      <option value="Maroc">Maroc</option>
      <option value="Mauritanie">Mauritanie</option>
      <option value="Moldavie">Moldavie</option>
      <option value="Monaco">Monaco</option>
      <option value="Niger">Niger</option>
      <option value="Qu&eacute;bec">Qu&eacute;bec</option>
      <option value="Roumanie">Roumanie</option>
      <option value="Rwanda">Rwanda</option>
      <option value="S&eacute;n&eacute;gal">S&eacute;n&eacute;gal</option>
      <option value="Seychelles">Seychelles</option>
      <option value="Tchad">Tchad</option>
      <option value="Togo">Togo</option>
      <option value="Tunisie">Tunisie</option>
      <option value="Vall&eacute;e d&acute;Aoste">Vall&eacute;e d&acute;Aoste</option>
      <option value="Vanuatu">Vanuatu</option>
    </select>
<p id="interets"><label>Classes et v&eacute;hicules pr&eacute;f&eacute;r&eacute;s : </label><br />
    <input type="checkbox" name="interets[]" value="Assault" />Assault<br />
    <input type="checkbox" name="interets[]" value="Ing&eacute;nieur" />Ing&eacute;nieur<br />
    <input type="checkbox" name="interets[]" value="Soutien" />Soutien<br />
    <input type="checkbox" name="interets[]" value="Eclaireur" />Eclaireur<br />
    <input type="checkbox" name="interets[]" value="H&eacute;licoptères" />H&eacute;licopt&egrave;re<br />
    <input type="checkbox" name="interets[]" value="Chasseurs" />Chasseurs<br />
    <input type="checkbox" name="interets[]" value="V&eacute;hicules terrestres" />V&eacute;hicules terrestres<br />
    <input type="checkbox" name="interets[]" value="Armes fixes" />Armes fixes<br />
  </p>
</fieldset>
<p class="titre">Pr&eacute;sentation</p>
<fieldset id="presention"><br />
  <textarea name="comments" rows="5" cols="40"></textarea>
</fieldset>
<p id="buttons">
  <input type="submit" value="Envoyer" />
  <input type="reset" value="Recommencer" />

</p>
</form>
</body>
</html>
Le fichier "traitement.php"
<?php
//Connexion bdd
  include("Includes/connexBDD.php");
  
/*Vérification du remplissage des champs*/
  $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :
  <br/> <br/>";
  $msg_ok = "Votre demande a bien été prise en compte.";
  $message = $msg_erreur;
  
  if (empty($_POST['sexe']))
	$message .= "Votre sexe<br/>";
  if (empty($_POST['pseudo'])) 
	$message .= "Votre pseudo<br/>";
  if (empty($_POST['idpsn'])) 
	$message .= "Votre Id PSN<br/>";
  if (empty($_POST['email'])) 
	$message .= "Votre email<br/>";
  if (empty($_POST['ville'])) 
	$message .= "Votre ville<br/>";
  if (empty($_POST['comments'])) 
	$message .= "Votre message<br/>";
  //Formatage et insertion des données en base de données MySQL
  if (strlen($message) > strlen($msg_erreur))
	{
  echo $message;
	}
  else
	  {
	foreach($_POST as $index => $valeur)
		{
			if (!is_array($valeur)) 
			{
		  $$index = mysql_real_escape_string(trim($valeur));
			}
		}
	  }
  //Concaténage des centres d'intérêts en les séparant d'une virgule puis un espace afin qu'ils tiennent sur une ligne
	$interets = $_POST['interets'];
	$sqlinterets = '';
	for ($i=0; $i<count($interets); $i++)
	  {
		$sqlinterets .= $interets[$i];
		$sqlinterets .= ', ';
	  }

//Insertion des données dans la table "formulaire"
  $sql = "INSERT INTO formulaire VALUES ('', '".$sexe."', '".$pseudo."', '".$idpsn."', '".$email."', '".$ville."', '".$pays."', '".$sqlinterets."', '".$comments."', now())";
  $res = mysql_query($sql);

  if ($res) 
	{
	  echo $msg_ok;
	} 
  else 
	{
	  echo mysql_error();
	}
?>