Probleme avec les conditions (if, else..)

ViPHP
xTG
ViPHP | 7331 Messages

14 déc. 2011, 12:46

Mon foreach était juste là pour afficher les messages, si tu utilises autre chose à toi de faire ce que bon te semble.
Le warning vient du fait que $erreurCritique n'est pas initialisée. Déclares là et mets à la à 0 en début de script.

Eléphant du PHP | 58 Messages

14 déc. 2011, 19:59

J'ai fais ce que tu m'a dis et exemple volontairement je ne remplis pas un champ obligatoire j'ai quand même le champ "prix" qui m'indique ce message:
$aErrors['prix'] = "Votre champ prix n'est pas correctement rempli";


Vu c'est un champ non obligatoire je devrais avoir aucun message.

Voila une image pour mieux visualiser la chose, j'ai volontairement rempli le champ "titre"

Image



Pour ce qui est de l'enregistrent si je n'ai pas remplis le champ prix ca ne bloque pas j'ai bien mon message "Votre annonce a correctement été créer"et tout s'enregistre dans la base de donnée donc là c'est OK!! mais si exemple je désire de remplir mon champ prix en mettant des caractère 'non pris en charge par le preg_match exemple des 'ééé' dans ma base de donnée ça enregistrera quand même les ééé donc conclusion c'est comme si ce code n’existai pas
if(!preg_match("/^[A-Za-z0-9.€]{1,}$/", $_POST["prix"]))
         {
                $aErrors['prix'] = "Votre champ prix n'est pas correctement rempli";
         }
voila mon code en entier:
<?php
session_start();
require('../include/connexionpdo.inc.php');

                                                   
// Redirige l'utilisateur s'il est pas identifié
if(!isset($_SESSION['id']))
{
     header('Location: /index.php');
         exit();  
}

