Connexion DB externe webform Drupal 7

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

je suis débutant sous drupal 7 et php. Je dois récupérer les données d'un webform et les mettre sur une DB externe très simple. L'externalisation des données doit se faire après le submit du formulaire.
J'ai alors créée un module qui a pour nom passerelle. Je n'ai pas modifié mon settings.php et je me connecte directement via le module. Bien sûr, je n'ai aucun résultat, quand je consulte ma DB sous PhpMyAdmin, aucune ligne ne se crée.

Voici mon code :

<?php

function webform_extra_form_alter(&$form, &$form_state, $form_id)
{
    //Nous allons submit les données du premier formulaire avec le NID 56
    //Pour modifier un autre node, il suffit de changer le webform_client_form dans le if en dessous
    if($form_id == 'webform_client_form_56')
    {
        $form['#submit'][] = 'webform_extra_submit';
        //on fait appel à la fonction qui externalise les données sur la DB externe
    }
}

function webform_extra_submit($form, &$form_state) {

    $external_db = array (
        'database' => 'blablabla',
        'username' => 'blablabla',
        'password' => 'blablabla',
        'host' => 'blablabla',
        'port' => '',
        'driver' => 'mysql',
        'prefix' => '',
    );
   
    Database::addConnectionInfo('bla', 'default', $external_db);
   
    //On switch sur la DB externe (pour switcher sur la DB drupal, ne rien mettre en param)
    db_set_active('bla');
   
   
    //Création adresse IP et ID de submit
    $ip=$_SERVER['REMOTE_ADDR']; //adresse IP d'où vient le submit
    $uid ="a".date('Y-m-d')."-".date("H:i:s"); //ajout date et heure à l'ID
    $uid .=substr(base64_encode(md5(rand())), 0, 5).""; //ajout valeur aléatoire à l'ID
   
   
   

        $civilite = $form_state['values']['civilite'];
        $nom = $form_state['values']['nom'];
        $prenom = $form_state['values']['prenom'];
        $adresse = $form_state['values']['adresse'];
        $cp = $form_state['values']['cp'];
        $ville = $form_state['values']['ville'];
        $portable = $form_state['values']['portable'];
        $tel = $form_state['values']['tel'];
        $email = $form_state['values']['email'];
   
   
       db_insert('folders')
        ->fields(array(
           
            'uid' => $uid,
            'ipadress' => $ipadress,
            'civilite' => $civilite,
            'nom' => $nom,
            'prenom' => $prenom,
            'adresse' => $adresse,
            'cp' => $cp,
            'ville' => $ville,
            'portable' => $portable,
            'tel' => $tel,
            'email' => $email,
     ))
     ->execute();

   
   
   

db_set_active();
}

Je pense que le problème vient soit de la gestion du module webform soit de ma connection à la DB... mais j'ai essayé avec le settings.php sans succès. Après, peut-être que je fais fausse route dès le départ !

Merci par avance pour votre aide !

Forum : 
Version de Drupal :