Date PHP-SQL
Résolu/Fermé
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
27 janv. 2015 à 23:52
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 30 janv. 2015 à 09:13
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 30 janv. 2015 à 09:13
A voir également:
- Date PHP-SQL
- Easy php - Télécharger - Divers Web & Internet
- Publipostage date en anglais ✓ - Forum Excel
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Retour a la ligne php ✓ - Forum PHP
6 réponses
Tomy2e
Messages postés
816
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
858
28 janv. 2015 à 00:20
28 janv. 2015 à 00:20
Bonjour, cela signifie que vous faites appel à une valeur qui n'existe pas dans une variable de type array. Il ne s'agit que d'un avertissement et vous pouvez l'ignorer en ajoutant un "@" avant l'appel de la variable, par exemple:
<?php $test = array(); echo $test[1]; // Affichera une erreur de type Notice echo @$test[1]; // N'affichera rien ?>
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
28 janv. 2015 à 06:56
28 janv. 2015 à 06:56
Bonjour
Merci de votre réponse en fait cela vien de cette fonction
sinon il y a quelque chosqe que je pourrais faire par rapport à cette fonction pour que ces erreurs soient supprimées.
Merci
Merci de votre réponse en fait cela vien de cette fonction
function dateFR($date_en_francais){ preg_match ('`^(\d{4})-(\d{2})-(\d{2})(.*)$`', $date_en_francais, $out); if($out[2] < 10) { $out[2] = substr($out[2],1,1); } $i = $out[2]; $mois = array('','Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Decembre'); return $out[3].' '.$mois[$i].' '.$out[1].' '.$out[4]; }
sinon il y a quelque chosqe que je pourrais faire par rapport à cette fonction pour que ces erreurs soient supprimées.
Merci
Tomy2e
Messages postés
816
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
858
28 janv. 2015 à 20:57
28 janv. 2015 à 20:57
Bonjour, pour que les erreurs disparaissent il faudrait rajouter des "@" devant les variables qui retournent un avertissement, cela donne donc cela:
Pour éviter de devoir mettre un "@" devant toutes les variables, vous pouvez insérer le code suivant au début de votre code PHP:
Voire même changer la configuration de PHP dans le fichier php.ini, renseignez-vous sur la documentation de PHP.
function dateFR($date_en_francais){ preg_match ('`^(\d{4})-(\d{2})-(\d{2})(.*)$`', $date_en_francais, $out); if(@$out[2] < 10) { @$out[2] = substr(@$out[2],1,1); } $i = @$out[2]; $mois = array('','Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Decembre'); return @$out[3].' '.$mois[$i].' '.@$out[1].' '.@$out[4]; }
Pour éviter de devoir mettre un "@" devant toutes les variables, vous pouvez insérer le code suivant au début de votre code PHP:
error_reporting(E_ALL & ~E_NOTICE);
Voire même changer la configuration de PHP dans le fichier php.ini, renseignez-vous sur la documentation de PHP.
Utilisateur anonyme
>
Tomy2e
Messages postés
816
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
18 août 2016
29 janv. 2015 à 07:59
29 janv. 2015 à 07:59
Bonjour
C'est l'un des pires conseils que j'aie jamais vu sur ce forum.
papyclic va continuer d'écrire des erreurs, et il n'aura même plus de message pour le prévenir ! Et il viendra demander de l'aide ici en disant qu'il n'y a aucun message d'erreur.
Les avertissements sont des erreurs aussi graves que les autres, la différence est que l'interpréteur PHP ne s'arrête pas. Mais dans la plupart des cas, ça se passera mal un peu plus loin car il s'est passé quelque chose que le programmeur n'avait pas prévu.
Le masquage des erreurs devrait être limité aux quelques très rares cas où on ne peut pas faire autrement (comme l'accès à des ressources extérieures) et pas comme une solution de facilité qui permet de se dispenser de faire des vérifications, par fainéantise ou ignorance.
Cacher le thermomètre pour ne plus voir la fièvre n'aide pas à guérir.
C'est l'un des pires conseils que j'aie jamais vu sur ce forum.
papyclic va continuer d'écrire des erreurs, et il n'aura même plus de message pour le prévenir ! Et il viendra demander de l'aide ici en disant qu'il n'y a aucun message d'erreur.
Les avertissements sont des erreurs aussi graves que les autres, la différence est que l'interpréteur PHP ne s'arrête pas. Mais dans la plupart des cas, ça se passera mal un peu plus loin car il s'est passé quelque chose que le programmeur n'avait pas prévu.
Le masquage des erreurs devrait être limité aux quelques très rares cas où on ne peut pas faire autrement (comme l'accès à des ressources extérieures) et pas comme une solution de facilité qui permet de se dispenser de faire des vérifications, par fainéantise ou ignorance.
Cacher le thermomètre pour ne plus voir la fièvre n'aide pas à guérir.
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
29 janv. 2015 à 07:02
29 janv. 2015 à 07:02
Bonjour
Merci pour votre aide.
Super cool je vous remercie nickel.
Cordialement.
Merci pour votre aide.
Super cool je vous remercie nickel.
Cordialement.
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
29 janv. 2015 à 10:53
29 janv. 2015 à 10:53
Bonjour le père,
Oui effectivement tu a raison, je le pensais aussi c'est pourquoi j'ai réaffiché mes erreurs. Aurai tu peut-être une idée à propos de mes erreurs concernant ma fonction s'il te plait, déjà en attendant j'ai simplement mis le @ devant mes variable car pour l'instant je suis toujours en local.
Merci
Oui effectivement tu a raison, je le pensais aussi c'est pourquoi j'ai réaffiché mes erreurs. Aurai tu peut-être une idée à propos de mes erreurs concernant ma fonction s'il te plait, déjà en attendant j'ai simplement mis le @ devant mes variable car pour l'instant je suis toujours en local.
Merci
function dateFR($date_en_francais){ preg_match ('`^(\d{4})-(\d{2})-(\d{2})(.*)$`', $date_en_francais, $out); if(@$out[2] < 10) { $out[2] = substr(@$out[2],1,1); } $i = $out[2]; $mois = array('','Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Decembre'); return @$out[3].' '.@$mois[$i].' '.@$out[1].' '.@$out[4]; }
Notice: Undefined offset: 2 in C....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
29 janv. 2015 à 11:09
29 janv. 2015 à 11:09
Bonjour papyclic.
As-tu lu les explications sur la fonction preg_match dans le manuel php ?
Tu as cette erreur parce que la date que tu fournis n'a pas le format attendu. Et toi tu te sers du résultat du preg_match comme si tout allait toujours bien, ce qui n'est pas le cas.
À toi de tester avec count($out) si le preg_match a bien retrouvé les 4 morceaux. Et si ce n'est pas le cas, envoie un message d'erreur à celui qui a mal saisi l'adresse en lui rappelant le format que tu attends. Mais n'essaye pas de traiter des données que preg_match n'a pas trouvées.
As-tu lu les explications sur la fonction preg_match dans le manuel php ?
Tu as cette erreur parce que la date que tu fournis n'a pas le format attendu. Et toi tu te sers du résultat du preg_match comme si tout allait toujours bien, ce qui n'est pas le cas.
À toi de tester avec count($out) si le preg_match a bien retrouvé les 4 morceaux. Et si ce n'est pas le cas, envoie un message d'erreur à celui qui a mal saisi l'adresse en lui rappelant le format que tu attends. Mais n'essaye pas de traiter des données que preg_match n'a pas trouvées.
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
30 janv. 2015 à 09:13
30 janv. 2015 à 09:13
Bonjour
Merci, j'ai essayé d'analyser correctement le problème de format de date.
En fait étant donné que cette erreur ne s'affiche que lorsque aucune donnée n'est renseigné, j'ai mis une valeur par défault dans mon champ de ma BDD, j'ai mis 00.00.0000.
et voilà le tour est joué.
j'espère que cette solution est acceptable.
Merci encore
Merci, j'ai essayé d'analyser correctement le problème de format de date.
En fait étant donné que cette erreur ne s'affiche que lorsque aucune donnée n'est renseigné, j'ai mis une valeur par défault dans mon champ de ma BDD, j'ai mis 00.00.0000.
et voilà le tour est joué.
j'espère que cette solution est acceptable.
Merci encore