Format DATE et entrée automatique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Format DATE et entrée automatique

par Invité » 03 sept. 2008, 11:05

Salut Ryle et merci pour ta réponse !

Je ne l'avais pas vu et j'ai donc procédé différemment.

Je laisse enregistrer mysql cette valeur 0000-00-00 et c'est seulement à l'affichage que je teste la valeur de la base de donnée. Au lieu de tester valeur nulle:

Code : Tout sélectionner

if($row_date['fin_date_even'])!=''
Je fais un

Code : Tout sélectionner

if($row_date['fin_date_even'])!='0000-00-00'
Je vais maintenant pouvoir faire les modifs sur la table.

Je ne connaissais pas cette valeur par défaut.

@+![/code]

par Ryle » 10 août 2008, 18:12

En fait il te faut juste modifier la valeur par défaut du champ date (sans le passer en varchar).

En effet, mysql propose lorsqu'une valeur null est insérée dans un champ NOT NULL de le remplacer par une valeur par défaut (en l'occurence 0000-00-00 pour les dates). Il te suffit donc de modifier la structure de la table pour dire que ce champ accepte les valeur NULL et qu'il doit être NULL par défaut si aucune valeur n'est spécifiée :)

Oui mais pour les calculs?

par Neomcdn » 07 août 2008, 08:28

Hello!

La date est effectivement au format DATE. Le souci est que si je mets cette date en Varchar, alors je ne pourrai plus l'utiliser dans des calculs de différence de date,...

Qu'en penses-tu? Il n'existe pas d'autre solution: une option de mysql pour désactiver ce remplissage automatique.

Par exemple à quoi correspond ?

- Ds les attributs: UNSIGNED ZEROFILL, UNSIGNED, ON UPDATE CURRENT_TIMESTAMP

A priori, je ne peux pas modifier ces éléments...

Merci pour votre aide!

@+!

par dunbar » 06 août 2008, 18:58

Salut
A mon avis le champs de ta table est un champ date donc a chaque enregistrement sans autre donnée il va mettre 0000-00-00 a toi de modifier le type de champ et cela réglera ton soucis.

A+

Format DATE et entrée automatique

par Neomcdn » 06 août 2008, 18:01

Bonjour à tous!

J'ai un formulaire pour l'administration de mon site et je souhaite intégrer deux dates: l'une est obligatoire, l'autre facultative.

La vérification fonctionne bien et seule la première date est obligatoire; cependant mysql enregistre 0000-00-00 dans le second champ si celui-ci n'est pas renseigné.

- Pour être plus clair; je renseigne dans mon formulaire:

date1: 20-10-2008
date2: 21-10-2008

J'ai bien dans ma base

date1: 2008-10-20
date2: 2008-10-21

- Par contre, si dans mon formulaire je saisis que la première date:

date1: 20-10-2008
date2:

J'ai alors dans ma base:

date1: 2008-10-20
date2: 0000-00-00

Comment s'il-vous-plaît, supprimer ce remplissage automatique ?

J'ai essayé des tests sur mes $_POST ou sur mes $_SESSION et rien de mieux; même si c'est vide, sql remplit...

Pour information, je fais le traitement sur ma page (vérifications et enregistrement en base si tout est ok).

Merci par avance!

@++!