FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 17-03-2013 13:21:17

Lionel
Membre
Lieu : France
Inscription : 26-05-2010
Messages : 47
Site Web

[Résolu] Lieu dans Inscription

Bonjour,

hier, j'ai modifié un peu le champ "Lieu" dans les pages du Forum.

J'ai renommé celui-ci en "Région" et modifié le input en select avec les régions prédéfinies pour éviter de taper sa région à la main.

J'ai donc modifié le code dans la page profile.php | viewtopic.php | register.php ainsi que que le champ location de la bdd.

Au niveau du profile aucun souci lors de l'entrée dans la base, tout se passe bien.

Par contre j'ai rajouté le champ location dans register pour qu'il s'affiche à l'inscription, et là j'ai un souci au niveau de l'entrée dans la base.

L'inscription se déroule bien, mais il ne prend pas la valeur du select dans la bdd mais il insère un 0.

Mon champ location dans la bdd est en VARCHAR (200)

Voici le code dans register.php que j'ai rajouté :

//region :
$location = round($_POST['location'], 1);
// fin region

(Je pense que le problème vient du code ci-dessus)

// Add the user
$db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit, anniversairej, anniversairem, anniversairea, anniversaire_enabled, age_enabled, sexe, location) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$db->escape($email1).'\', '.$email_setting.', '.$timezone.' , '.$dst.', \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.', '.$anniversairej.', '.$anniversairem.', '.$anniversairea.', '.$anniversaire_enabled.', '.$age_enabled.', '.$sexe.', '.$location.')') or error('Unable to create user', __FILE__, __LINE__, $db->error());
<!--mod region -->
<div class="inform">
<fieldset>
<legend><?php echo $lang_register['Define Region'] ?></legend>
<div class="infldset">
<label><?php echo $lang_register['Region'] ?><br /></label>
<select name="location">
<option value="..." selected="selected">...</option>
<option value="Ain"><?php echo $lang_register['Ain'] ?></option>
<option value="Aisne"><?php echo $lang_register['Aisne'] ?></option>
<option value="Allier"><?php echo $lang_register['Allier'] ?></option>
<option value="Alpes-de-Haute-Provence"><?php echo $lang_register['Alpes-de-Haute-Provence'] ?></option>
<option value="Hautes-Alpes"><?php echo $lang_register['Hautes-Alpes'] ?></option>
<option value="Alpes-Maritimes"><?php echo $lang_register['Alpes-Maritimes'] ?></option>
<option value="Ardeche"><?php echo $lang_register['Ardeche'] ?></option>
<option value="Ardennes"><?php echo $lang_register['Ardennes'] ?></option>
...... (je ne mets pas tout le code volontairement car trop long)
</select>
</div>
</fieldset>
</div>
<!--fin mod region -->

Voilà, si quelqu'un a une idée sur le problème. huh


Chat-IRC.fr - Communauté de Chat IRC ! Tchat 100% Gratuit sans inscription ! Dialogue en direct, discussions et rencontres...

Hors ligne

#2 18-03-2013 13:17:17

Lionel
Membre
Lieu : France
Inscription : 26-05-2010
Messages : 47
Site Web

Re : [Résolu] Lieu dans Inscription

Bonjour,

je viens d'essayer différents tests avec ces codes :

$location = isset($_POST['location']) ? pun_trim($_POST['location']) : '';
$location = pun_trim($_POST['location']);
$location = $_POST['location'];

J'ai également essayer en ajoutant '.$db->escape($location).' au lieu de '.$location.' dans la requete INSERT

Sans succès... Ils me renvoient : "unable to create user"

hmm

Dernière modification par Lionel (18-03-2013 13:21:56)


Chat-IRC.fr - Communauté de Chat IRC ! Tchat 100% Gratuit sans inscription ! Dialogue en direct, discussions et rencontres...

Hors ligne

#3 18-03-2013 14:26:37

fanf73
Wik-wiki
Lieu : Lyon
Inscription : 12-09-2006
Messages : 4 432
Site Web

Re : [Résolu] Lieu dans Inscription

Bonjour,

Dans ce genre de cas de figure, activer le mod DEBUG peut te donner beaucoup d'informations : http://fluxbb.fr/aide/doku.php?id=fluxb … _l_activer


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#4 18-03-2013 18:15:47

Lionel
Membre
Lieu : France
Inscription : 26-05-2010
Messages : 47
Site Web

