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

jQuery Discussion :

verification avec de l'ajax


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut verification avec de l'ajax
    Bonjour, je me présente christophe développeur web dans une agence de com et j'ai un gros soucis...
    Voici le contexte, j'ai repris un projet de site de vente. On me demande de le debugger et d'y apporté des modifications. Et l'une de ces modifications se situe quand on passe commande... En gros mon soucis c'est qu'une personne arrive a passé commande sans rentrer d'adresse... Alors qu'il y a une sécu en js... Bon sa a l'air de passé a travers :/ Le site a été développé avec jelix 1.1.
    voici les source:

    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
    $("#confirmation_button_com").click(function () {
     
        var panier_livraison = $("#confirmation_button_com").attr("numero_panier");
        var adresse_livraison = $("#adresse_livraison").val();
        adresse_livraison = jQuery.trim(adresse_livraison);
        var cp_livraison = $("#cp_livraison").val();
        cp_livraison = jQuery.trim(cp_livraison);
        var ville_livraison = $("#ville_livraison").val();
        ville_livraison = jQuery.trim(ville_livraison);
        var pays_livraison = $("#pays_livraison").val();
        var telephone_livraison = $("#telephone_livraison").val();
        telephone_livraison = jQuery.trim(telephone_livraison);
        var portable_livraison = $("#portable_livraison").val();
        portable_livraison = jQuery.trim(portable_livraison);
        urlLivraison = jurl_portail_panier_updatelivraisonpanier;
        urlLivraison += "?numero_panier=" + panier_livraison + "&adresse=" + adresse_livraison + "&code_postal=" + cp_livraison + "&ville=" + ville_livraison + "&pays=" + pays_livraison + "&telephone=" + telephone_livraison + "&portable=" + portable_livraison;
     
         $.getJSON(urlLivraison, function (data1) {
            var success = data.success;
     
            if (success == 'false') {
                return false;
            }
     
            var adresseLivraisonPanier = data.adresseLivraisonPanier;
            $("#adresse_livraison").val(adresseLivraisonPanier.adresse);
            $("#cp_livraison").val(adresseLivraisonPanier.code_postal);
            $("#ville_livraison").val(adresseLivraisonPanier.ville);
            $("#pays_livraison").val(adresseLivraisonPanier.numero_pays);
            $("#telephone_livraison").val(adresseLivraisonPanier.telephone);
            $("#portable_livraison").val(adresseLivraisonPanier.portable);
            var recap_address = "";
            recap_address += adresseLivraisonPanier.adresse + "<br />";
            recap_address += adresseLivraisonPanier.code_postal + "&nbsp;";
            recap_address += adresseLivraisonPanier.ville + "<br />";
            recap_address += adresseLivraisonPanier.pays;
            $("#recap_address").empty();
            $("#recap_address").append(recap_address);
     
     
         var panier_facturation = $("#confirmation_button_com").attr("numero_panier");
         urlConfirmation = jurl_portail_panier_confirmerpanier;
         urlConfirmation += "?numero_panier=" + panier_facturation;
     
        $.getJSON(urlConfirmation, function (data) {
            if (data.ok == 0) {
                alert('Une erreur s\'est produite. La commande n\'a pas pu être totalement validée. Veuillez réessayer svp');
                return false;
            }
            $("#etape_livraison").attr("style", "display:none");
            $("#etape_confirmation").attr("style", "display:none");
    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
    function confirmerPanier() {
            $rep = $this->getResponse('json');
     
            $commandes = array();
     
            if (isset($_SESSION["panier"])) {
                $rDao = jDao::get("dressingenligne~panier");  
                foreach($_SESSION["panier"] as $k => $pan) {
                    // Calcul total panier
                    $listeProduit = Panier::listeProduitsDansPanier($pan['numero_panier']);
                    $prix = 0;
                    foreach($listeProduit as $produit) {
                        if (count($produit["produit"]) > 0) {
                            $prix+= $produit['produit']["prix"];
                        }
                    }
                    $prix = round($prix / 1.196, 2);
     
                    $ret = Panier::confirmerPanier($pan["numero_panier"]);
                    if ($ret === true) {
                        $commandes[] = array(
                            'numcom' => date('ymd').'-'.$pan['numero_panier'],
                            'montant' => $prix
                        );
                        unset($_SESSION['panier'][$k]);
                    }
                }
            }
     
            $ok = 1;
            if (count($_SESSION['panier']) < 0) {
                $ok = 0;
            }
            $rep->data = array(
                'ok' => $ok,
                'commandes' => $commandes
            );
     
            return $rep;
        }
    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
    function updateLivraisonPanier() {
            $rep = $this->getResponse('json');
     
            $numero_panier = trim($this->param('numero_panier'));
            $adresse = trim($this->param('adresse'));
            $code_postal = trim($this->param('code_postal'));
            $ville = trim($this->param('ville'));
            $pays = trim($this->param('pays'));
            $telephone = trim($this->param('telephone'));
            $portable = trim($this->param('portable'));
     
            $ok = true;
            if (!$numero_panier || $numero_panier == '') {
                $ok = false;
            }
            if ($adresse == '' || $code_postal == '' || $ville == '' || $pays == '' || $telephone == '') {
                $ok = false;
            }
            if (!preg_match('/^\d+$/', $code_postal)) {
                $ok = false;
            }
            if (!preg_match('/^\d{10}$/', $telephone)) {
                $ok = false;
            }
            if ($ok !== true) {
                $rep->data = array('success' => 'false');
                return $rep;
            }
     
            Panier::updateLivraisonPanier($numero_panier,
                                      $adresse,
                                      $code_postal,
                                      $ville,
                                      $pays,
                                      $telephone,
                                      $portable
                                      );
            $adresseLivraisonPanier = Panier::getAdresseLivraisonPanier($numero_panier);
            //$_SESSION["adresseLivraison"] = $adresseLivraisonPanier;
            $rep->data = array("numero_panier"=>$numero_panier,"adresseLivraisonPanier"=>$adresseLivraisonPanier);
            return $rep;
      }
    Merci d'avance pour votre aide ^^
    Christophe

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    Citation Envoyé par crizz Voir le message
    ... Alors qu'il y a une sécu en js... Bon sa a l'air de passé a travers :/
    coté client, donc en javascript (*), il n'est question QUE de confort utilisateur, pour une véritable sécu, c'est coté SERVEUR que cela DOIT se passer.

    (*) que ce passe t-il si javascript est désactivé ?

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#confirmation_button_com").attr("numero_panier");

    Ta balise confirmation_button_com a un attribut numero_panier ? Sinon, il est préférable d'utiliser prop() au lieu de attr().

    Sinon, c'est bien de nous montrer ton code php, mais ça ne nous est pas d'une grande utilité notamment parce que tu ne nous montre pas ce que renvoie la requête AJAX et donc ce que reçoit ton script...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. Pb footer avec FireFox et Ajax
    Par coil1 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/04/2007, 16h58
  2. probleme avec asp.net ajax
    Par tarajji dans le forum ASP.NET
    Réponses: 3
    Dernier message: 26/03/2007, 10h43
  3. Pb provider perso avec Appli web ajax
    Par maveric dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/03/2007, 13h49
  4. [AJAX] 2 scripts AJAX (contenu dynamique)
    Par Mith55 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/11/2006, 22h14
  5. [Ajax] Petit problème avec PHP et AJAX
    Par cerede2000 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 06/05/2006, 17h58

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