else
{
   
     // Formulaire visible par défaut
     $masquer_formulaire = false;

     $erreurCritique = 0 ;   
  
     if(isset($_POST["message"]) AND isset($_POST["titre"]) AND isset($_POST["departement"]) AND isset($_POST["contact"]))
     {
            
         
         // Vérification de la validité des champs
           
		        if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ'._-]{1,}$/", $_POST["titre"]))
          {
               $aErrors['titre'] = "Votre titre n'est pas rempli";
               $erreurCritique++;                          
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ@',._-]{1,}$/", $_POST["message"]))
          {
               $aErrors['message'] = "Votre description n'est pas rempli";  
              $erreurCritique++;                           
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ_-]{1,}$/", $_POST["departement"]))
          {
               $aErrors['departement'] = "Votre département n'est pas selectionné";
                $erreurCritique++;                 
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ@._-]{1,}$/", $_POST["contact"]))
          {
               $aErrors['contact'] = "Votre champs contact n'a pas été rempli";
                $erreurCritique++;                 
          }
                 
                  if(!preg_match("/^[A-Za-z0-9.€]{1,}$/", $_POST["prix"]))
         {
                $aErrors['prix'] = "Votre champ prix n'est pas correctement rempli";
         }
                                 
                                                                                                                                           
                  if( $erreurCritique == 0 )
          {
		  
		       
			$titre = htmlspecialchars($_POST['titre']);
			$description = htmlspecialchars($_POST['message']);
			$departement = htmlspecialchars($_POST['departement']);
			$contact = htmlspecialchars($_POST['contact']);
			$prix = htmlspecialchars($_POST['prix']);  
	     		  	
			                // Création du compte utilisateur
						 					 					 						 
						  $query=$db->prepare('INSERT INTO annonce (
                                   
                                   , titre
                                   , description
                                   , contact
                                   , departement
                                   , prix						   
                                     )
                                       VALUES (:titre, :description, :contact, :departement, :prix)');	                        
	                        $query->bindValue(':titre', $titre, PDO::PARAM_STR);
                         	$query->bindValue(':description', $description, PDO::PARAM_STR);
                          	$query->bindValue(':departement', $departement, PDO::PARAM_STR);
				$query->bindValue(':contact', $contact, PDO::PARAM_STR);
				$query->bindValue(':prix', $prix, PDO::PARAM_STR);												
                                $query->execute();
							
	           
			                            // Si une erreur survient

			             if(!$query)
                         {
                              $messageok = "Erreur d'accès à la base de données lors de la création de votre annonce";
                         }
					
			             else
						 {
                                   
                                     // Message de confirmation
                      $messageok = "Votre annonce a correctement été créer";				 					                                                  
                                  // On masque le formulaire
                                  $masquer_formulaire = true;
                   				  
					     }	
                   				  
					     				     					   
		   }		 						 					 												                                       
	 }      
}
$titre = "Véhicule de compétition - clio";
require('../include/debut-xhtml.inc.php');      									 
?>
                                                           <!-- espace membre -->													   
<div class="espacemembre">
<?php
		   	 		               
if(!empty($_SESSION['id'])) {
?>
<p class="deconnexion">
      <strong>[ <?php echo htmlspecialchars($_SESSION['id_nom'], ENT_QUOTES, 'UTF-8'); ?> ]</strong>
	  <a href="/jmc-competition/user/deconnexion.php">Déconnexion</a><hr />
	  
	 <p><img src="../image/control.gif" alt="espace membre" title="espace membre" /><a class="accueil" href="../user/page_membre.php">-Espace utilisateur</a></p>
	<p><img src="../image/poster-annonce.png" alt="poster annonce" title="poster annonce" /><a class="accueil" href="poster-annonce.php">-Poster une annonce</a></p>
<?php } 
else 

{ 
    
    require ('../include/connexion.inc.php');
			
}

?>
</div>	
                                                                   <!-- corps -->
<?php												  
require ('../include/compteurconnectes.inc.php');
$query->CloseCursor();
?>																	   
<h2>PASSER VOTRE ANNONCE</h2>

    <p>
        Vous pouvez passer votre annonce ci dessous :<br /><br /><br />
    </p>
	


<div id="formulaire_annonce">
<p class="centre"><strong>VEHICULE DE COMPETITION :</strong></p><hr />

<?php if(isset($messageok)) { ?>
<h3 class="rouge"><?php echo htmlspecialchars($messageok); ?></h3>
<?php } if($masquer_formulaire != true) { ?>

<p class="rouge">* : Renseignements obligatoires</p>



<form id="formannonce" action="http://<?php echo htmlspecialchars($_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]); ?>" method="post" enctype="multipart/form-data">



<fieldset>
 <legend>Détail de l'annonce :</legend>
  <label for="titre"><strong>Titre * :</strong></label><?php if(isset($aErrors['titre'])) { ?>
<p class="rouge"><?php echo htmlspecialchars($aErrors['titre']); ?></p><?php }?> 
   <input type="text" name="titre" size="40" 
   maxlength="40"  id="titre" value="<?php if(isset($_POST['titre'])){echo htmlspecialchars($_POST['titre'], ENT_QUOTES, 'UTF-8');} ?>" />
  
       
  <label for="message"><strong>Description * :</strong></label><?php if(isset($aErrors['message'])) { ?>
<p class="rouge"><?php echo htmlspecialchars($aErrors['message']); ?></p> <?php }?>    
  <textarea name="message" id="message"cols='60' rows='3' maxlength="1000"><?php if(isset($_POST['message'])){echo htmlspecialchars($_POST['message']);} ?></textarea>

 
 <label for="prix"><strong>Prix :</strong></label>
   <input type="text" name="prix" size="40" 
   maxlength="40"  id="prix" />
<?php if(isset($aErrors['prix'])) { ?>
<p class="rouge"><?php echo htmlspecialchars($aErrors['prix']); ?></p><?php }?>      
   
</fieldset>

<fieldset>
 <legend>Vos coordonnées :</legend>
  <label for="contact"><strong>Contact * :</strong></label><?php if(isset($aErrors['contact'])) { ?>
<p class="rouge"><?php echo htmlspecialchars($aErrors['contact']); ?></p> <?php }?>  
   <input type="text" name="contact" size="40" 
   maxlength="40"  id="contact" value="<?php if(isset($_POST['contact'])){echo htmlspecialchars($_POST['contact'], ENT_QUOTES, 'UTF-8');} ?>" />
      
      
   <label for="departement"><strong>Département * :</strong></label>
   <select name="departement" id="departement">
   <option value="" >-- Choisir --</option>
   <option value="01 - Ain">01 - Ain</option>
   <option value="02 - Aisne">02 - Aisne</option>
   <option value="03 - Allier">03 - Allier</option>
   <option value="04 - Alpes de Hautes-Provence">04 - Alpes de Hautes-Provence</option>
   <option value="05 - Hautes-Alpes">05 - Hautes-Alpes</option>
   <option value="06 - Alpes-Maritimes">06 - Alpes-Maritimes</option>
   <option value="07 - Ardèche">07 - Ardèche</option>
   <option value="08 - Ardennes">08 - Ardennes</option>
   <option value="09 - Ariège">09 - Ariège</option>
   <option value="10 - Aube">10 - Aube</option>
   <option value="11 - Aude">11 - Aude</option>
   <option value="12 - Aveyron">12 - Aveyron</option>
   <option value="13 - Bouches-du-Rhône">13 - Bouches-du-Rhône</option>
   <option value="14 - Calvados">14 - Calvados</option>
   <option value="15 - Cantal">15 - Cantal</option>
   <option value="16 - Charente">16 - Charente</option>
   <option value="17 - Charente-Maritime">17 - Charente-Maritime</option>
   <option value="18 - Cher">18 - Cher</option>
   <option value="19 - Corrèze">19 - Corrèze</option>
   <option value="2A - Corse-du-Sud">2A - Corse-du-Sud</option>
   <option value="2B - Haute-Corse">2B - Haute-Corse</option>
   <option value="21 - Côte-d'Or">21 - Côte-d'Or</option>
   <option value="22 - Côtes d'Armor">22 - Côtes d'Armor</option>
   <option value="23 - Creuse">23 - Creuse</option>
   <option value="24 - Dordogne">24 - Dordogne</option>
   <option value="25 - Doubs">25 - Doubs</option>
   <option value="26 - Drôme">26 - Drôme</option>
   <option value="27 - Eure">27 - Eure</option>
   <option value="28 - Eure-et-Loir">28 - Eure-et-Loir</option>
   <option value="29 - Finistère">29 - Finistère</option>
   <option value="30 - Gard<">30 - Gard</option>
   <option value="31 - Haute-Garonne">31 - Haute-Garonne</option>
   <option value="32 - Gers">32 - Gers</option>
   <option value="33 - Gironde">33 - Gironde</option>
   <option value="34 - Hérault">34 - Hérault</option>
   <option value="35 - Ille-et-Vilaine">35 - Ille-et-Vilaine</option>
   <option value="36 - Indre">36 - Indre</option>
   <option value="37 - Indre-et-Loire">37 - Indre-et-Loire</option>
   <option value="38 - Isère">38 - Isère</option>
   <option value="39 - Jura">39 - Jura</option>
   <option value="40 - Landes">40 - Landes</option>
   <option value="41 - Loir-et-Cher">41 - Loir-et-Cher</option>
   <option value="42 - Loire">42 - Loire</option>
   <option value="43 - Haute-Loire">43 - Haute-Loire</option>
   <option value="44 - Loire-Atlantique">44 - Loire-Atlantique</option>
   <option value="45 - Loiret">45 - Loiret</option>
   <option value="46 - Lot">46 - Lot</option>
   <option value="47 - Lot-et-Garonne">47 - Lot-et-Garonne</option>
   <option value="48 - Lozère">48 - Lozère</option>
   <option value="49 - Maine-et-Loire">49 - Maine-et-Loire</option>
   <option value="50 - Manche">50 - Manche</option>
   <option value="51 - Marne">51 - Marne</option>
   <option value="52 - Haute-Marne">52 - Haute-Marne</option>
   <option value="53 - Mayenne">53 - Mayenne</option>
   <option value="54 - Meurthe-et-Moselle">54 - Meurthe-et-Moselle</option>
   <option value="55 - Meuse">55 - Meuse</option>
   <option value="56 - Morbihan">56 - Morbihan</option>
   <option value="57 - Moselle">57 - Moselle</option>
   <option value="58 - Nièvre">58 - Nièvre</option>
   <option value="59 - Nord">59 - Nord</option>
   <option value="60 - Oise">60 - Oise</option>
   <option value="61 - Orne">61 - Orne</option>
   <option value="62 - Pas-de-Calais">62 - Pas-de-Calais</option>
   <option value="63 - Puy-de-Dôme">63 - Puy-de-Dôme</option>
   <option value="64 - Pyrénées-Atlantiques">64 - Pyrénées-Atlantiques</option>
   <option value="65 - Hautes-Pyrénées">65 - Hautes-Pyrénées</option>
   <option value="66 - Pyrénées-Orientales">66 - Pyrénées-Orientales</option>
   <option value="67 - Bas-Rhin">67 - Bas-Rhin</option>
   <option value="68 - Haut-Rhin">68 - Haut-Rhin</option>
   <option value="69 - Rhône">69 - Rhône</option>
   <option value="70 - Haute-Saône">70 - Haute-Saône</option>
   <option value="71 - Saône-et-Loire">71 - Saône-et-Loire</option>
   <option value="72 - Sarthe">72 - Sarthe</option>
   <option value="73 - Savoie">73 - Savoie</option>
   <option value="74 - Haute-Savoie">74 - Haute-Savoie</option>
   <option value="75 - Paris">75 - Paris</option>
   <option value="76 - Seine-Maritime">76 - Seine-Maritime</option>
   <option value="77 - Seine-et-Marne">77 - Seine-et-Marne</option>
   <option value="78 - Yvelines">78 - Yvelines</option>
   <option value="79 - Deux-Sèvres">79 - Deux-Sèvres</option>
   <option value="80 - Somme">80 - Somme</option>
   <option value="81 - Tarn">81 - Tarn</option>
   <option value="82 - Tarn-et-Garonne">82 - Tarn-et-Garonne</option>
   <option value="83 - Var">83 - Var</option>
   <option value="84 - Vaucluse">84 - Vaucluse</option>
   <option value="85 - Vendée">85 - Vendée</option>
   <option value="86 - Vienne">86 - Vienne</option>
   <option value="87 - Haute-Vienne">87 - Haute-Vienne</option>
   <option value="88 - Vosges">88 - Vosges</option>
   <option value="89 - Yonne">89 - Yonne</option>
   <option value="90 - Territoire-de-Belfort">90 - Territoire-de-Belfort</option>
   <option value="91 - Essonne">91 - Essonne</option>
   <option value="92 - Hauts-de-Seine">92 - Hauts-de-Seine</option>
   <option value="93 - Seine-Saint-Denis">93 - Seine-Saint-Denis</option>
   <option value="94 - Val-de-Marne">94 - Val-de-Marne</option>
   <option value="95 - Val-d'Oise">95 - Val-d'Oise</option> 
   </select> 
<?php if(isset($aErrors['departement'])) { ?>
<p class="rouge"><?php echo htmlspecialchars($aErrors['departement']); ?></p> <?php }?>     
 </fieldset>
 
 
 <fieldset>
 <legend>Votre photo :</legend>
 
<p>            
     <strong>Photo :</strong> <input type="file" name="avatar" />
</p>
   

</fieldset>

 <p>
 <input type="submit" value="Envoyer" />
 </p>

</form>

</div>
<?php require ('../include/footer.inc.php');
} ?>


ViPHP
xTG
ViPHP | 7331 Messages

14 déc. 2011, 20:47

Et tu gères le fait que le prix peut être vide dans ta condition ? :roll:
if(!empty($_POST['prix']) && !preg_match("/^[A-Za-z0-9.€]{1,}$/", $_POST["prix"]))
{
  $aErrors['prix'] = "Votre champ prix n'est pas correctement rempli";
}

Eléphant du PHP | 58 Messages

14 déc. 2011, 21:11

Il y a du positif mais il reste quand même un petit bug ....
jusque là c'est parfait mon message d'erreur pour le champ titre s'affiche plus :wink:
quand je remplis pas tout les champs obligatoire + mon champ"prix" avec un caractère non pris en charge "é" j'ai bien mon message d'erreur "Votre champ prix n'est pas correctement rempli" :wink:
jusque là tout est superbe mais voila le bug :( si je remplis tout mes messages obligatoires + mon champ titre en mettant exemple "ééé" logiquement vu que dans mon expression régulières je n'autorise pas le "é" mon code devrait bloqué en indiquant "Votre champ prix n'est pas correctement rempli"

Voila la petite partie du code:
$erreurCritique = 0 ;     
     if(isset($_POST["message"]) AND isset($_POST["titre"]) AND isset($_POST["departement"]) AND isset($_POST["contact"]))
     {

         // Vérification de la validité des champs
           
		        if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ'._-]{1,}$/", $_POST["titre"]))
          {
               $aErrors['titre'] = "Votre titre n'est pas rempli";
               $erreurCritique++;                          
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ@',._-]{1,}$/", $_POST["message"]))
          {
               $aErrors['message'] = "Votre description n'est pas rempli";  
              $erreurCritique++;                           
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ_-]{1,}$/", $_POST["departement"]))
          {
               $aErrors['departement'] = "Votre département n'est pas selectionné";
                $erreurCritique++;                 
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ@._-]{1,}$/", $_POST["contact"]))
          {
               $aErrors['contact'] = "Votre champs contact n'a pas été rempli";
                $erreurCritique++;                 
          }
                 
                  if(!empty($_POST['prix']) && !preg_match("/^[A-Za-z0-9.€]{1,}$/", $_POST["prix"]))
          {
                  $aErrors['prix'] = "Votre champ prix n'est pas correctement rempli";
           }
                                 
                                                                                                                                           
                  if( $erreurCritique == 0 )
          {
		  // Création du compte utilisateur
          }
   }

ViPHP
xTG
ViPHP | 7331 Messages

14 déc. 2011, 22:02

Il ne bloque pas car tu ne le considères pas comme une erreur critique.
Il faut incrémenter la variable dans le if, si tu ne rentres pas dedans c'est que soit le champ est vide soit que le format est valide donc ça sera bon.

Eléphant du PHP | 58 Messages

14 déc. 2011, 23:21

J'ai réussi et tu sais comment? :) en rajoutant "else" comme ça:
$erreurCritique = 0 ;     
     if(isset($_POST["message"]) AND isset($_POST["titre"]) AND isset($_POST["departement"]) AND isset($_POST["contact"]))
     {
            
         
         // Vérification de la validité des champs
           
		        if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ'._-]{1,}$/", $_POST["titre"]))
          {
               $aErrors['titre'] = "Votre titre n'est pas rempli";
               $erreurCritique++;                          
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ@',._-]{1,}$/", $_POST["message"]))
          {
               $aErrors['message'] = "Votre description n'est pas rempli";  
              $erreurCritique++;                           
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ_-]{1,}$/", $_POST["departement"]))
          {
               $aErrors['departement'] = "Votre département n'est pas selectionné";
                $erreurCritique++;                 
          }
                 
                  if(!preg_match("/^[A-Za-z0-9\sÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ@._-]{1,}$/", $_POST["contact"]))
          {
               $aErrors['contact'] = "Votre champs contact n'a pas été rempli";
                $erreurCritique++;                 
          }
                 
                  if(!empty($_POST['prix']) && !preg_match("/^[A-Za-z0-9.€]{1,}$/", $_POST["prix"]))
           {
                   $aErrors['prix'] = "Votre champ prix n'est pas correctement rempli";
           }

  else        //else rajouté
    {                         
                                                                                                                                           
                  if( $erreurCritique == 0 )
          {		     		  	
		  // enregistrement de l'annonce dans la BDD
          }

     }


ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 09:12

Danston else la variable erreurCritique sera toujours égale à zéro.
Et dans le cas où tu postes des informations même s'il n'y a pas d'erreur tu n'enregistreras rien. ;)

Eléphant du PHP | 58 Messages

15 déc. 2011, 09:27

Pourtant je t'assure tout fonctionne parfaitement :)

-Si je remplis quelques champs obligatoire et en oubliant, j'ai bien les messages d'erreurs des champs que j'ai oublié de remplir qui s’affiche : parfait :D

-Si je remplis tout les champs obligatoires et le champs non obligatoire "prix" avec un caractère non autorisé exemple "é" j'ai bien le message d'erreur du champs prix qui s'affiche: parfait :D

-Si je remplis tout mes champs obligatoire sans remplir le champs "prix" toute mes valeurs s'enregistre parfaitement dans ma BDD :D

-Si je remplis tout mes champs obligatoire + mon champ prix correctement j'ai bien toute mes valeurs qui s'enregistre dans ma BDD :D

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 10:21

Ah oui pardon, c'est ta mauvaise indentation qui m'a induit en erreur. ;)

Eléphant du PHP | 58 Messages

15 déc. 2011, 11:41

Oufff :wink: alors résolu =D>

Au fait une petite question :?:

j'ai entendu dire que avant un haeder il ne doit pas avoir du code <html> j'ai une include
require('../include/debut-xhtml.inc.php');
qui se trouve avant mon header

et dans cette include j'ai ma doctype mes meta etc, je peux la laisser mon include ou dois-je la mettre plus bas dans mon code...?
<?php
session_start();
require('../include/debut-xhtml.inc.php');
require('../include/connexionpdo.inc.php');
                                                   
// Redirige l'utilisateur s'il est pas identifié
if(!isset($_SESSION['id']))
{
     header('Location: /index.php');
        exit();  
}




ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 14:14

Tu ne peux pas les laisser là.
Le PHP est fait pour générer du code envoyé au client.
Tu peux donc très bien faire tous tes traitements avant et ne faire l'affichage qu'en toute fin.

Et si tu n'arrives vraiment pas à t'en sortir (trop de travail par exemple pour tout remanier alors qu'il faut un résultat rapide) tu peux utiliser les buffers.
Mais le mieux serait quand même de retravailler l'organisation de ton application...

Eléphant du PHP | 58 Messages

15 déc. 2011, 15:43

Pourtant si je la laisse là mon : require('../include/debut-xhtml.inc.php'); avant mon header je n'ai aucune erreur et mon code php s’exécute parfaitement !

Car si je met mon require('../include/debut-xhtml.inc.php'); en fin de traitement ca fonctionne aussi mais esthétiquement c'est pas beau il se crée un petit décalage entre le haut de la fenêtre et ma bannière:


Image

et avant avec require('../include/debut-xhtml.inc.php'); avant header

Image

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 16:52

C'est parce que ta configuration des erreurs est permissive.
Sans doute juste E_ALL et donc il ne considère pas certaines erreurs.
Aussi le fait que si le header('Location:...') aboutit tu auras bien l'affichage d'un warning à cause du html avant mais la redirection va se faire tellement rapidement que tu ne vas pas le voir.

Eléphant du PHP | 58 Messages

15 déc. 2011, 18:11

ah ok je comprend mieux :)

dans mon php.ini j'ai ça:

; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED


je le laisse comme ça?

et pour la solution de l'espace tu sais comment le corriger?

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 19:34

C'est un problème de CSS pas de PHP, ou bien tu affiches un saut de ligne quelque part dans ton code de traitement.
Regardes le code HTML généré pour voir ce qu'il y a avant ta bannière.

Pour la gestion des erreurs le mieux pour travailler c'est : E_ALL | E_STRICT