Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

tosca
2010-06-01 18:14:53

Eric a écrit:

Yes! Merci Tosca, tu m'as mis sur la voie ...

Comme quoi, un regard neuf... ;-)

Ah ? Tu m'en vois ravie.
J'ai à peine osé l'écrire tellement ça me semblait évident de commencer par regarder ça ;-)

Eric
2010-06-01 18:11:35

Yes! Merci Tosca, tu m'as mis sur la voie: C'était la clause WHERE de la requête qui n'était pas bonne.

Enfin, si mais j'avais simplement oublié la variable globale $user dans le préambule de la fonction. Du coup ma clause WHERE user_id = \''.$user['id'].'\';'; ne pouvait pas fonctionner.

Comme quoi, un regard neuf... ;-)

tosca
2010-06-01 17:57:45

Tu as fait un display de $query pour vérifier ?
Et pas de message d'erreur ?

Eric
2010-06-01 17:33:47

J'ai publié mes travaux sur SVN pour plus de facilité à la compréhension de mon problème. Le projet s'appelle NBM_Subscriber.

J'ai repris le code simplifié suggéré par Nicolas et j'y ai ajouté un "mouchard" sur la variable $_POST['NBM_Subscription']. A chaque submit de la page profile.php et modification de la valeur de $_POST['NBM_Subscription'], j'ai bien cette donnée transférée dans la fonction NBMS_Save_Profile() mais la requête en update de la base est sans effet.

Il y a une erreur, je le sais, je le sens... Mais elle doit être trop grosse pour que je la remarque :-/

Eric
2010-06-01 12:46:48

nicolas a écrit:

Je ne vais pas tellement faire avancer le schmilblick mais que $_POST['NBM_Subscription'] soit égal à true ou à false ta requête est toujours la même !

Oui, le code de mon post initial était détaillé pour "forcer" la valeur que peut prendre $_POST['NBM_Subscription'] à des fins de test. Effectivement, au final, ce n'est qu'une seule requête ;-)

Maintenant, cette requête ne se réalise pas quelque soit la valeur prise par $_POST['NBM_Subscription']. Je pense donc qu'il y a un problème au niveau du trigger pour que ma requête soit prise en compte lorsqu'on valide le formulaire du profil. Je me trompe?

tosca
2010-05-31 23:27:41

nicolas a écrit:

Je ne vais pas tellement faire avancer le schmilblick mais que $_POST['NBM_Subscription'] soit égal à true ou à false ta requête est toujours la même !

Donc le code peut s'écrire :
...

Merci, nicolas ... j'avais commencé à écrire la même chose et je me suis perdue en route dans les quotes ;-)

nicolas
2010-05-31 23:21:45

Eric a écrit:

Merci d'avance pour vos avis éclairés ^^

Je ne vais pas tellement faire avancer le schmilblick mais que $_POST['NBM_Subscription'] soit égal à true ou à false ta requête est toujours la même !

Donc le code peut s'écrire :

Code:

if (!empty($_POST['NBM_Subscription']) && in_array( $_POST['NBM_Subscription'], array('true', 'false')))
{
  $query = '
UPDATE '.USER_MAIL_NOTIFICATION_TABLE.'
  SET enabled = \''.$_POST['NBM_Subscription'].'\'
  WHERE user_id = \''.$user['id'].'\';';

  pwg_query($query); 
}
Eric
2010-05-31 22:08:37

Bonjour à tous / toutes.

J'ai quelques difficultés à utiliser le trigger save_profile_from_post présent dans profile.php. Je pense ne pas me gourer en disant qu'il permet d'enregistrer des informations supplémentaires aux données d'un profil.

J'ai ajouté une donnée supplémentaire dans le formulaire du profil par le biais d'un préfiltre de template (set_prefilter()). Comme pour les autres données de ce formulaire, la valeur affichée est celle sauvée dans une table de la base de données pour le profil considéré.

Mon problème est que j'ai beau modifier la valeur de cette nouvelle donnée, elle ne s'enregistre pas en base de données. Pourtant la variable $_post() est bien initialisée. Alors je me pose des question sur mon emploi correct ou pas du trigger save_profile_from_post.

Voici mon code:

Code:

add_event_handler('save_profile_from_post', 'NBMS_Save_Profile');

function NBMS_Save_Profile()
{
  global $conf;
  
  if ($_POST['NBM_Subscription'] == 'true')
  {
  $query = '
UPDATE '.USER_MAIL_NOTIFICATION_TABLE.'
  SET enabled = \'true\'
  WHERE user_id = \''.$user['id'].'\';';

  pwg_query($query);
  }
  elseif ($_POST['NBM_Subscription'] == 'false')
  {
    $query = '
UPDATE '.USER_MAIL_NOTIFICATION_TABLE.'
  SET enabled = \'false\'
  WHERE user_id = \''.$user['id'].'\';';

    pwg_query($query);
  }
}

Merci d'avance pour vos avis éclairés ^^

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2025 · Contact