Page ajout groupe automatique [Réglé]
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Reprise du message précédent
J'ai abandonné un peux l'ajout du tpl je ne comprend pas comment faire pour que mon php appel le tpl. Alors j'ai ajouté le code javascript dans mon fichier php, si je l'ajoute avant <?php la page ne fonctionne pas par contre si je l'ajoute après ?> ca fonctionne mais il est traité trop tard la personne a le temps d'acceder a lexecution de mon code php avant de rediriger vers la page d'erreur de paiement.Si vous avez une solution simple, comme je l'ai dis c'est en attendant d'avoir un code php fonctionnel.
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Tu as créé un template, maintenant il faut l'afficher :
Code PHP :
$tpl = new FileTemplate('vip/vip.tpl'); $tpl->display();
Ce code suffit, tu n'as pas besoin d'indiquer le dossier 'templates'.
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Mais il reste un petit problème, le code javascript contenu dans mon tpl est traité en même temps que la page php logique me direz vous, mais comment faire pour que le code javascript soit exécuter avant que la page ne traite la demande d'accès VIP ?
Je vais sur ma page vip/vip.php je vois l'environnement phpboost ce charger, puis le titre de ma page mais pas le texte en echo que j'ai mis et ensuite je suis redirigé vers la page d'erreur de paiement, je recois le mail et l'utilisateur accède au groupe vip ca pause un petit problème. Une idée ?
Merci
PS : par contre j'ai des erreurs archivé concernant la page php
Code :
Avertissement : explode() expects parameter 2 to be string, array given
[0] /vip/vip.php:28
[0] /vip/vip.php:28 - explode(string, array)
[URL] /vip/vip.php
2015-12-11 10:47:28
Avertissement : explode() expects parameter 2 to be string, array given
[0] /vip/vip.php:50
[0] /vip/vip.php:50 - explode(string, array)
[URL] /vip/vip.phpÉdité par Victorien Le 11/12/2015 à 10h56
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
possible de donner la code complet (PHP+ TPL) ?
Comme dit plus haut dans ce cas précis il faudrait vérifier le paiement en PHP et non en JS car que le JS soit "bon" ou "mauvais" derrière le PHP d'enregistrement dans le groupe sera toujours traité car le JS n'envoie aucune donné au PHP pour dire si oui ou non le paiement a été bon ou pas.
En gros le code que Hipay vous a donné de mon point de vue ressemble à un code à mettre sur une page HTML qui redirige après validation seulement et uniquement sur la page PHP qui traite les enregistrement (ce qui n'est pas le cas ici).
Cordialement, janus57
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Code PHP :
<?php define('PATH_TO_ROOT', '..'); $id_vip_group = '1'; // ID du groupe VIP //Début du chargement de l'environnement require_once PATH_TO_ROOT . '/kernel/begin.php'; //Titre de la page define('TITLE', 'Bravo vous êtes maintenant un VIP'); //Haut de page require_once PATH_TO_ROOT . '/kernel/header.php'; $tpl = new FileTemplate('vip/vip.tpl'); $tpl->display(); $user = AppContext::get_current_user(); // Groupes de l'utilisateur $user_groups = PersistenceContext::get_querier()->select_single_row(DB_TABLE_MEMBER, array('user_groups'), 'WHERE user_id=:id', array( 'id' => $user->get_id() )); $user_groups = explode('|', $user_groups); if (!is_array($user_groups)) $user_groups = array(); // Si le membre n'est pas déjà VIP, on l'ajoute if (!in_array($id_vip_group, $user_groups)) $user_groups[] = $id_vip_group; // On re-sérialize maison $user_groups = implode('|', $user_groups); // MaJ DB PersistenceContext::get_querier()->update(DB_TABLE_MEMBER, array('user_groups' => $user_groups), 'WHERE user_id = :id', array('id' => $user->get_id())); // Membres du groupe VIP $group_users = PersistenceContext::get_querier()->select_single_row(DB_TABLE_GROUP, array('members'), 'WHERE id=:id', array( 'id' => $id_vip_group )); $group_users = explode('|', $group_users); if (!is_array($group_users)) $group_users = array(); // Si le membre 'apparait pas, on l'ajoute if (!in_array($id_vip_group, $group_users)) $group_users[] = $id_vip_group; // On re-sérialize maison $group_users = implode('|', $group_users); // MaJ DB PersistenceContext::get_querier()->update(DB_TABLE_GROUP, array('members' => $group_users), 'WHERE id = :id', array('id' => $id_vip_group)); // Envoi du mail $mail = new Mail(); $mail->set_sender('admin@site.com', MAIL::SENDER_ADMIN); // Expéditeur $mail->add_recipient($user->get_email()); // Destinataire $mail->set_subject('Groupe VIP'); $mail->set_content('Vous êtes maintenant un VIP'); AppContext::get_mail_service()->try_to_send($mail); //Bas de page require_once PATH_TO_ROOT . '/kernel/footer.php'; ?>
Et le code de mon tpl
Code HTML :
Édité par Victorien Le 11/12/2015 à 14h02
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
La première, où tu affiches le javascript (ton tpl).
Si le mec a payé, tu le rediriges (via le code JS de allopass) vers une seconde page, qui l'ajoute au groupe VIP et qui envoie un mail.
Si le mec n'a pas payé, tu peux le renvoyer vers une autre ou le laisser en plan
Édité par Dramaturge Le 11/12/2015 à 15h59
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Voila le code php qui fonctionne mais basé sur lapi précédente mais au moins ca fonctionne en attendant d'avoir le code sur la nouvelle api
Code PHP :
$RECALL = $_GET["RECALL"]; if( trim($RECALL) == "" ) { // La variable RECALL est vide, renvoi de l'internaute // vers une page d'erreur header( "Location: http://mondomaine.com/pages/erreur-de-paiement" ); exit(1); } // $RECALL contient le code d'accès $RECALL = urlencode( $RECALL ); // $AUTH doit contenir l'identifiant de VOTRE document $AUTH = urlencode( "***" ); /** * envoi de la requête vers le serveur AlloPAss * dans la variable $r[0] on aura la réponse du serveur * dans la variable $r[1] on aura le code du pays d'appel de l'internaute * (FR,BE,UK,DE,CH,CA,LU,IT,ES,AT,...) * Dans le cas du multicode, on aura également $r[2],$r[3] etc... * contenant à chaque fois le résultat et le code pays. */ $r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" ); // on teste la réponse du serveur if( substr( $r[0],0,2 ) != "OK" ) { // Le serveur a répondu ERR ou NOK : l'accès est donc refusé header( "Location: http://mondomaine.com/pages/erreur-de-paiement" ); exit(1); } /** * Le code est valide ! * on place un cookie appelé CODE_OK et qui vaut la valeur 1 * Ce cookie est valide jusqu'à ce que l'internaute ferme son navigateur * Dans les pages suivantes, il n'y aura plus qu'à tester l'existence du cookie * S'il existe, c'est que l'internaute est autorisé, * sinon on le renverra sur une page d'erreur */ setCookie( "CODE_OK", "1", 0, "/", ".mondomaine.com", false ); /** * Remplacez dans la ligne ci-dessus ".mondomaine.com" par le nom de domaine * de votre site! * Par exemple, si votre site est accessible à l'adresse : * http://perso.herbergeur.com/mapage * alors il faudra que vous mettiez ".herbergeur.com" * (n'oubliez pas le "." devant le nom de domaine !!) */
Pour avoir le AUTH de votre document il faut revenir sur l'ancienne version du site hipaymobile.
PS : j'ai une erreur (dans les archives de l'administration) a chaque fois que j'accède a ma page
Citation :
Avertissement : explode() expects parameter 2 to be string, array given
[0] /vip/vip.php:28
[0] /vip/vip.php:28 - explode(string, array)
[URL] /vip/vip.php
2015-12-11 10:47:28
Avertissement : explode() expects parameter 2 to be string, array given
[0] /vip/vip.php:50
[0] /vip/vip.php:50 - explode(string, array)
[URL] /vip/vip.php
[0] /vip/vip.php:28
[0] /vip/vip.php:28 - explode(string, array)
[URL] /vip/vip.php
2015-12-11 10:47:28
Avertissement : explode() expects parameter 2 to be string, array given
[0] /vip/vip.php:50
[0] /vip/vip.php:50 - explode(string, array)
[URL] /vip/vip.php
Voila merci pour votre aide
Édité par Victorien Le 13/12/2015 à 18h20
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Je reviens vers Dramaturge, pour savoir si il pouvait m'aidé a mettre a jour le script d'ajout dans le groupe VIP pour une compatibilité avec la version 5.0 ?
Merci beaucoup et bonne journée
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie