[RESOLU] Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Re: Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

par gabinou » 27 avr. 2022, 14:10

J'ai vérifié avec mon hébergeur, effectivement je ne peux pas utilisé ma BDD à l'extérieur car je suis sur un mutualisé pour une question de sécurité

Re: Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

par @rthur » 27 avr. 2022, 13:02

Ce message d'erreur indique que PHP n'arrive pas à se connecter à ta BDD à distance, à priori car il ne trouve pas le serveur SQL que tu as indiqué.

Vérifie avec l'hébergeur de ta bdd si elle est bien accessible depuis une connexion distante (la configuration par défaut c'est souvent bloqué) et demande lui ce que tu dois indiquer comme adresse (IP ou domaine) que tu mettras dans ta variable {$servname}

Vérifie aussi avec l'hébergeur qui héberge ton script PHP qu'il autorise bien les connexions SQL sortante (port 3306) car même si c'est plus rare, ça peut aussi être bloqué à ce niveau.

Erreur : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

par gabinou » 27 avr. 2022, 09:15

Bonjour,
J'ai une erreur quand je relis ma BDD ( hébergé sur mon site perso) au formulaire codé en PHP sur un site WordPress relié à une api SOAP ( hébergé par mon prestataire)
J'avais effectué ce test sur un formulaire sur mon hébergement perso et l'enregistrement des données se faisait bien :-(
Est ce le faite que la BDD sois hébergée ailleurs que le site ? ou y'a t'il vraiment une erreur dans mon site en dehors des sécurité PHP que je n'ai pas encore mise pour le formulaire ( sauf que grâce à cette api, le formulaire se remplis directement mise à part la commande et les commentaires et aucune modification possible mise à part l'adresse de livraison )
Je suis débutante en PHP

Code : Tout sélectionner

<?php /* Template Name: ifce */ ?> <?php get_header(); ?> <div class="row pb_3per page"> <div class="small-12 large-8 columns"> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php if (have_posts()) { while (have_posts()): the_post(); ?> <?php get_template_part('template-parts/content', 'page'); ?> <?php include get_template_directory().'/custom-part-content-supp.php' ?> <div> <fieldset class="fieldset"> <legend>Commande de kits génomique</legend> <!-- mise en place de la Bdd ( essai sur hébergement perso pour sauvegarde des données)--> <?php $servname = "gabriellre665.mysql.db"; $dbname = ""; $user = ""; $pass = ""; $identifiant = $_POST['identitficateur']; $nom = $_POST['nom']; $prenom = $_POST['prenom']; $adresse = $_POST['street']; $ville = $_POST['city']; $cp = $_POST['postal']; $complementAdresse = $_POST['street2']; $mail = $_POST['email']; $fixe=$_POST['tel']; $portable=$_POST['phone']; $kit=$_POST['number-kits']; $tube=$_POST['number-tubes']; $aiguille=$_POST['number-aiguilles']; $adaptateur=$_POST['number-adaptateur']; $cartonSmall=$_POST['number-small']; $cartonBig=$_POST['number-big']; $etiquetteChronopost=$_POST['number-chronospost']; $enveloppeBulle =$_POST['number-enveloppe']; $commentaire=$_POST['message']; try{ //on se connecte à la base de données $dbco = new PDO("mysql:host={$servname};dbname={$dbname}", $user, $pass); $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //$sth appartient à la classe PDOStatement $sth = $dbco->prepare(" INSERT INTO exemple(identifiant,nom,prenom,adresse,ville,codePostal,complementAdresse,mail,fixe,portable,kit,tube,aiguille,adaptateur,cartonSmall,cartonBig,etiquetteChronopost,enveloppeBulle,commentaire) VALUES (:identifiant,:nom, :prenom, :adresse, :ville, :cp, :complement, :mail,:fixe,:portable,:kit,:tube,:aiguille,:adaptateur,:cartonSmall,:cartonBig,:etiquetteChronopost,:enveloppeBulle,:commentaire) "); //La constante de type par défaut est STR $sth->bindValue(':identifiant', $identifiant); $sth->bindValue(':nom', $nom,PDO::PARAM_STR); $sth->bindValue(':prenom', $prenom,PDO::PARAM_STR); $sth->bindValue(':adresse', $adresse,PDO::PARAM_STR); $sth->bindValue(':ville', $ville,PDO::PARAM_STR); $sth->bindValue(':cp', $cp, PDO::PARAM_INT); $sth->bindValue(':complement', $complementAdresse,PDO::PARAM_STR); $sth->bindValue(':mail', $mail,PDO::PARAM_STR); $sth->bindValue(':fixe', $fixe); $sth->bindValue(':portable', $portable); $sth->bindValue(':kit', $kit,PDO::PARAM_INT); $sth->bindValue(':tube', $tube,PDO::PARAM_INT); $sth->bindValue(':aiguille', $aiguille,PDO::PARAM_INT); $sth->bindValue(':adaptateur', $adaptateur,PDO::PARAM_INT); $sth->bindValue(':cartonSmall', $cartonSmall,PDO::PARAM_INT); $sth->bindValue(':cartonBig', $cartonBig,PDO::PARAM_INT); $sth->bindValue(':etiquetteChronopost', $etiquetteChronopost,PDO::PARAM_INT); $sth->bindValue(':enveloppeBulle', $enveloppeBulle,PDO::PARAM_INT); $sth->bindValue(':commentaire', $commentaire,PDO::PARAM_STR); $sth->execute(); echo "Entrée ajoutée dans la table"; } catch(PDOException $e){ echo "Erreur : " . $e->getMessage(); } ?> <form method="post" action="" enctype="multipart/form-data" class="ifce"> <div class="ifce"> <div class="small-12 large-12 columns ifce-first"> <div class="small-12 large-6 columns"> <label for="identity-number">N° Identificateur</label> <input type="text" class="sg-input" id="identitficateur" name="identitficateur" required/> <div class="invalid-feedback"> Numéro inconnu </div> <div class="valid-feedback"> Numéro reconnu </div> </div> <div class="small-12 large-6 columns"> <label for="email">Email</label> <input readonly type="email" disabled="disabled" id="email" name="email" required/> </div> </div> <div class="small-6 large-6 columns"> <label for="nom">Nom</label> <input readonly type="text" disabled="disabled" id="nom" name="nom" required> </div> <div class="small-6 large-6 columns"> <label for="prenom">Prénom</label> <input readonly type="text" disabled="disabled" id="prenom" name="prenom" required> </div> <fieldset class="fieldset"> <legend>Adresse de livraison</legend> <div class="small-12 large-12 columns"> <label for="street">Adresse</label> <input type="text" disabled="disabled" id="street" name="street" required/> </div> <div class="small-12 large-12 columns"> <label for="street2">Complement adresse </label> <input type="text" disabled="disabled" id="street2" name="street2" /> </div> <div class="small-4 large-4 columns"> <label for="postal">Code Postal</label> <input type="text"disabled="disabled" id="postal" name="postal"maxlength="5" pattern="[0-9]{5}" title="5 chiffres" required/> </div> <div class="small-8 large-8 columns"> <label for="city">Ville</label> <input type="text"disabled="disabled" id="city" name="city" required/> </div> </fieldset> <div class="small-6 large-6 columns"> <label for="phone">Teléphone Portable</label> <input readonly type="text" disabled="disabled" id="phone" name="phone" /> </div> <div class="small-6 large-6 columns"> <label for="tel">Téléphone Fixe</label> <input readonly type="text" disabled="disabled" id="tel" name="tel" /> </div> <div class="small-12 large-12 columns"> <label for="kit">Kits </label><em>1 kit contient 1 sachet étanche,1 planche de 5 étiquettes,1 buvard</em> <!-- <input type="number" disabled="disabled" class="form-control" id="kit" name="kit" required/> --> <select class="sg-input either-required" name="number-kits" id="number-kits" disabled="disabled"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="20">20</option> <option value="50">50</option> <option value="100">100</option> <option value="150">150</option> <option value="200">200</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-4 large-4 columns"> <label for="tubes">Tubes</label> <!-- <input type="number" disabled="disabled" class="form-control" id="aiguilles" name="aiguilles" required/> --> <select class="sg-input either-required" name="number-tubes" id="number-tubes" disabled="disabled" > <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="20">20</option> <option value="50">50</option> <option value="100">100</option> <option value="150">150</option> <option value="200">200</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-4 large-4 columns"> <label for="aiguilles"> Aiguilles</label> <!-- <input type="number" disabled="disabled" class="form-control" id="aiguilles" name="aiguilles" required/> --> <select class="sg-input either-required" name="number-aiguilles" id="number-aiguilles" disabled="disabled" > <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="20">20</option> <option value="50">50</option> <option value="100">100</option> <option value="150">150</option> <option value="200">200</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-4 large-4 columns"> <label for="adaptateur">Adaptateur</label> <!-- <input type="number"disabled="disabled" class="form-control" id="adaptateur" name="adaptateur" required/> --> <select class="sg-input either-required" name="number-adaptateur" id="number-adaptateur" disabled="disabled" > <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-12 large-2 columns"> <label for="small-box">Petit carton </label> <!-- <input type="number" disabled="disabled" class="form-control" id="small-box" name="small-box" required/> --> <select class="sg-input either-required" name="number-small" id="number-small" disabled="disabled"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-12 large-3 columns"> <label for="big-box">Grand carton </label> <!-- <input type="number" disabled="disabled" class="form-control" id="big-box" name="big-box"required/> --> <select class="sg-input either-required" name="number-big" id="number-big" disabled="disabled"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-12 large-4 columns"> <label for="number-box">Etiquette Chronopost retour</label> <!-- <input type="number" disabled="disabled" class="form-control" id="small-box" name="small-box" required/> --> <select class="sg-input either-required" name="number-chronospost" id="number-chronospost" disabled="disabled"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-12 large-3 columns"> <label for="enveloppe-box">Enveloppe à bulles </label> <!-- <input type="number" disabled="disabled" class="form-control" id="small-box" name="small-box" required/> --> <select class="sg-input either-required" name="number-enveloppe" id="number-enveloppe" disabled="disabled"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> <div class="invalid-feedback"> Un de ces champs doit être rempli. </div> </div> <div class="small-12 large-12 columns"> <label for="file">Pièce(s) jointe(s)</label> <input type="file" name="files[]" disabled="disabled" multiple accept=".pdf"> </div> <div class="small-12 large-12 columns"> <label >Vos commentaires</label> <textarea disabled="disabled" id="message" rows="3" name="message" ></textarea> </div> <div class="small-12 large-12 columns"style="display:flex"> <div class="small-1 large-1 columns"> <input type="checkbox" id="rgpd" name="rgpd" required/> </div> <div class="small-12 large-12 columns"> <label for="rgpd"class="rgpd small-10 large-10 columns"> En cochant cette case, j’accepte <a href="https://www.laboratoire-labeo.fr/fr/politique-de-confidentialite/">la Politique de confidentialité </a>de ce site </label> </div> <br><br> </div> <br> <div class="small-12 large-3 columns float-right" > <input class="small-3 large-7 columns float-right submit" type="submit" disabled="disabled" name="valider" id="valider" value="Valider" /> </div> <br><br><br> </div> </form> </div> </fieldset> <?php endwhile; ?> <?php } ?> </main> </div> </div> <div class="small-12 large-4 column my_main_sidebar"> <?php include get_template_directory() . '/template-parts/main-sidebar.php' ?> </div> </div> <script> if (window.history.replaceState){ window.history.replaceState(null,null,window.location.href); } </script> <?php get_footer(); ?>