jeudi 25 août 2016

Requête SQL avec incrément et contrainte

Création d'une table avec un identifiant unique qui s'incrémente automatiquement à chaque ajout (INSERT INTO), ajout de contraintes sur des clés étrangères, ici id_logement et id_saison. Les contraintes peuvent être placées à n'importe quel endroit dans la requête, du moment qu'elles sont entre les parenthèses.


CREATE TABLE tarif (id int IDENTITY(0,1) PRIMARY KEY, id_logement int NOT NULL, CONSTRAINT tarif1 FOREIGN KEY (id_logement) REFERENCES logement (id), id_saison int NOT NULL, CONSTRAINT tarif2 FOREIGN KEY (id_saison) REFERENCES saison (id), prix float, reduction float DEFAULT 0, limite int DEFAULT 1)

lundi 8 août 2016

"Je ne suis pas un robot" ou comment intégrer le reCaptcha de Google dans un site web asp.net

Récupérer les clés reCaptcha de votre site web :

https://www.google.com/recaptcha/

Appuyer sur le bouton Get reCaptcha.

Vous obtiendrez une clé du site, appelée dans la suite laclédusite, et une clé privée, appelée dans la suite lacléprivée.

Dans le fichier .aspx :

Dans le <head></head> :
<script src='https://www.google.com/recaptcha/api.js'></script>

Dans le <body></body> :
<asp:Label ID="captcha" runat="server"></asp:Label>

Dans le fichier .aspx.cs :

using System.Net;

protected void Page_Load(object sender, EventArgs e)

{
        if (!IsPostBack)
        {
               captcha.Text = 
                    "<div align=\"center\" style=\"margin:20px;\">" +
                    "<div class=\"g-recaptcha\" data-sitekey=\"laclédusite\"></div>" +
                    "</div>";
         }
}

A la fin de votre formulaire figure un bouton nommé Button1, dont l'événement OnClick est :

protected void Button1_Click(object sender, EventArgs e)
{
        string userResponse = Request.Params["g-recaptcha-response"];       
        string URI = "https://www.google.com/recaptcha/api/siteverify";
        string myParameters = "secret=lacléprivée&response=" + userResponse;
        using (WebClient wc = new WebClient())
        {
            wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            string HtmlResult = wc.UploadString(URI, myParameters);
            if (HtmlResult.IndexOf("\"success\": true") > -1)
            {
                     ....... définir ici le traitement à réaliser .........
            }
            else 
            {
                     Response.Write("alert('Vous êtes un robot, nous ne pouvons pas vous fournir le service demandé.');");
            }
       }
}