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

Langage PHP Discussion :

Comment mettre une condition au niveau du Select (form) et comment crypter en PDO ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut Comment mettre une condition au niveau du Select (form) et comment crypter en PDO ?
    Bonjour.

    1- Au fait, je souhaiterais attribuer une valeur à la variable $country de sorte à ce qu'elle contienne seulement les valeurs du "data-countryCode"
    de chaque option du formulaire Select ci-dessous c'est-à-dire exactement les Code "DZ, AD, AO, AI".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="countryCode" id="">
    <option data-countryCode="GB" value="44" Selected>UK (+44)</option>
    <option data-countryCode="US" value="1">USA (+1)</option>
    <optgroup label="Other countries">
    <option data-countryCode="DZ" value="213">Algeria (+213)</option>
    <option data-countryCode="AD" value="376">Andorra (+376)</option>
    <option data-countryCode="AO" value="244">Angola (+244)</option>
    <option data-countryCode="AI" value="1264">Anguilla (+1264)</option>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $phone = $_POST['phone'];
    2- Comment modifier la variable $phone de sorte à ce que s'ajoute à cette variable la valeur du "value"
    de chaque option du formulaire Select ci-dessus c'est-à-dire exactement les Code "213, 376, 244, 1264" + le $_POST['phone'] qui existait déjà ???

    3- Comment insérer en PDO le Hash en SHA-512 (1024 Bits) la $pwd ???
    Je l'ai fait en mettant dans INSERT INTO ....... VALUES (hash('sha512',?)) comme ci-dessous:
    Alors, pensez-vous que c'est correcte ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $pwd = $_POST['password'];
    $sql = "INSERT INTO tbl_users (fname, lname, pwd, email, phone, gender, is_active, utype, bdate)
    VALUES (?, ?, hash('sha512',?), ?, ?, ?, 'FALSE', 'USER', NOW())"; 
    dbQuery($sql,$fname,$lname,$pwd,$email,$phone,$gender);

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Pour ce qui est de ta première question, tu ne pourras pas récupérer la valeur de l'attribut data-countryCode via ton formulaire (seule la valeur de l'attribut value est transmise). Par contre, rien ne t'empêche de placer un tableau associatif dans ton code PHP qui fait correspondre un indicatif avec un "countryCode" de manière à pouvoir déduire le countryCode de l'indicatif.

    Je ne vois pas ce qui pose problème pour la deuxième question, c'est une simple concaténation de chaîne.

    Pour la troisième question, bien sur que non! Applique la fonction hash avant, mets le résultat dans une variable et puis passe la à ta requête.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Pour ce qui est de ta première question, tu ne pourras pas récupérer la valeur de l'attribut data-countryCode via ton formulaire (seule la valeur de l'attribut value est transmise). Par contre, rien ne t'empêche de placer un tableau associatif dans ton code PHP qui fait correspondre un indicatif avec un "countryCode" de manière à pouvoir déduire le countryCode de l'indicatif.
    Comment le faire svp à travers un exemple ???

    Citation Envoyé par CosmoKnacki Voir le message
    Pour la troisième question, bien sur que non! Applique la fonction hash avant, mets le résultat dans une variable et puis passe la à ta requête.
    Mais ainsi, l'utilisateur pourra-t-il modifier son Mot de Passe Hashé s'il le désire ET sans aucun problème ???

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    En fait je viens de me rendre compte que certains pays partagent le même indicatif, donc il n'est pas possible non plus d'utiliser un tableau associatif avec comme clefs les indicatifs et comme valeurs les codes pays.
    Le plus simple serait de changer le code html de manière à ce que l'attribut value contienne les deux informations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="countryCode" id="">
    <option data-countryCode="GB" value="GB_44" Selected>UK (+44)</option>
    <option data-countryCode="US" value="US_1">USA (+1)</option>
    <optgroup label="Other countries">
    <option data-countryCode="DZ" value="DZ_213">Algeria (+213)</option>
    <option data-countryCode="AD" value="AD_376">Andorra (+376)</option>
    <option data-countryCode="AO" value="AO_244">Angola (+244)</option>
    <option data-countryCode="AI" value="AI_1264">Anguilla (+1264)</option>
    ...
    Puis dans ton code php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($country, $indicatif) = explode('_', $_POST['countryCode']);
    Pour ce qui est du mot de passe, aucun problème, ça ne change rien du tout.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    Ok merci pour votre réponse.

    Mais COMMENT UTILISER le code PHP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($country, $indicatif) = explode('_', $_POST['countryCode']);
    Comment l’utiliser en Concaténation avec la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $phone = $_POST['phone'];
    pour que les indicatifs des pays soit juste devant les numéros que les utilisateurs vont rentrés ???

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    ben euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list($country, $indicatif) = explode('_', $_POST['countryCode']);
    $phone = $_POST['phone'];
    $complete_phone = $country.$phone
    ou alors j'ai pas compris la question.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Celira Voir le message
    ben euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list($country, $indicatif) = explode('_', $_POST['countryCode']);
    $phone = $_POST['phone'];
    $complete_phone = $country.$phone
    ou alors j'ai pas compris la question.
    Mais dans ce cas $complete_phone ne serait donc pas (par exemple) égale à DZ401661487 ??? En supposant que le Numéro de Téléphone de l'USER est 401661487 ???
    L'idéale ne serait pas de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list($country, $indicatif) = explode('_', $_POST['countryCode']);
    $phone = $_POST['phone'];
    $complete_phone = $indicatif.$phone
    ou alors j'ai pas compris la question.[/QUOTE]

    ???
    Puisque le but est de mettre juste devant les Numéros entrés de chaque Utilisateur l'Indicatif du pays du genre +213401661487 ce qui ferait la valeur de la variable $complete_phone.

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ah c'est l'indicatif que tu veux ? Dans ce cas, ton cas a l'air ok. (tu peux tester pour voir si le résultat te convient
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Mettre une condition au niveau de chaine de caractères
    Par deboo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/05/2010, 09h37
  2. Mettre une condition au niveau du GROUP BY
    Par Whattt dans le forum SQL
    Réponses: 4
    Dernier message: 14/11/2007, 17h26
  3. Réponses: 8
    Dernier message: 16/05/2007, 21h16
  4. Réponses: 3
    Dernier message: 03/05/2007, 11h06
  5. Réponses: 1
    Dernier message: 08/09/2006, 10h31

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