none
Problème avec formulaire de commentaire RRS feed

  • Discussion générale

  • Bonjour,

    J’ai développé un site web en asp.net 4.0 et j’utilise Visual studio 2013 pour construire mes pages web.

    Mon problème est :

    J’ai une page web (Article.aspx) qui affiche un article en détail avec un formulaire ( <asp:FormView>) pour saisir un commentaire sur l’article ... je le teste en local sur ma machine, tout fonctionne bien, l’article afficher et les commentaires saisie s’enregistre dans la base donnée (Base Access 2013) et se montre dans la page au zone réserver aux commentaires.

    Par contre, lorsque je le mets sur le serveur en ligne (serveur hébergeur), ça ne marche pas.

    L’utilisateur remplit les champs nécessaire de formulaire et quand il clic sur le bouton de confirmation rien ne se produire (pas d’enregistrement dans la base de donnée ni message d’erreur se produise, si comme il n’a rien cliqué).

    Pourriez-vous m'expliquer si le problème au niveau de mes fichiers programme ou si au niveau de l’hébergeur.

    Je vous remercie par avance de l'aide et collaboration que vous voudrez bien m'apporter ...

     

    samedi 31 octobre 2015 09:44

Toutes les réponses

  • Bonjour, Sami Oue,

    Utilisez-vous la même base de données en local et sur le serveur?
    Si ce n'est pas le cas, configurez-vous correctement la chaîne de connection?
    La version du .NET Framework doit être la même sur le serveur que sur le local - 4.0, l'information en bas vous sera aussi utile: 

    CheckboxList and FormView not working on IIS remote server - ANTIXSS entry!

    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 2 novembre 2015 14:47
    Modérateur
  • Bonsoir, Teodora,

    oui j'utilise la même base données en local et sur le serveur (dans le dossier App_Data) et la chaine de connection bien configurer (aussi dans le web.config), j'ai verifier tout avant de pose la question de mon problème et j'ai verifier aussi de la version du .Net framwork sur le serveur c'est 4.0 et ce que j'utilise. Voila un extrait de mon code :

              
                <asp:SqlDataSource ID="DataSourceComment" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [IDCommentaire], [NomUtilisateur], [EmailUtilisateur], [CommentaireUtilisateur] FROM [Commentaires]" InsertCommand="INSERT INTO [Commentaires] ([NomUtilisateur], [EmailUtilisateur], [CommentaireUtilisateur]) VALUES (?, ?, ?)" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"  >
                    <InsertParameters>
                        <asp:Parameter Name="NomUtilisateur" Type="String" />
                        <asp:Parameter Name="EmailUtilisateur" Type="String" />
                        <asp:Parameter Name="CommentaireUtilisateur" Type="String" />
                    </InsertParameters>
                    </asp:SqlDataSource>
    
                <asp:FormView ID="FormView2" runat="server" DataKeyNames="IDCommentaire" DataSourceID="DataSourceComment" DefaultMode="Insert" Width="100%">
                    <InsertItemTemplate>
    
                    <div style=" width:100%;" dir="rtl">
                    <div class="login-row" dir="rtl">
                        <label>Nom</label>
                        <span class="spanetoile">*</span>
                        :
                        <asp:TextBox ID="TextBoxUserName" runat="server" class="txtUserName" text='<%# Bind("NomUtilisateur")%>'></asp:TextBox>  
                        <asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "TextBoxUserName" ID="RegularExpressionValidator3" ValidationExpression = "^[\s\S]{2,100}$" runat="server" ErrorMessage="<br>required characters allowed." CssClass="txtmessagerreur"></asp:RegularExpressionValidator>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="<br>Le nom ne doit pas être vide!?" ControlToValidate="TextBoxUserName" CssClass="txtmessagerreur" Display="Dynamic"></asp:RequiredFieldValidator>
    
                        
                    </div>
                    <div class="login-row" dir="rtl">
                        <label>Email </label>
                        <span class="spanetoile">*</span>
                        :
                        <asp:TextBox ID="TextBoxUserEmail" runat="server" class="txtEmail" maxlength="45" text='<%# Bind("EmailUtilisateur")%>'></asp:TextBox>  
                        <asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "TextBoxUserEmail" ID="RegularExpressionValidator2" ValidationExpression = "\S+@\S+\.\S{2,3}" runat="server" ErrorMessage="<br>required characters allowed." CssClass="txtmessagerreur"></asp:RegularExpressionValidator>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="<br>l'email ne doit pas etre vide!?" ControlToValidate="TextBoxUserEmail" CssClass="txtmessagerreur" Display="Dynamic"></asp:RequiredFieldValidator>
                                            
                    </div>
    
                    <div class="login-row" dir="rtl">
                        <label>Commentaire </label>
                        <span class="spanetoile">*</span>
                        :
                        <asp:TextBox ID="TextBoxUserComment" runat="server" class="txtCommentUser" TextMode="MultiLine" MaxLength="800" text='<%# Bind("CommentaireUtilisateur") %>' ></asp:TextBox>
                        <asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "TextBoxUserComment" ID="RegularExpressionValidator1" ValidationExpression = "^[\s\S]{5,800}$" runat="server" ErrorMessage="<br/>Minimum 5 characters and Maximum 800 characters allowed." CssClass="txtmessagerreur"></asp:RegularExpressionValidator>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="<br>le commentaire ne doit pas etre vide!?" ControlToValidate="TextBoxUserComment" CssClass="txtmessagerreur" Display="Dynamic"></asp:RequiredFieldValidator>
                                      
                    </div> 
    
                        </br>
                        <div class="login-functions">
                             <div class="number-of-char">max 800 caractère</div>
                            </br></br>                        
                            <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Envoyer" class="myButton"/>                        
                            <asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Annule" class="myButton"  />                        
                        </div>  
                                    
                        </div>
                    </InsertItemTemplate>
                    </asp:FormView>
    
    
    

    et dans web.config :


      <connectionStrings>
        <add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MonBD.mdb;Persist Security Info=True;Jet OLEDB:Database Password=*****" providerName="System.Data.OleDb"/>  
      </connectionStrings>
    

    et toujours marche sur mon machine et sur le serveur ne poste pas le commentaire c'est comme pas de validation meme pas de message d'erreur.

    merci bien de votre reponse et aide.

    Sami

    lundi 2 novembre 2015 22:44
  • Bonjour,

    Une petite remarque un peu hors sujet pour commencer : sur .Net les paramètres sont plus difficiles à passer sous Access que par exemple sous SQL Server, car Access ne reconnaît pas de paramètres nommés, il faut impérativement respecter l'ordre.

    Il serait intéressant de tester une écriture avec ADO.Net, qui permettrait peut-être d'en apprendre plus. On aurait peut-être une chance de situer si on a un problème avec l'objet de connexion, avec l'objet de commande, ou à un autre niveau.

    Par ailleurs je soupçonne qu'il serait judicieux de s'intéresser aux contraintes d'intégrité des bases : l'utilisateur est-il supposé exister dans une table des utilisateurs, par exemple ?

    Une gymnastique que je suggèrerais bien est de récupérer le code de la requête, y remplacer les paramètres par leurs valeurs, et de tenter d'exécuter ça directement dans Access pour voir la réaction. Encore que je dise ça plutôt pour ne pas oublier les pistes habituelles, puisqu'on s'attend à ce que le code de la requête soit le même sur les deux machines.

    Et en dehors de ça, bien évidemment, faire le tour de toutes les gestions d'erreur (notamment ce qui ressemble à try...catch) et voir si le serveur tient un log qui permettrait d'en apprendre plus.

    Au niveau des pare-feux quelquefois on peut obtenir des informations sur les communications.

    Sous Windows il y a une source d'informations qu'on oublie souvent, c'est l'observateur d'événements, dans le panneau de configuration (outils d'administration).

    Accessoirement, faciliter la sortie de ce guêpier fait partie des avantages qu'on cite couramment des couches d'abstraction pour la gestion de données.

    Bien entendu, on a commencé par vérifier que l'utilisateur connecté avait les droits pour écrire dans la table.

    • Modifié Gloops mardi 23 février 2016 16:46
    mardi 23 février 2016 16:41