Re : [Résolu] Lieu dans Inscription

Bonjour fanf73,

j'ai activé le mode debug, malheureusment il ne m'affiche pas d'erreur puisque l'entrée dans la base se fait bien pour le 1er code.

Par contre, pour les autres codes que j'ai testé. Il m'affiche ceci :

Line: 196

FluxBB reported: Unable to create user

Database reported: Champ 'Haute' inconnu dans field list (Errno: 1054)

Mais je ne comprend pas pourquoi il me sort cette erreur huh
J'ai du loupé quelque chose...


Chat-IRC.fr - Communauté de Chat IRC ! Tchat 100% Gratuit sans inscription ! Dialogue en direct, discussions et rencontres...

Hors ligne

#5 18-03-2013 18:54:39

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : [Résolu] Lieu dans Inscription

Bonjour,

En plus du mode DEBUG, il serait bon d'activer également le mode "Voir Requêtes" qui permet de visualiser toutes les requêtes, donc, celle qui ne fonctionne pas.
Toujours dans le fichier common.php :

//[modif oto] Ajout des constantes de debug
// N'ACTIVEZ PAS cela sur un environnement de production !
//Activez le mode DEBUG en enlevant // du début de la ligne ci-dessous
define('PUN_DEBUG', 1);
//Ceci permettra d'afficher en bas de page toutes les requêtes exécutées
//en enlevant // du début de la ligne ci-dessous
define('PUN_SHOW_QUERIES', 1);

Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#6 18-03-2013 19:12:51

Lionel
Membre
Lieu : France
Inscription : 26-05-2010
Messages : 47
Site Web

Re : [Résolu] Lieu dans Inscription

Bonjour Otomatic,

j'ai essayé avec ton explication.

Voici le résultat :

Line: 196

FluxBB reported: Unable to create user

Database reported: Champ 'Allier' inconnu dans field list (Errno: 1054)

Failed query: INSERT INTO fluxbb_users (username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit, anniversairej, anniversairem, anniversairea, anniversaire_enabled, age_enabled, sexe, location) VALUES('test', 0, '922858d4763c61d4a727d15f61c887c7c9d9a542', 'elektro@bavardages.org', 1, 1 , 0, 'French', 'Air', 1363626414, '78.242.169.106', 1363626414, 1, 1, 2013, 0, 0, 1, Allier)

Donc là on voit bien qu'il prend la valeur de mon champ select qui est "Allier" qui doit aller dans le champ location de la bdd qui ici est correct.

Mais il me sort : "Unable to create user"

Je n'y comprend rien...

Le souci vient du code suivant :

$location = pun_trim($_POST['location']);

J'en suis sûr à 90% mais je vois pas comment régler le problème huh


Chat-IRC.fr - Communauté de Chat IRC ! Tchat 100% Gratuit sans inscription ! Dialogue en direct, discussions et rencontres...

Hors ligne

#7 18-03-2013 19:19:01

Lionel
Membre
Lieu : France
Inscription : 26-05-2010
Messages : 47
Site Web

Re : [Résolu] Lieu dans Inscription

Problème résolu.

J'avais oublié le db->escape pour le champ location dans la requête...

voici la solution qui fonctionne :

// Add the user
$db->query('INSERT INTO '.$db->prefix.'users (username, group_id, password, email, email_setting, timezone, dst, language, style, registered, registration_ip, last_visit, anniversairej, anniversairem, anniversairea, anniversaire_enabled, age_enabled, sexe, location) VALUES(\''.$db->escape($username).'\', '.$intial_group_id.', \''.$password_hash.'\', \''.$db->escape($email1).'\', '.$email_setting.', '.$timezone.' , '.$dst.', \''.$db->escape($language).'\', \''.$pun_config['o_default_style'].'\', '.$now.', \''.get_remote_address().'\', '.$now.', '.$anniversairej.', '.$anniversairem.', '.$anniversairea.', '.$anniversaire_enabled.', '.$age_enabled.', '.$sexe.', \''.$db->escape($location).'\')') or error('Unable to create user', __FILE__, __LINE__, $db->error());

Dernière modification par Lionel (18-03-2013 19:20:11)


Chat-IRC.fr - Communauté de Chat IRC ! Tchat 100% Gratuit sans inscription ! Dialogue en direct, discussions et rencontres...

Hors ligne

Pied de page des forums