affichage bizarre du résultatsur la page et erreur W3

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage bizarre du résultatsur la page et erreur W3

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 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();
	}
?>

Re: affichage bizarre du résultatsur la page et erreur W3

par xTG » 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 !

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 17 juin 2012, 20:41

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

Re: affichage bizarre du résultatsur la page et erreur W3

par xTG » 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. :)

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 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/>";

Re: affichage bizarre du résultatsur la page et erreur W3

par xTG » 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.

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 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?)

Re: affichage bizarre du résultatsur la page et erreur W3

par xTG » 16 juin 2012, 22:03

Avant de lancer un traitement de vérification des données reçues il faut avoir des données reçues.
if( !empty($_POST) ){
  // le formulaire a été posté
}
Sans condition de ce type il est normal qu'il teste les champs même si le formulaire n'a pas été envoyé.

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 16 juin 2012, 21:58

Whoa magie plus de message :) lol merci
je croyais que les balises ne se mettaient pas dans les includes car elles sont en générale deja dans des balise sur la page de destination.


Par contre j'ai tout mes messages qui s'affichent toujours et le resultat dans le code source me semble un petit melange au debut entre le doctype et les différents messages, jugez par vous meme

http://www.forces-speciales.eu/formulaire1.php

Re: affichage bizarre du résultatsur la page et erreur W3

par Ryle » 16 juin 2012, 21:45

Oui, même pour les fichiers inclus, mais il te suffisait de le tester :)

Re: affichage bizarre du résultatsur la page et erreur W3

par Asicoo » 16 juin 2012, 21:45

Tu as mis les balises ?
Sinon elle ne sont pas présente ton code est pas reconnu comme du PHP.

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 16 juin 2012, 21:38

meme pour les includes dans un php (ici la connexion a la base)?

description de l'include connexBDD

Code : Tout sélectionner

// Parametres mysql define('DB_SERVER', 'localhost'); define('DB_SERVER_USERNAME', 'nom'); define('DB_SERVER_PASSWORD', 'mdp'); define('DB_DATABASE', 'base'); // Connexion au serveur mysql $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PORT, DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error()); // sélection de la base de données mysql_select_db(DB_DATABASE, $connect);
Petit up car je bloque vraiment la :(

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 16 juin 2012, 18:57

meme pour les includes dans un php (ici la connexion a la base)?

description de l'include connexBDD

Code : Tout sélectionner

// Parametres mysql define('DB_SERVER', 'localhost'); define('DB_SERVER_USERNAME', 'nom'); define('DB_SERVER_PASSWORD', 'mdp'); define('DB_DATABASE', 'base'); // Connexion au serveur mysql $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PORT, DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error()); // sélection de la base de données mysql_select_db(DB_DATABASE, $connect);

Re: affichage bizarre du résultatsur la page et erreur W3

par xTG » 16 juin 2012, 09:15

Pour qu'un script PHP soit exécuté il faut que l’extension du fichier soit interprétable et que la syntaxe PHP soit entre balise <?php et ?>. ;)

Re: affichage bizarre du résultatsur la page et erreur W3

par vincelufologue » 16 juin 2012, 06:09

Il y a des balises <?php dans ton fichier inclus ?
non il y en a pas