IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[DEBUTANTE] Validation email et controle formulaire


Sujet :

Struts 1 Java

  1. #1
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut [DEBUTANTE] Validation email et controle formulaire
    Bonjour, mon but est de controler un formulaire d'ajout client, qui contient raison social, adresse,tel, email, ville et pays, j'ai réussi à faire une méthode validate mais c'est juste pour controler si les champs sont vide ou non, autre chose : par exemple le raison social ne doit pas se repeter, donc pour cela lorsque j'ai construit mes fichier.hbm.xml j'ai mis la column a unique=true et j'ai gérer les exceptions que peuvent se lever lors d'une resaisie du meme enregistrement, mais ce que je veux savoir est ce que je peux gérer meme les exceptions au niveau validate (tous les controle possible parmi eux les exceptions ?)
    Ma question est comment puis je gérer le controle de l'email et du tel au niveau de la méthode validate ?

    Autre question est ce que le validator fait la meme chose que la methode validate !!?

    AjouterClient.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Ajout Client</title>
    </head>
    <body>
     <font color="red"><html:errors/></font>
     <h3>Nouveau Client :</h3>
      <hr/>
    <html:form action="cli.do">
    <table border="1" width="50%" bordercolor="blue" align="center">
       <tr><td width="30%">Société :</td><td><html:text property="raisonSocial"></html:text><br/></td></tr>
       <tr><td width="30%">Adresse :</td><td><html:text property="adresse"></html:text><br/></td></tr>
       <tr><td width="30%">Tel :</td><td><html:text property="tel"></html:text><br/></td></tr>
       <tr><td width="30%">Email :</td><td><html:text property="email"></html:text><br/></td></tr>
       <tr><td width="30%">Ville :</td><td><html:text property="ville"></html:text><br/></td></tr>
       <tr><td width="30%">Pays :</td><td><html:text property="pays"></html:text><br/></td></tr>
       <tr><td colspan="2"></td></tr>
       <tr><td colspan="2" align="center"><html:submit value="Valider"></html:submit></td></tr>
    </table>
     </html:form>
    </body>
    </html>
    AjoutClientAction.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    package presentation.str;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import ma.corporate.planning.metier.Client;
    import ma.corporate.planning.metier.GestClient;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    public class AjoutClientAction extends Action{
     
    	public ActionForward execute(
    			ActionMapping map,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response) throws Exception {
     
    		GestClient gc = new GestClient();
     
    				String soc = ((AjoutClientForm) form).getRaisonSocial();
    				String adr = ((AjoutClientForm) form).getAdresse();
    				String tel = ((AjoutClientForm) form).getTel();
    				String email = ((AjoutClientForm) form).getEmail();
    				String ville = ((AjoutClientForm) form).getVille();
    				String pays = ((AjoutClientForm) form).getPays();
     
    				ActionErrors errors = new ActionErrors();
    	            ActionError newError = null;
     
    	        	    Boolean t= gc.addClient(soc, adr, tel, email, ville, pays);
    	        		if(t) return map.findForward("success");
    	        		else {
    		            	newError = new ActionError("errors.doublons.Database");
    		            	errors.add(ActionErrors.GLOBAL_ERROR, newError);
     
    		            	saveErrors(request, errors);
    		            	return  map.findForward("failure");
    	        		}
    	}
    }
    AjoutClientForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    package presentation.str;
     
    import javax.servlet.http.HttpServletRequest;
     
    import ma.corporate.planning.metier.GestClient;
     
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
     
    public class AjoutClientForm extends ActionForm {
     
    	private String raisonSocial;
    	private String adresse;
    	private String tel;
    	private String email;
    	private String ville;
    	private String pays;
     
    	public String getRaisonSocial() {
    		return raisonSocial;
    	}
    	public void setRaisonSocial(String raisonSocial) {
    		this.raisonSocial = raisonSocial;
    	}
    	public String getAdresse() {
    		return adresse;
    	}
    	public void setAdresse(String adresse) {
    		this.adresse = adresse;
    	}
    	public String getTel() {
    		return tel;
    	}
    	public void setTel(String tel) {
    		this.tel = tel;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public String getVille() {
    		return ville;
    	}
    	public void setVille(String ville) {
    		this.ville = ville;
    	}
    	public String getPays() {
    		return pays;
    	}
    	public void setPays(String pays) {
    		this.pays = pays;
    	}
    	public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
    		ActionErrors errors = new ActionErrors();
     
    		if ((raisonSocial == null) || (raisonSocial.length() < 1))
    		errors.add("raisonSocial", new ActionError("error.raisonSocial.vide"));
    		if ((adresse == null) || (adresse.length() < 1))
    		errors.add("adresse", new ActionError("error.adresse.vide"));
    		if ((tel == null) || (tel.length() < 1))
    		errors.add("tel", new ActionError("error.tel.vide"));
    		if ((email == null) || (email.length() < 1))
    		errors.add("email", new ActionError("error.email.vide"));
    		if ((ville == null) || (ville.length() < 1))
    		errors.add("ville", new ActionError("error.ville.vide"));
    		if ((pays == null) || (pays.length() < 1))
    		errors.add("pays", new ActionError("error.pays.vide"));
     
    		return errors;
    	}
    }
    GestClient.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    	public Boolean addClient(String rs,String ad,String t,String e,String v,String p){
    		try {
    			Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    			 session.beginTransaction();
    			 Client c=new Client();
     
    			 c.setRaisonSocial(rs);
    			 c.setAdresse(ad);
    			 c.setTel(t);
    			 c.setEmail(e);
    			 c.setVille(v);
    			 c.setPays(p);
     
    			 session.save(c);
    			 session.getTransaction().commit();
    			 return true;
    		} catch (Exception e1) {
    			return false;
    		}
     
    	 }
    ....
    struts.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
              "http://struts.apache.org/dtds/struts-config_1_2.dtd">
     
    <struts-config>
     <form-beans>
    	<form-bean name="cfp" type="presentation.str.AjoutClientForm"/>
     </form-beans>
     <global-forwards>
      <forward name="VueAjoutClient" path="/vues/AjouterClient.jsp"/>
     </global-forwards>
     <action-mappings>
    	<action 
    	 path="/cli" 
    	 type="presentation.str.AjoutClientAction" 
    	 scope="request"
    	 name="cfp" 
    	 validate="true"
    	 input="/vues/AjouterClient.jsp">
    	 <forward name="success" path="/vues/AjouterClient.jsp" redirect="false"/>
         <forward name="failure" path="/vues/AjouterClient.jsp"/>
         </action>
         </action-mappings>
     <message-resources parameter="ApplicationResources"/> 
    </struts-config>
    Pour la redondance de donnée j'ai deja reussi a detecter qu'il y a une redandance (pour raison social et email) mais ce que j'ai pas reussi a le faire c'est séparer entre une resaisie d'email et du raison social ?
    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour ce qui est de valider l'email, le seul moyen fiable est d'envoyer un email de validation à l'adresse indiquée et d'attendre que la personne réponde.

  3. #3
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    ok, j'ai pu résoudre le problème de l'email, mais j'ai un autre problème : lorsque il y a des erreurs je les affiche sur la meme page que le formulaire mais le problème que j'ai c'est que au premier lancement du formulaire il m'affiche que les champs sont vides alors que ma méthode validate doit s'éxécuter lors de la soumission du formulaire ?

    Merci pour votre aide

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans ce cas, tu as deux solutions.

    soit tu crées deux Actions liées au même formulaire : une qui initialise le formulaire avec un validate à false et une qui s'exécute à la soumission du formulaire avec un validate à true.

    soit tu choisis d'avoir une seule Action mais dans ce cas, il faut mettre l'attribut validate à false dans le mapping de l'Action et faire appel à la méthode validate dans l'Action comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	// Validation du formulaire
    	ActionMessages errors = form.validate(mapping,request);
    	if ( !errors.isEmpty() )
    	{
    		saveErrors(request,errors);
    		return mapping.getInputForward() ;
    	}
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    Merci pour vos réponse, je suis encore débutante : comment puis je créer deux actions liés au même formulaire ?

    et Pour la redondance comment puis je séparer la redondance entre celle de l'email et le nom de la société ? parce que j'ai tester sur la valeur de retour de la méthode add(true ou false) et je dis a l'utilisateur qu'il y une redondance, vous avez une idée ? merci

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    En fait, en regardant de plus près ton cas, il ne semble pas y avoir de raison que tu aies une Action d'initialisation du formulaire.
    La première fois que tu affiches la page, les champs doivent bien être tous vides ?
    Si c'est bien le cas, tu ne devrais pas avoir de problème pour afficher cette page la première fois.
    Il faut simplement faire appel à la jsp AjouterClient.jsp.
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    mais je fais appel a cli.do, et j"ai toujours le meme problème

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu dois faire appel à cli.do seulement à la soumission du formulaire.
    Pour l'affichage du formulaire, il faut faire appel à la jsp AjouterClient.jsp.
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    mais lorsque je l'affiche il me dit que la page est introuvable !!!

  10. #10
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Mais comment fais-tu appel à ta page ?
    Modératrice Java - Struts, Servlets/JSP, ...

  11. #11
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    je l'appel directement a partir de l'url ?

  12. #12
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Et quelle url as-tu saisi ?
    Modératrice Java - Struts, Servlets/JSP, ...

  13. #13
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    http://localhost:8080/GestionPlannin...uterClient.jsp

    Maintenant j'ai réussi à l'afficher mais comment puis je l'afficher a partir de cli.do sans exécuter validate avant la soumission du formulaire ?

    Autre question : c'est le controleur qui appelle la page jsp ou c'est le contraire ?

    Autre question : lorsque l'insertion passe correctement, je reviens sur la meme page jsp et j'affiche un message à l'utilisateur "votre client a été ajouté avec succès" mais mon problème c'est que mon formulaire me garde encore les text saisie par l'utilisateur alors que s'il l'insertion passe correctemnt il doit rester les champs ?

    Merci pour votre aide !!!

  14. #14
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    cli.do est le path de l'Action qui s'exécute à la soumission du formulaire.
    Tu ne dois donc pas y faire appel pour afficher la page contenant le formulaire.
    Si vraiment tu tiens à faire appel à un .do, tu peux définir un path dans le struts-config.xml qui redirigera directement sur la page jsp sans exécuter d'Action comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <action path="/ajouterClient" forward="/vues/AjouterClient.jsp"/>
    Et ensuite saisir l'url suivante :
    http://localhost:8080/GestionPlanning/ajouterClient.do
    Modératrice Java - Struts, Servlets/JSP, ...

  15. #15
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    Mais normalement je dois avoir un seul controleur ?

    Autre question : lorsque l'insertion passe correctement, je reviens sur la meme page jsp et j'affiche un message à l'utilisateur "votre client a été ajouté avec succès" mais mon problème c'est que mon formulaire me garde encore les text saisie par l'utilisateur alors que si l'insertion passe correctemnt il doit faire un RESET à tous champs ?

    Mais une question importante : normalement j'ai une application qui contient des client, projet, ressource..., toutes ces entités je peux les modifier, ajouter, supprimer donc a chacune je dois définir un controleur ou un seul controleur pour toutes mes pages ? quelle est la première page que je dois appelé ?


    Merci pour votre aide !!!

  16. #16
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Alors, dans le cas où tu veux faire plusieurs actions (ajouter, modifier, supprimer) sur un même formulaire, je te conseille d'utiliser une LookupDispatchAction.

    Ainsi, dans cette LookupDispatchAction, tu peux implémenter une méthode, que tu peux par exemple appeler init, qui fera juste un forward vers la page AjouterClient.jsp, et les méthodes add, delete et modify :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    public class AjoutClientAction extends LookupDispatchAction
    {
       public ActionForward init(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception
       {
    	return mapping.findForward("success") ;
       } 
       public ActionForward add(
    			ActionMapping map,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response) throws Exception {
     
    		GestClient gc = new GestClient();
     
    		String soc = ((AjoutClientForm) form).getRaisonSocial();
    		String adr = ((AjoutClientForm) form).getAdresse();
    		String tel = ((AjoutClientForm) form).getTel();
    		String email = ((AjoutClientForm) form).getEmail();
    		String ville = ((AjoutClientForm) form).getVille();
    		String pays = ((AjoutClientForm) form).getPays();
     
    		ActionErrors errors = new ActionErrors();
    	            ActionError newError = null;
     
            	    Boolean t= gc.addClient(soc, adr, tel, email, ville, pays);
            		if(t) return map.findForward("success");
            		else {
    	            	newError = new ActionError("errors.doublons.Database");
    	            	errors.add(ActionErrors.GLOBAL_ERROR, newError);
     
    	            	saveErrors(request, errors);
    	            	return  map.findForward("failure");
            		}
       }
       public ActionForward modify(
    			ActionMapping map,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response) throws Exception {
       ...
       }
       public ActionForward delete(
    			ActionMapping map,
    			ActionForm form,
    			HttpServletRequest request,
    			HttpServletResponse response) throws Exception {
       ...
       }
       protected Map getKeyMethodMap()
       {
          Map map = new HashMap();
          map.put("init", "init");
          map.put("button.add", "add");
          map.put("button.delete", "delete");
          map.put("button.modify", "modify");
          return map;
       }
    }
    Dans le struts-config.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <action 
    	 path="/cli" 
    	 type="presentation.str.AjoutClientAction" 
    	 parameter="methode"
    	 scope="request"
    	 name="cfp" 
    	 validate="true"
    	 input="/vues/AjouterClient.jsp">
       <forward name="success" path="/vues/AjouterClient.jsp" redirect="true"/>
       <forward name="failure" path="/vues/AjouterClient.jsp"/>
    </action>
    Ainsi, la première fois, pour afficher la page AjouterClient.jsp, il suffit de saisir l'url
    http://localhost:8080/GestionPlannin...o?methode=init
    Modératrice Java - Struts, Servlets/JSP, ...

  17. #17
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    Normalement je dois avoir une page qui liste tous mes client, dans la quelle il ya les bouttons ajouter/modifier/supprimer et a chaque fois je reviens vers la pages liste client ? est ce que le LookupDispatchAction sera util dans ce cas ?

    ajouterclient.jsp, modifierclient.jsp et supprimerclient.jsp ??? donc j'aurai des formulaire séparé ?

Discussions similaires

  1. Controle de validation Email
    Par luimême dans le forum ASP.NET
    Réponses: 4
    Dernier message: 12/11/2007, 13h45
  2. [Javascript] Validation soumission d'un formulaire
    Par nico33307 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 15h05
  3. Réponses: 6
    Dernier message: 05/07/2005, 16h33
  4. Envoie de EMail avec un formulaire
    Par LibrairieSI dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/02/2005, 14h31
  5. validation d'un controle dans un formulaire
    Par marjo20 dans le forum IHM
    Réponses: 5
    Dernier message: 10/10/2004, 23h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo