Page 1 sur 1

Gestion des erreurs

Posté : 01 nov. 2010, 12:46
par speed001
Bonjour,

Je voudrai afficher un message d'erreur dans mon formulaire lorque l'utilisateur n'encode pas correctement les informations. J'ai créer un autre fichier qui ne s'ocuppe que des conditions et des erreurs sur le formulaire.

Auriez vous une idée sur la manière dont je pourrai afficher le message d'erreur sur mon formulaire depuis mon autre fichier qui ne s' ocuppe que des erreurs ?

Merci d'avance

Re: Gestion des erreurs

Posté : 01 nov. 2010, 13:34
par xTG
Tu veux une centralisation des erreurs à un seul endroit ou bien devant chacun des champs ?
Dans tous les cas la problématique est la même.
Tu créés une variable et si elle existe tu l'affiches. Variable qui sera remplie par ton script de gestion des erreurs.

Re: Gestion des erreurs

Posté : 01 nov. 2010, 15:25
par AB
Est-ce vraiment nécessaire de créer un second fichier rien que pour ça ?

Sinon sur le principe, le plus simple est d'utiliser une variable de session dans laquelle tu enregistre les messages d'erreurs dans un tableau.
Ensuite si ce tableau est non vide (donc s'il y a des erreurs) tu liste les erreurs depuis cette variable de session que tu efface juste après sa lecture.
Cela te permet d'afficher facilement une liste d'erreurs.

Une autre solution est de passer des variables get dans le header de redirection vers ta page.
header("Location: ma_page.php?erreur=1");
à réception tu peux faire par exemple un switch sur $_GET['erreur']
$erreur = null;
if (isset($_GET['erreur']))
{
switch($_GET['erreur'])
{
case "1":
        $erreur = 'le champ toto doit être rempli';
        break;
    case "2":
        $erreur = 'le champ titi doit être rempli';
        break;
    case "3":
       $erreur = 'le champ tata doit être rempli';
        break;
}

}

if (isset($erreur)) echo $erreur;
Bon ce sont des exemples, il existe d'autres méthodes.

Re: Gestion des erreurs

Posté : 01 nov. 2010, 19:11
par speed001
merci, effectivement je suis passé par des arrays, mais le problème est que le navigateur m'affiche une page blanche ou lieu du messsage d'erreur dans le formulaire. Est-ce un problème de définition de conditions pour l'erreur?

voici mon code:
partie formulaire:
<html> 
<head>
	<title>RESERVATION</title> 
	<LINK rel=stylesheet type =text/css href=css1.css> 
</head> 
<body>
	
<?php

echo"<form name=donnée METHOD=POST ACTION=controleur.php > ";
				
			
			echo "	<tr><td>Destination :";
				
			
			
			echo"</td>
			
				 <td><input type=text name=destination text-align='right'  ></td></tr>"; 
				if($encodage['destination']=true)
				{
				
				echo "non";
				}
			
				
				
				

	</form>"; 


	
	
	?>
</body>
</html>
partie controleur:
<?php


include('modele.php');
session_start(); 

$encodage=array('destination'=>false);

if(isset($_SESSION['reservation']))
{
$reservation=$_SESSION['reservation'];
}
else
{
$reservation = new reservation('','','','','');
}

			

					


if ( isset(($_POST['destination']) && (!is_numeric($_POST['destination'])) &&(!empty($_POST['destination']))) 
		
		
		{
		
		$reservation->set_destination($_POST['destination']);
			include('detail.php');
			$reservation->save();

		
		}

	if($reservation->get_destination()=='')
	{
	$encodage['destination']=true;
	
	}
if($encodage['destination'])
{
include('page1.php');
}
ou se trouve les fonctions:
<?php

class reservation
{
	private $destination;
    
function __construct()
{	
	
	
		$this->destination='';
		
		}
function set_destination($destination)
{	
	
			
		$this->destination=$destination;
}				 
	

function get_destination()
{
	return $this->destination;
}

function save()
{
 $_SESSION['reservation'] = $this;
}
?>

Re: Gestion des erreurs

Posté : 01 nov. 2010, 23:11
par moogli
Salut,

pour commencer dans le premier code
if($encodage['destination']=true) <= la y a une erreur tu fait une affectation cela vaudra toujours true (sauf si $encodage n'est pas déclarée). donc ajoute un = la comparaison c'est == (ou ===).

je ne vois pas vraiment ou se fait la gestion d'erreur dans ton script :/

@+