TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : Précédente 1 2 3 ... 76 77 78 79 80 81 82 ... 97 98 99 100 Suivante | |
| Auteur | Message |
|---|---|
| 2 visiteurs sur ce sujet (2 anonymes) | |
| Page : Précédente 1 2 3 ... 76 77 78 79 80 81 82 ... 97 98 99 100 Suivante | |
Tracker
|
# Posté le 05/04/2008 à 14:52:21 |
![]() Groupe : Membres |
Reprise du dernier message de la page précédente :
Tu fais effectivement comme tu l'entends, mais si l'utilisateur a entré un espace ou plusieurs comment peux-tu systématiser leurs suppressions, ou plus clairement d'où t'accordes-tu le droit de modifier le contenu d'un texte soumis par un tier ?Si tu ne veux pas d'espace, tu dois donner une règle de contrôle à l'utilisateur et lui remonter une erreur en cas de format invalide. Tracker.
Édité
le 05/04/2008 à 14:53:11
par Tracker
|
Talus
|
# Posté le 05/04/2008 à 14:54:40 |
タルス![]() Groupe : Membres |
C'est plus pour vérifier si la variable est vide.. *Donc une pale imitation de empty.
Au fait : déjà vu (et plus approprié là dedans :p). Et pour ta fonction de validité de dates.... Code : PHP - Afficher / masquer les numéros de ligne
Much better. Au lieu de faire un explode (surtotu avec des indices non numériques... Avec E_ALL, PHP aurait ralé), autant capturer ce qu'il faut ![]() Tracker > Oui, tu marques un point. On a souvent tendance à se dire que "pas vide == pas de caractères"... A la limite, renvoyer un message du type "Ce que vos avez entré est soit vide (ou bouré d'espaces) soit pas valide."...
Édité
le 05/04/2008 à 14:57:21
par Talus
|
Jeremie78
|
# Posté le 05/04/2008 à 14:57:03 |
|
Powered by GNU/Linux Groupe : Membres |
Citation : Tracker
Tu fais effectivement comme tu l'entends, mais si l'utilisateur a entré un espace ou plusieurs comment peux-tu systématiser leurs suppressions, La fonction teste si la variable est vide, il suffit de faire remonter l'erreur en demandant de na pas entrer un message qui ne contient aucun caractère alpha-numérique. Citation : Tracker ou plus clairement d'où t'accordes-tu le droit de modifier le contenu d'un texte soumis par un tier ? Quel est le rapport ? Citation : Tracker Si tu ne veux pas d'espace, tu dois donner une règle de contrôle à l'utilisateur et lui remonter une erreur en cas de format invalide. Voir réponse au dessus
Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ... |
Tracker
|
# Posté le 05/04/2008 à 15:18:58 |
![]() Groupe : Membres |
Citation
Quel est le rapport ? Y'en a pas, mais l'illogisme du trim, laisse imaginer son utilisation lors de l'insertion. Au passage en unicode y'a des tas de glyphes représentant un espacement et à mon avis, même pour une vérification, c'est pas une bonne idée. On est d'accord sur le fond, une entrée formatée doit être validée et modifiée par l'utilisateur le cas échéant. Tracker.
Édité
le 05/04/2008 à 15:22:11
par Tracker
|
Talus
|
# Posté le 05/04/2008 à 16:57:36 |
タルス![]() Groupe : Membres |
Ouais, j'ai d'ailleurs rencontré un probleme avec : imaginons qu'il y ait un champ "surnom", et que le type tappe "abruti230"... Ca ressortira "abruti23".
|
Dutiona
|
# Posté le 05/04/2008 à 19:59:17 |
Vis pour être heureux !![]() Groupe : Membres |
Code : PHP - Afficher / masquer les numéros de ligne
Cette fonction renvoie true si le premier paramètre est non vide et que le deuxième est vide (car $bool est déjà modifié à true et n'est pas remis à false...). Elle est donc fausse. Fait plutôt comme ça : Code : PHP - Afficher / masquer les numéros de ligne
De toute manière, cette fonction est inutile car empty gère déjà le multiparamètrage. Mais bon, il faut quand même signaler quand un code est faux... Il en est de même pour le 'digit()'. Bisous, Nyu EDIT : en effet, il y a une erreur. J'ai aps fait attention au 'write context' .J'édite la fonction.
Édité
le 06/04/2008 à 00:03:15
par Dutiona
Défiez ma brute ! Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder. Framework in use: Seraframework (my own one). In Microeisti staff. |
anonyme
|
# Posté le 05/04/2008 à 20:05:03 |
|
Groupe : |
Ta fonction n'est pax correcte (génèrera une erreur à cause de empty(trim())).
|
simmstein
|
# Posté le 05/04/2008 à 22:50:56 |
|
Groupe : Membres |
L'article qui va avec la fonction empty_() : http://www.geneweb.fr/Billet/Bien-utiliser-empty-0014/
Edit : Oups, j'ai pas vu que le lien avait été posté
Édité
le 05/04/2008 à 22:54:17
par simmstein
|
Lynix
|
# Posté le 05/04/2008 à 23:34:31 |
Graphiste 3D![]() Groupe : Membres |
Je plussoie Haku
Voila une correction : Code : PHP - Afficher / masquer les numéros de ligne
Utopy Bientot ![]() |
Tracker
|
# Posté le 05/04/2008 à 23:48:34 |
![]() Groupe : Membres |
|
anonyme
|
# Posté le 05/04/2008 à 23:48:56 |
|
Groupe : |
Mais là encore la fonction génèrera une erreur contrairement à une suite de empty() + trim() (et il manque des accolades et un ;).
Qui plus est, vous ne pourrez jamais utilisez une fonction perso pour vérifier si une variable est déclarée ou pas. Avec PHP 5.2.5 et l'error_reporting à E_ALL, ceci retourne une erreur de variable non déclarée : Code : PHP - Afficher / masquer les numéros de ligne
Et en conséquence vous devrez toujours vous coltiner un isset() ou un empty(), donc autant faire un if(!empty($var) && trim($var)) et oublier vos idées de fonctions généralistes qui sont pas très utiles. D'autant plus que comme l'a dit Tracker, si vous jugez que des espaces ne sont pas une chaîne valide, alors il faut avertir le visiteur et ne pas considérer que le formulaire n'a pas été soumis, ce qui serait le cas avec un if(empty() && trim()). Sans oublier qu'en fonction de ce vous demandez (un nombre par exemple), empty() pourrait bien vous ennuyez. |
Dutiona
|
# Posté le 06/04/2008 à 00:15:19 |
Vis pour être heureux !![]() Groupe : Membres |
Citation : `Haku
Ta fonction n'est pax correcte (génèrera une erreur à cause de empty(trim())). C'est édité. Citation : `Haku et puis, envoyer un truc non déclaré à une fonction, ça n'a aucun sens Ca peut en avoir .Tu peux par exemple, passer la référence d'une variable non déclarée à une fonction de type 'bind' pour ensuite déclarer la variable plus loin dans le code. C'est avec ce principe que marchent les variables mysql_stmt_bind_param et mysql_stmt_bind_result. Bisous, Nyu
Édité
le 06/04/2008 à 00:16:10
par Dutiona
Défiez ma brute ! Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder. Framework in use: Seraframework (my own one). In Microeisti staff. |
anonyme
|
# Posté le 06/04/2008 à 00:25:33 |
|
Groupe : |
PHP le permet peut-être, mais c'est une abération.
D'ailleurs dire "$a référence $b" est une abération. Si A est une référence B, A ne référence pas B, A est B et B est A. Ainsi, référencer quelque chose qui n'existe pas n'a aucun sens. |
Dutiona
|
# Posté le 06/04/2008 à 00:33:20 |
Vis pour être heureux !![]() Groupe : Membres |
Ben au niveau de la machine ça a du sens
.Concrètement, si tu références $b = &$a alors que $a n'est pas déclarée, tu auras $b qui pointera sur la valeur null. Quand $a sera initialisée, $b pointera automatiquement vers la valeur de $a étant donné que $b est liée à $a. Donc ça a du sens même si je préfère adopter ce genre de schéma : Code : PHP - Afficher / masquer les numéros de ligne
Comme ça, mes variables sont bien déclarées et initialisées et je vois les valeurs de départ que je référence. Bisous, Nyu
Édité
le 06/04/2008 à 00:45:20
par Dutiona
Défiez ma brute ! Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder. Framework in use: Seraframework (my own one). In Microeisti staff. |
anonyme
|
# Posté le 06/04/2008 à 00:36:18 |
|
Groupe : |
Non, ça n'a pas de sens. PHP permet cela mais c'est bien le seul langage que je connaisse qui soit si laxiste (si je fais ça en c++, le compilo m'engueule de suite).
|
Tracker
|
# Posté le 06/04/2008 à 00:45:45 |
![]() Groupe : Membres |
En réalité c'est pas si simple. Les références en php sont devenues un système d'alias dans la table des symboles.
Code : PHP - Afficher / masquer les numéros de ligne
[ed] Le principe est assez interessant d'ailleurs car il permet d'implémenter partiellement la notion de WeakReference qu'on peut trouver en java. Code : PHP - Afficher / masquer les numéros de ligne
Pas contre attention dans ce contexte écrire $a = null; est différent de unset($a). Tracker.
Édité
le 06/04/2008 à 01:08:29
par Tracker
|
JeromeJ
|
# Posté le 06/04/2008 à 00:53:13 |
![]() Groupe : Membres |
Citation : Talus
J'y jetterais un oeil (pour ben descendre ? Peut-être... Ou pas... :p) Bah c'est un paramètre facultatif pour gagner du temps dans certains cas Sinon Jerome, ca renvoi le premier fetch_*, ou tous ? Sinon, tu risque d'avoir des problemes... Enfin, à première vue. Facon, vaut mieux séparer requête et fetch_* ![]() et vu que ça retourne la première valeur, ça sert justement lorsque l'on sait qu'il n'y a qu'une valeur à traiter.En espérant avoir été clair :s JeromeJ. Secret (cliquez pour afficher) Ce que je maitrise actuellement: XHTML, CSS, PHP, Action Script 2 et 3, JavaScript, SQL, Python, et un peu de C, C++ et d'erl |
anonyme
|
# Posté le 06/04/2008 à 00:58:09 |
|
Groupe : |
Ca n'a pas toujours été un système d'alias ?
La création du symbole, ça n'a pas beaucoup de sens en PHP. PHP ne fait pas la différence entre une variable non déclarée et une variable à laquelle on a jamais affecté de valeur, c'est d'ailleurs un peu .. étrange. |
Tracker
|
# Posté le 06/04/2008 à 01:00:53 |
![]() Groupe : Membres |
Citation : `Haku
Ca n'a pas toujours été un système d'alias ? Le comportement a changé entre php4 et 5, en php4 l'alias sur un objet incrémentait son compteur de références. Citation : `Haku La création du symbole, ça n'a pas beaucoup de sens en PHP. PHP ne fait pas la différence entre une variable non déclarée et une variable à laquelle on a jamais affecté de valeur, c'est d'ailleurs un peu .. étrange. En interne forcement sinon comment expliques tu le comportement du code précédent. Tracker.
Édité
le 06/04/2008 à 01:06:13
par Tracker
|
anonyme
|
# Posté le 06/04/2008 à 01:05:53 |
|
Groupe : |
A quel code fais-tu allusion ?
Si c'est au premier, bah je rétorquerais que : Code : PHP - Afficher / masquer les numéros de ligne
Mais c'est vrai que j'aurais du préciser ma pensée : PHP ne fais pas différence dans l'erreur lancée (undefined var dans les deux cas). |
Tracker
|
# Posté le 06/04/2008 à 01:14:59 |
![]() Groupe : Membres |
Code : PHP - Afficher / masquer les numéros de ligne
Ce code n'est pas faux, il exploite simplement la table des symboles. les entrées a et b existent (regarde tout en bas), mais ne sont pas réellement exploitable tant qu'elles n'ont pas été affectées et c'est implémenté dans les fonctions php de lancer un varning si le symbole référence &NULL. Tracker.
Édité
le 06/04/2008 à 01:21:18
par Tracker
|
anonyme
|
# Posté le 06/04/2008 à 01:27:47 |
|
Groupe : |
Pourtant ceci ne génère pas d'erreur :
Code : PHP - Afficher / masquer les numéros de ligne
Ou alors je n'ai pas compris ce que tu voulais dire par "lancer un warning si le symbole référence &null". |
Tracker
|
# Posté le 06/04/2008 à 01:42:25 |
![]() Groupe : Membres |
Je dois corrigé ce que j'ai dit précédemment:
Code : PHP - Afficher / masquer les numéros de ligne
par contre: Code : PHP - Afficher / masquer les numéros de ligne
Les fonctions à l'exception de isset, empty, etc... lancent une erreur dès que le symbole est absent de la table. Tracker.
Édité
le 06/04/2008 à 01:43:38
par Tracker
|
anonyme
|
# Posté le 06/04/2008 à 01:45:37 |
|
Groupe : |
Oui, c'est bien ce que j'avais constaté.
La référenciation déclare donc implicitement la variable référencée (ce qui explique aussi pourquoi on peut envoyer une variable non-déclaré à function f(&$v) {}). |
Tracker
|
# Posté le 06/04/2008 à 01:51:24 |
![]() Groupe : Membres |
C'est pas la référenciation qui monte les symboles mais l'affectation
Le code suivant gauffre: Code : PHP - Afficher / masquer les numéros de ligne
Par contre Code : PHP - Afficher / masquer les numéros de ligne
est correcte car lors de l'invokation de la fonction, une opération de type $a=&$b est effectuée montant les deux symboles en mémoire. Tracker.
Édité
le 06/04/2008 à 01:54:00
par Tracker
|
anonyme
|
# Posté le 06/04/2008 à 01:55:40 |
|
Groupe : |
Ce code aussi se plante :
Code : PHP - Afficher / masquer les numéros de ligne
Donc il faut l'affectation et la référenciation pour avoir une déclaration implicite. Edit : Oui, ton second code illustre ce que je disais précédemment. Le paramètre $a est une référence sur $b (donc on peut approximer que c'est équivalent à $a =& $b) et donc je reviens à la phrase précédent l'edit. |
Tracker
|
# Posté le 06/04/2008 à 02:01:25 |
![]() Groupe : Membres |
Yes, finalement on aura fait le tour
![]() En tout cas le principe d'alias est bien pratique pour éviter les références fortes arrières dans les arborescences d'objets ou les références cycliques. Tracker.
Édité
le 06/04/2008 à 02:02:02
par Tracker
|
anonyme
|
# Posté le 06/04/2008 à 02:05:11 |
|
Groupe : |
Oui, c'est clair que c'est très pratique.
Par contre je trouve qu'une déclaration implicite comme ça, c'est pas beau. ![]() Parce que bon, si on écrit $a =& $b, ça veut dire "je veux créer un alias de $b". Sauf que si $b n'est pas déclaré, ça revient à dire "je veux créer un alias d'un objet qui n'existe pas". Je préfèrerais qu'à l'instar d'une affectation, une erreur soit émise. Aussi, c'est dommage qu'on ne puisse pas ajouter de symbole dans la table autrement que par une affectation(+ référenciation). Maintenant c'est vrai qu'on peut voir ce code : Code : PHP - Afficher / masquer les numéros de ligne
de deux façons différentes. Soit on fait un parallèle entre $var; et f();, càd qu'on ne fait qu'évaluer l'expression, auquel cas il est étrange de ne pas avoir d'erreur puisque var n'est pas dans la table des symboles. Soit on se dit que c'est une déclaration, et là on constate que la variable n'est pas déclarée. Dans les deux cas le résultat est surprenant. |
streeter
|
# Posté le 06/04/2008 à 13:52:15 |
100 citations...![]() Groupe : Membres |
Suite à la suppression de mon post dans le mauvais topic, revoici ma fonction
Type: Fonction But: Permettre de personnaliser l'affichage d'une date à partir des standards de date Mysql (YYYY-MM-DD [hh:mm:ss]) Code: Code : PHP - Afficher / masquer les numéros de ligne
Exemple: Code : PHP - Afficher / masquer les numéros de ligne Citation : Rendu Date de réception 1: Le 06 avril 2008 Date de réception 2: Le 06/04/2008 à 11h 25m 56s Date de réception 3: Posté à 11heures 25minutes et 56secondes Voici aussi la fonction bateau getNameMonth() Si besoin est: Code : PHP - Afficher / masquer les numéros de ligne
Voilà, j'espère que cette petite fonction sera utile pour certains d'entre vous. Et bien évidemment, je suis ouvert à toutes critiques, rapport de bug et/ou optimisation ![]()
Édité
le 06/04/2008 à 13:58:51
par streeter
Mon site sur les add-ons de WoW. |
Tracker
|
# Posté le 06/04/2008 à 14:09:42 |
![]() Groupe : Membres |
Salut,
Je pense qu'on peut faire strictement la même chose en récupérant la date de MySQL avec un UNIX_TIMESTAMP, et en l'affichant en php avec strftime(...) (En ayant bien entendu défini correctement la localisation). Tracker. |
streeter
|
# Posté le 06/04/2008 à 14:16:21 |
100 citations...![]() Groupe : Membres |
Citation : Tracker
Salut, Je pense qu'on peut faire strictement la même chose en récupérant la date de MySQL avec un UNIX_TIMESTAMP, et en l'affichant en php avec strftime(...) (En ayant bien entendu défini correctement la localisation). Tracker. Ha oui je ne connaissais pas cette fonction php ![]() Merci pour l'info Mon site sur les add-ons de WoW. |
Retour au forum "PHP" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
118 Zéros connectés |
6 requêtes |
0.2281s (0.2105s)
