9
votes

Même code sur le navigateur / serveur

J'écris une application Web à l'aide de PHP et dans plusieurs situations où j'ai besoin de code similaire sur le serveur et le navigateur. Par exemple:

  • Je veux valider la saisie de l'utilisateur et générer les mêmes messages d'erreur des deux côtés.
  • Je veux formater des données à l'aide de certaines règles (par exemple, si un champ donné est inférieur à 1, montrez-le avec deux décimales, sinon aucun), et l'avoir apparaissent de la même chose, quel que soit la partie la plus touchée.

    On dirait que cela devrait être un problème courant, car les personnes déplacent plus de logique du serveur au navigateur. Mais existe-t-il des modèles ou des bibliothèques courants pour y faire face (en particulier pour PHP)?


2 commentaires

Bonne question, bien que strictement parlant, déplacement de la validation du serveur au navigateur est une mauvaise idée de la sécurité. Mieux vaut "pré-valider" dans le navigateur (pour les commentaires immédiats de l'utilisateur) et re-valider sur le serveur (pour la sécurité).


Absolument - je le veux dans les deux endroits.


7 Réponses :


3
votes

Une solution serait d'utiliser JavaScript côté serveur . Vous seriez capable de partager d'énormes morceaux de code.


0 commentaires

1
votes

Une solution partielle est AJAX. Par exemple, écrivez votre code de validation une fois sur le serveur et laissez vos formulaires parler au serveur pour voir si une entrée est valide et demander un message d'erreur d'affichage si non.


1 commentaires

Bien que (sauf si vous ne parlez que de partager le code mais que vous faites toujours une validation des deux côtés), cela suppose que JavaScript est activé / disponible



0
votes

JSON_ENCED et JSON_Decode sont Un bon départ - la même source de données disponibles dans les tableaux PHP et les objets JSON selon les besoins.

Les données JSON_CODED peuvent être servies via