affichage bizarre du résultatsur la page et erreur W3

Eléphanteau du PHP | 43 Messages

15 juin 2012, 22:28

je suis sur les premières ébauche d'un formulaire, il semble fonctionner mais quelques lignes du php apparaissent avant l'affichage et je ne trouve pas pourquoi malgré de nombreux essais. J'ai voulu aussi faire une validation W3 mais il me sort beaucoup d'erreur ou d'alertes mais je ne comprend pas trop (et oui je suis encore débutant lol)
<?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['civilite']))
	$message .= "Votre civilité<br/>";
  if (empty($_POST['nom'])) 
	$message .= "Votre nom<br/>";
  if (empty($_POST['adresse'])) 
	$message .= "Votre adresse<br/>";
  if (empty($_POST['codepostal'])) 
	$message .= "Votre code postal<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)
		{
		  $$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 ('', '".$civilite."', '".$nom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$pays."', '".$sqlinterets."', '".$comments."', now())";
  $res = mysql_query($sql);

  if ($res) 
	{
	  echo $msg_ok;
	} 
  else 
	{
	  echo mysql_error();
	}
?>
<!DOCTYPE html PUBLIC "-//WC3//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd">
<html xmls="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: 25px
	border-bottom-right-radius: 25px
	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#message {
  background:#9DF2CE;
  border:outset #9DF2CE;
}

#civilite {
  font-size:90%;
}

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

#civilite 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;
	
</style>
</head>

<body>
<form method="post" action="traitement.php">
<p class="titre">Coordonnées</p>
<fieldset id="coordonnees">
  <p id="civilite"><label>Civilité : </label>
    <input type="radio" name="civilite" value="M." />M.
    <input type="radio" name="civilite" value="Mlle" />Mlle
    <input type="radio" name="civilite" value="Mme" />
    Mme
  </p>
  <label>Nom : </label>
    <input type="text" name="nom" size="30" /><br />
  <label>Adresse : </label>
    <input type="text" name="adresse" size="30" /><br />
  <label>Code postal : </label>
    <input type="text" name="codepostal" 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érie">Algérie</option>
      <option value="Andorre">Andorre</option>
      <option value="Bénin">Bé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ôte d’Ivoire">Côte d’Ivoire</option>
      <option value="Djibouti">Djibouti</option>
      <option value="Gabon">Gabon</option>
      <option value="Guinée">Guinée</option>
      <option value="Haïti">Haï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ébec">Québec</option>
      <option value="Roumanie">Roumanie</option>
      <option value="Rwanda">Rwanda</option>
      <option value="Sénégal">Séné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ée d'Aoste">Vallée d'Aoste</option>
      <option value="Vanuatu">Vanuatu</option>
    </select>
<p id="interets"><label>Classes et vehicules principaux : </label>
    <input type="checkbox" name="interets[]" value="Assault" />Assault
    <input type="checkbox" name="interets[]" value="Ingénieur" />Ingénieur<br />
    <input type="checkbox" name="interets[]" value="Soutien" />Soutien
    <input type="checkbox" name="interets[]" value="Eclaireur" />Eclaireur<br />
    <input type="checkbox" name="interets[]" value="Hélicoptères" />Hélicoptère
    <input type="checkbox" name="interets[]" value="Chasseurs" />Chasseurs<br />
    <input type="checkbox" name="interets[]" value="Véhicules terrestres" />Véhicules terrestres
    <input type="checkbox" name="interets[]" value="Armes fixes" />Armes fixes<br />
  </p>
</fieldset>
<p class="titre">Message</p>
<fieldset id="message">
  <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>

et voila le lien vers le rapport d'erreur W3

Merci pour votre aide

ViPHP
ViPHP | 2577 Messages

15 juin 2012, 22:46

Regarde le source html de ta page dans le navigateur.
Tu verras le source de ta page. Donc tu as un problème avec ton installation de php.

Eléphanteau du PHP | 43 Messages

15 juin 2012, 22:53

quand je regarde le code source pour voir l'erreur je me fie aux couleurs?
Image

car le problème est que je ne vois pas ce qui pose probleme

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 juin 2012, 23:24

Ton code source (donc la page html résultat de ton script) contient du code php. Cela veut dire que ton code php n'est pas interprété et que ta page s'affiche comme n'importe quelle page html...

Est-ce que ta page a l'extension .php ? et est-ce que ton serveur sait gérer le php ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 2577 Messages

15 juin 2012, 23:37

Pour info, il faut faire clic droit dans le navigateur et choisir "afficher le code source de la page" ou quelque chose de semblable.

Eléphanteau du PHP | 43 Messages

15 juin 2012, 23:42

mon serveur sait gérer le php, mais en effet je me suis planté sur l’extension de la page :(

voila le texte qui apparait maintenant
define('DB_SERVER', 'localhost'); define('DB_SERVER_USERNAME', 'nom'); define('DB_SERVER_PASSWORD', 'mdp'); define('DB_DATABASE', 'base'); $connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) or die('Impossible de se connecter : ' . mysql_error()); mysql_select_db(DB_DATABASE, $connect);Erreur. Les champs suivants doivent être obligatoirement remplis :

Votre civilité
Votre nom
Votre adresse
Votre code postal
Votre ville
Votre message

Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/secret/public_html/formulaire1.php on line 46

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/force318/public_html/formulaire1.php on line 46
Access denied for user 'root'@'localhost' (using password: NO)

ViPHP
xTG
ViPHP | 7331 Messages

15 juin 2012, 23:59

Il y a des balises <?php dans ton fichier inclus ?

Eléphanteau du PHP | 43 Messages

16 juin 2012, 06:09

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

ViPHP
xTG
ViPHP | 7331 Messages

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 ?>. ;)

Eléphanteau du PHP | 43 Messages

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);

Eléphanteau du PHP | 43 Messages

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 :(

Eléphant du PHP | 75 Messages

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 juin 2012, 21:45

Oui, même pour les fichiers inclus, mais il te suffisait de le tester :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 43 Messages

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

ViPHP
xTG
ViPHP | 7331 Messages

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é.