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

Requêtes MySQL Discussion :

Request parameter violated a constraint ? [MySQL-5.6]


Sujet :

Requêtes MySQL

  1. #1
    Membre chevronné
    Avatar de Skyxia
    Homme Profil pro
    Ingénieur réseau & sécurité
    Inscrit en
    Mai 2016
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur réseau & sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2016
    Messages : 359
    Billets dans le blog
    3
    Par défaut Request parameter violated a constraint ?
    Bonjour à tous !

    Me voilà confronter à une jolie erreur dans mon code ! Voici mon formulaire :

    http://hpics.li/d42e61a (je vous met un lien et pas directement l'image dû à sa grande taille)

    Lorsque j'appuie sur "Adresse de facturation" voici ce qu'il se passe :

    http://hpics.li/986edef

    J'ai utilisé Firebug afin de voir l'erreur en question et voici ce que ça retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    code 400
    message "Request parameter address_line1 value '60 Boulevard d'Halluin ' violated a constraint (Request parameter value '60 Boulevard d'Halluin ', does not match requirements '[\d \w \s \\p \-_\.,]+')"
    Je suis donc allez voir dans mes fichiers PHP à quoi correspondait tout ce bazar et voici ce que j'ai en ce qui concerne l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    * @POST("/add-address-book")
    * @param ParamFetcher $paramFetcher
    * @RequestParam(name="address_line1", requirements="[\d \w \s \\p \-_\.,]+", allowBlank=false,
    *  nullable=false, description="Address line1")
    (Bien entendu je n'ai pas que ces 3 lignes pour mon formulaire je vous met juste ce qui concerne l'erreur en question)

    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
     
    * @return Array Status of create address
    *
    * @ApiDoc(
    *  description="Add new address book",
    *  requirements={
     
    {
    *          "name"="address_line1",
    *          "dataType"="String",
    *          "requirement"="[\d \w \s \\p \-_\.,]+",
    *          "description"="Address line1"
    *       },
     
    },
    *  parameters={
    * {"name"="address_line1", "dataType"=""},
     
    } )
    Et un peu plus bas :

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    public function addAddressBookAction(ParamFetcher $paramFetcher)
        {
            $dataResponse = array();
     
            // Check token
            $userToken = $paramFetcher->get('user_token');
            $userId = $paramFetcher->get('user_id');
            $repo = $this->globalManager()->compteTokenRepo;
            $checkToken = $repo->checkToken($userToken, $userId);
     
            if ($checkToken) {
                $addressManager = $this->get('sm_rest.address.manager');
     
                $type = (int) $paramFetcher->get('type');
                $userId = (int) $paramFetcher->get('user_id');
     
                $compteRepo = $this->globalManager()->compteRepo;
                $user = $compteRepo->find($userId);
                $addressData = array(
                    'name' => $paramFetcher->get('name'),
                    'firstName' => $paramFetcher->get('first_name'),
                    'buildingTypology' => $paramFetcher->get('building_typology'),
                    'noWay' => $paramFetcher->get('no_way'),
                    'firstLine' => $paramFetcher->get('address_line1'),
                    'secondLine' => $paramFetcher->get('address_line2'),
                    'postcode' => $paramFetcher->get('postal_code'),
                    'longitude' => $paramFetcher->get('longitude'),
                    'latitude' => $paramFetcher->get('latitude'),
                    'ville' => $paramFetcher->get('city'),
                    'mobilePhone' => $paramFetcher->get('mobile_phone'),
                    'phone' => $paramFetcher->get('phone'),
                    'email' => $paramFetcher->get('email'),
                    'compagny' => $paramFetcher->get('compagny'),
                    'siret' => $paramFetcher->get('siret'),
                    'etat' => Configs::DEFAULT_ADDRESS_STATUS,
                    'type' => Configs::ADDRESS_TYPE_BOTH,
                    'cetat' => Configs::CARNET_ADDRESS_ETAT_INVALIDATE_GOOGLE,
                    'ctype' => Configs::CARNET_ADDRESS_TYPE_BOTH,
                    'compte' => $user
                );
     
                switch ($type) {
                    case Configs::CARNET_ADDRESS_ACTION_YES:
    // When user click yes
    // Create address book as Locataire/propriétaire
                        $carnetAddress = $addressManager->createCarnetAddress($addressData);
                        if ($carnetAddress['status']) {
                            if (is_array($carnetAddress['data']) && count($carnetAddress['data'])) {
                                $addressBook = array_shift($carnetAddress['data']);
                            } else {
                                $addressBook = $carnetAddress['data'];
                            }
                            $carnetAddressId = $addressBook->getIdCarnetAdresse();
                            $addressManager->updateRelationIdForAddressBook($carnetAddressId, $carnetAddressId);
                            $idCarnetAdresse = $addressBook->getIdCarnetAdresse();
                            $dataResponse = array(
                                'address_book_id' => $idCarnetAdresse,
                                'intervention_address' => array(
                                    'name' => $addressData['name'],
                                    'first_name' => $addressData['firstName'],
                                    'address' => $addressBook->getAdresseCompl(),
                                    'postal_code' => $addressBook->getAdresseCodePostale(),
                                    'city' => $addressBook->getAdresseVille(),
                                    'no_way' => $addressBook->getAdresseNum(),
                                    'address_line1' => $addressBook->getAdresseRue(),
                                    'address_line2' => $addressBook->getAdresseRueCompl(),
                                    'longitude' => $addressBook->getLongitude(),
                                    'latitude' => $addressBook->getLatitude(),
                                    'compagny' => $addressBook->getCompagny(),
                                    'siret' => $addressBook->getSiret()
                                )
                            );
                        } else {
                            $message = (isset($carnetAddress['message']) && $carnetAddress['message']) ? $carnetAddress['message'] : $this->globalManager()->__(Messages::CREATE_ADDRESS_FAILED);
                            return $this->setErrorResponse($message);
                        }
                        break;
     
                    case Configs::CARNET_ADDRESS_ACTION_NO:
    // When user click no
     
                        $interventionAddressInput = json_decode($paramFetcher->get('intervention_address'));
     
                        if (!empty($interventionAddressInput)) {
                            $interventionAddressData = array(
                                'name' => $interventionAddressInput->name,
                                'firstName' => $interventionAddressInput->first_name,
                                'buildingTypology' => $interventionAddressInput->building_typology,
                                'noWay' => '',
                                'firstLine' => $interventionAddressInput->address_line1,
                                'secondLine' => isset($interventionAddressInput->address_line2) ? $interventionAddressInput->address_line2 : '',
                                'longitude' => isset($interventionAddressInput->longitude) ? $interventionAddressInput->longitude : '',
                                'latitude' => isset($interventionAddressInput->latitude) ? $interventionAddressInput->latitude : '',
                                'postcode' => $interventionAddressInput->postal_code,
                                'ville' => $interventionAddressInput->city,
                                'compagny' => $interventionAddressInput->compagny,
                                'siret' => $interventionAddressInput->siret,
                                'mobilePhone' => $interventionAddressInput->mobile_phone,
                                'phone' => isset($interventionAddressInput->phone) ? $interventionAddressInput->phone : '',
                                'email' => $interventionAddressInput->email,
                                'cetat' => Configs::CARNET_ADDRESS_ETAT_INVALIDATE_GOOGLE,
                                'ctype' => Configs::CARNET_ADDRESS_TYPE_BOTH,
                                'compte' => $user
                            );
                            $fullAddress = (trim($addressData['noWay']) != '') ? trim($addressData['noWay']) . ' ' . trim($addressData['firstLine']) : trim($addressData['firstLine']);
                            $fullAddress = (trim($addressData['secondLine']) != '') ? $fullAddress . ' ' . trim($addressData['secondLine']) : $fullAddress;
                            $addressBookRepo = $this->globalManager()->carnetAddresseRepo;
                            $existedAddress = $addressBookRepo->findBy(array(
                                'adresseCompl' => $fullAddress,
                                'adresseCodePostale' => $addressData['postcode'],
                                'adresseVille' => $addressData['ville'],
                                'idCompte' => $user));
     
                            if (isset($existedAddress) && count($existedAddress)) {
                                $responseData = array(
                                    'status' => false,
                                    'message' => $this->globalManager()->__(Messages::EXIST_ADDRESS),
                                    'data' => $existedAddress
                                );
     
                                return $responseData;
                            }
    Quelqu'un voit-il d'où provient l'erreur et pourquoi ?

    Note : Si je met une autre adresse que celle présente sur l'image du formulaire, cela fonctionne Oo'

    Merci d'avance

    Cordialement, Skyxia.
    Images attachées Images attachées  

    Siberattaque : Attaque informatique par un hackeur sibérien.


    Je vous invite à consulter mes billets dans mon blog :
    Cisco IOS & Sécurité basique
    Audit réseaux dans un SI

    [Smartphone] [Android] 8 conseils pour vous sécuriser un minimum !

  2. #2
    Membre chevronné
    Avatar de Skyxia
    Homme Profil pro
    Ingénieur réseau & sécurité
    Inscrit en
    Mai 2016
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur réseau & sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2016
    Messages : 359
    Billets dans le blog
    3
    Par défaut
    Problème finalement résolu,

    Dans tous les paramètres contenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    requirements="[\d \w \s \\p \-_\.,]+"
    Il me fallait rajouter : ' a la suite pour donner ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    requirements="[\d \w \s \\p \-_\., ']+"
    Maintenant, je me pose quand même la question de savoir si le fait de rajouter une ' ne va pas créer de problème de sécurité liés aux injections SQL :/..

    Siberattaque : Attaque informatique par un hackeur sibérien.


    Je vous invite à consulter mes billets dans mon blog :
    Cisco IOS & Sécurité basique
    Audit réseaux dans un SI

    [Smartphone] [Android] 8 conseils pour vous sécuriser un minimum !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 'value violates unique constraint'
    Par miniBob dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 23/06/2009, 20h06
  2. [JBoss Portal] [bridgeJSF] request parameters
    Par ska_root dans le forum Portails
    Réponses: 0
    Dernier message: 14/04/2009, 14h16
  3. [Request][Parameter] valeur null
    Par nikoo_27 dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/02/2007, 16h09
  4. [JSP] Réinitialisation Request Parameter
    Par cmoa59 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 17/08/2006, 13h49
  5. violates loader constraints
    Par Alec6 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 22/07/2006, 16h49

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