Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/05/2011, 11h41   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
Par défaut faire une liste d'erreur

bonjour,
je voudrais savoir comment créer une liste d'erreur, genre pour une page,
si par exemple, l'id transferé dans l'irl, ne corresponds a aucun article
en général quelles sont les erreur type, et comment les intégré logiquement dans mon code php

sinon peut etre connaissez vous un tuto ou autre

MERCI
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 11h47   #2
Membre confirmé
 
Inscription : décembre 2006
Messages : 307
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 307
Points : 226
Points : 226
Fait un tour du côté de cette fonction : http://php.net/manual/fr/function.trigger-error.php
__________________
Prestataires, inscrivez vous dans l'annuaire e-commerce des prestataires - foe.hn : un raccourcisseur d'url fun, avec API
max-mag est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/05/2011, 12h15   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 136
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 136
Points : 14
Points : 14
oui en effet c'est intéressant
c'est cette fonction qui est couramment utilisée
ou y a t'il d'autre solutions

merci
artichaudd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 15h54   #4
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Tu personnalises alors ton code.
Citation:
si par exemple, l'id transferé dans l'irl, ne corresponds a aucun article
vérifie les résultats qui résultent de chaque requête avant de les interpréter.

http://php.net/manual/fr/function.mysql-num-rows.php
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 16h34   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
La fonction trigger_error de PHP ainsi que son "pendant" objet la directive throw n'ont pour objet que de gérer des erreurs internes: jamais elles ne doivent parvenir à l'utilisateur final (et je tiens pour acquis qu'un utilisateur n'a rien à faire de "[04-May-2011 15:15:13] PHP Fatal error: Call to a member function getOutputFormat() on a non-object in D:\workspace_helios\axiom\libraries\ViewManager.class.php on line 48" par exemple)

Au mieux tu peux intercepter (ou attraper dans le cas des exceptions) ces erreurs pour afficher un message d'erreur lisible par un humain, mais il faut savoir utiliser les mécanismes d'erreur avec parcimonie, ils ne sont présent que pour obtenir des informations sur un traitement incorrect, or un utilisateur qui fait une "mauvaise" recherche n'est pas en soi une erreur, c'est donc à toi de faire les vérifications d'usage et de spécialiser ton code en conséquence.

Pour faire une pile d'erreur utilisateur rien ne vaut un bon tableau, il suffit de pousser les messages dessus en conservant par exemple une information relevant de la gravité de l'erreur (généralement notification, warning ou error).

Exemple avec une recherche:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?php
 
$errors = array();
 
if (filter_var(INPUT_POST, 'recherche', FILTER_SANITIZE_SPECIAL_CHARS)) {
  $query = "SELECT id,article_name FROM articles WHERE description LIKE '%{$_POST['recherche']}%'";
  if (!$results = mysql_query($query)) {
    $errors[] = array('msg' => 'Internal Error', 'level' => 'error', 'extra' => mysql_error());
  }
  else {
    if (!mysql_num_row($results)) {
		$erros[] = array('msg' => 'No results', 'level' => 'notice');
	}
	else {
	  //....
	}
}
else {
	$errors[] = array('msg' => 'No input', 'level' => 'warning');
}
 
// ....
 
foreach ($errors as $desc) {
  switch ($desc['level']) {
    case 'error': echo "<span class=\"error\">{$desc['msg']}</span>"; break;
	case 'warning': echo "<span class=\"warning\">{$desc['msg']}</span>"; break;
	case ....
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h53.


 
 
 
 
Partenaires

Hébergement Web