Co-registration et script PHP

Petit nouveau ! | 4 Messages

07 juin 2010, 10:34

Bonjour a tous,

Je souhaiterais utiliser la co-registration Dreamstore lors de l'inscription sur mon site, j'ai bien fait un petit script mais celui-ci ne semble pas fonctionner, est-ce que quelqu'un pourrait m'y aider svp ?
A savoir que les futurs membres seront avertis de la co registration.

Voici ce que j'ai tenté de faire dans mon fichier register.php

Code : Tout sélectionner

$uname = isset($_POST['uname']) ? $myts->stripSlashesGPC($_POST['uname']) : ''; $email = isset($_POST['email']) ? trim($myts->stripSlashesGPC($_POST['email'])) : ''; $url = "http://afflog08.dreamstore.ch/remote/newsletter.asp"; $r = new HttpRequest($url, HttpRequest::METH_POST); $affId = 32285; // fixe ? $r->addPostFields(array( 'affid' => $affId , 'email' => "$email", 'fname' => "$uname")); try { $httpRet = $r->send()->getBody(); } catch (HttpException $ex) { echo $ex; }
Ou mettre ceci dans mon fichier register.php dont voici le code :

Code : Tout sélectionner

<?php /* You may not change or alter any portion of this comment or credits of supporting developers from this source code or any supporting source code which is considered copyrighted (c) material of the original comment or credit authors. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * XOOPS Register * * See the enclosed file license.txt for licensing information. * If you did not receive this file, get it at http://www.fsf.org/copyleft/gpl.html * * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/ * @license http://www.fsf.org/copyleft/gpl.html GNU General Public License (GPL) * @package core * @since 2.0.0 * @author Kazumi Ono <[email protected]> * @version $Id: register.php 4126 2010-01-10 15:49:31Z trabis $ */ include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mainfile.php'; $xoopsPreload =& XoopsPreload::getInstance(); $xoopsPreload->triggerEvent('core.register.start'); xoops_loadLanguage('user'); xoops_load('XoopsUserUtility'); $myts =& MyTextSanitizer::getInstance(); $config_handler =& xoops_gethandler('config'); $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); if (empty($xoopsConfigUser['allow_register'])) { redirect_header('index.php', 6, _US_NOREGISTER); exit(); } function userCheck($uname, $email, $pass, $vpass) { $GLOBALS['xoopsLogger']->addDeprecated("Function " . __FUNCTION__ . " is deprecated, use XoopsUserUtility::validate() instead"); return XoopsUserUtility::validate($uname, $email, $pass, $vpass); } $op = isset($_POST['op']) ? $_POST['op'] : (isset($_GET["op"]) ? $_GET["op"] : 'register'); $uname = isset($_POST['uname']) ? $myts->stripSlashesGPC($_POST['uname']) : ''; $email = isset($_POST['email']) ? trim($myts->stripSlashesGPC($_POST['email'])) : ''; $url = isset($_POST['url']) ? trim($myts->stripSlashesGPC($_POST['url'])) : ''; $pass = isset($_POST['pass']) ? $myts->stripSlashesGPC($_POST['pass']) : ''; $vpass = isset($_POST['vpass']) ? $myts->stripSlashesGPC($_POST['vpass']) : ''; $timezone_offset = isset($_POST['timezone_offset']) ? (float) $_POST['timezone_offset'] : $xoopsConfig['default_TZ']; $user_viewemail = (isset($_POST['user_viewemail']) && intval($_POST['user_viewemail'])) ? 1 : 0; $user_mailok = (isset($_POST['user_mailok']) && intval($_POST['user_mailok'])) ? 1 : 0; $agree_disc = (isset($_POST['agree_disc']) && intval($_POST['agree_disc'])) ? 1 : 0; switch ($op) { case 'newuser': $xoopsOption['xoops_pagetitle'] = _US_USERREG; include $GLOBALS['xoops']->path('header.php'); $stop = ''; if (!$GLOBALS['xoopsSecurity']->check()) { $stop .= implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()) . "<br />"; } if ($xoopsConfigUser['reg_dispdsclmr'] != 0 && $xoopsConfigUser['reg_disclaimer'] != '') { if (empty($agree_disc)) { $stop .= _US_UNEEDAGREE . '<br />'; } } $stop .= XoopsUserUtility::validate($uname, $email, $pass, $vpass); if (empty($stop)) { echo _US_USERNAME . ": " . $myts->htmlSpecialChars($uname) . "<br />"; echo _US_EMAIL . ": " . $myts->htmlSpecialChars($email) . "<br />"; if ($url != '') { $url = formatURL($url); echo _US_WEBSITE . ': ' . $myts->htmlSpecialChars($url) . '<br />'; } $f_timezone = ($timezone_offset < 0) ? 'GMT ' . $timezone_offset : 'GMT +' . $timezone_offset; echo _US_TIMEZONE . ": $f_timezone<br />"; echo "<form action='register.php' method='post'>"; xoops_load('XoopsFormCaptcha'); $cpatcha = new XoopsFormCaptcha(); echo "<br />" . $cpatcha->getCaption() . ": " . $cpatcha->render(); echo "<input type='hidden' name='uname' value='" . $myts->htmlSpecialChars($uname) . "' /> <input type='hidden' name='email' value='" . $myts->htmlSpecialChars($email) . "' /> <input type='hidden' name='user_viewemail' value='" . $user_viewemail . "' /> <input type='hidden' name='timezone_offset' value='" . (float) $timezone_offset . "' /> <input type='hidden' name='url' value='" . $myts->htmlSpecialChars($url) . "' /> <input type='hidden' name='pass' value='" . $myts->htmlSpecialChars($pass) . "' /> <input type='hidden' name='vpass' value='" . $myts->htmlSpecialChars($vpass) . "' /> <input type='hidden' name='user_mailok' value='" . $user_mailok . "' /> <br /><br /><input type='hidden' name='op' value='finish' />" . $GLOBALS['xoopsSecurity']->getTokenHTML() . "<input type='submit' value='" . _US_FINISH . "' /></form>"; } else { echo "<span style='color:#ff0000;'>$stop</span>"; include $GLOBALS['xoops']->path('include/registerform.php'); $reg_form->display(); } include $GLOBALS['xoops']->path('footer.php'); break; case 'finish': include $GLOBALS['xoops']->path('header.php'); $stop = XoopsUserUtility::validate($uname, $email, $pass, $vpass); if (!$GLOBALS['xoopsSecurity']->check()) { $stop .= implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()) . "<br />"; } xoops_load('XoopsCaptcha'); $xoopsCaptcha = XoopsCaptcha::getInstance(); if (!$xoopsCaptcha->verify()) { $stop .= $xoopsCaptcha->getMessage() . "<br />"; } if (empty($stop)) { $member_handler =& xoops_gethandler('member'); $newuser =& $member_handler->createUser(); $newuser->setVar('user_viewemail', $user_viewemail, true); $newuser->setVar('uname', $uname, true); $newuser->setVar('email', $email, true); if ($url != '') { $newuser->setVar('url', formatURL($url), true); } $newuser->setVar('user_avatar', 'blank.gif', true); $actkey = substr(md5(uniqid(mt_rand(), 1)), 0, 8); $newuser->setVar('actkey', $actkey, true); $newuser->setVar('pass', md5($pass), true); $newuser->setVar('timezone_offset', $timezone_offset, true); $newuser->setVar('user_regdate', time(), true); $newuser->setVar('uorder', $xoopsConfig['com_order'], true); $newuser->setVar('umode', $xoopsConfig['com_mode'], true); $newuser->setVar('user_mailok', $user_mailok, true); if ($xoopsConfigUser['activation_type'] == 1) { $newuser->setVar('level', 1, true); } else { $newuser->setVar('level', 0, true); } if (!$member_handler->insertUser($newuser)) { echo _US_REGISTERNG; include $GLOBALS['xoops']->path('footer.php'); exit(); } $newid = $newuser->getVar('uid'); if (!$member_handler->addUserToGroup(XOOPS_GROUP_USERS, $newid)) { echo _US_REGISTERNG; include $GLOBALS['xoops']->path('footer.php'); exit(); } if ($xoopsConfigUser['activation_type'] == 1) { XoopsUserUtility::sendWelcome($newuser); redirect_header('index.php', 4, _US_ACTLOGIN); exit(); } // Sending notification email to user for self activation if ($xoopsConfigUser['activation_type'] == 0) { $xoopsMailer =& xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplate('register.tpl'); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $xoopsMailer->setToUsers(new XoopsUser($newid)); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname)); if (! $xoopsMailer->send()) { echo _US_YOURREGMAILNG; } else { echo _US_YOURREGISTERED; } // Sending notification email to administrator for activation } elseif ($xoopsConfigUser['activation_type'] == 2) { $xoopsMailer =& xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplate('adminactivate.tpl'); $xoopsMailer->assign('USERNAME', $uname); $xoopsMailer->assign('USEREMAIL', $email); $xoopsMailer->assign('USERACTLINK', XOOPS_URL . '/register.php?op=actv&id=' . $newid . '&actkey=' . $actkey); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $member_handler =& xoops_gethandler('member'); $xoopsMailer->setToGroups($member_handler->getGroup($xoopsConfigUser['activation_group'])); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_USERKEYFOR, $uname)); if (! $xoopsMailer->send()) { echo _US_YOURREGMAILNG; } else { echo _US_YOURREGISTERED2; echo $httpRet; } } if ($xoopsConfigUser['new_user_notify'] == 1 && !empty($xoopsConfigUser['new_user_notify_group'])) { $xoopsMailer =& xoops_getMailer(); $xoopsMailer->reset(); $xoopsMailer->useMail(); $member_handler =& xoops_gethandler('member'); $xoopsMailer->setToGroups($member_handler->getGroup($xoopsConfigUser['new_user_notify_group'])); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_NEWUSERREGAT, $xoopsConfig['sitename'])); $xoopsMailer->setBody(sprintf(_US_HASJUSTREG, $uname)); $xoopsMailer->send(); } } else { echo "<span style='color:#ff0000; font-weight:bold;'>{$stop}</span>"; include $GLOBALS['xoops']->path('include/registerform.php'); $reg_form->display(); } include $GLOBALS['xoops']->path('footer.php'); break; case 'actv': case 'activate': $id = intval($_GET['id']); $actkey = trim($_GET['actkey']); if (empty($id)) { redirect_header('index.php', 1, ''); exit(); } $member_handler =& xoops_gethandler('member'); $thisuser =& $member_handler->getUser($id); if (!is_object($thisuser)) { exit(); } if ($thisuser->getVar('actkey') != $actkey) { redirect_header('index.php', 5, _US_ACTKEYNOT); } else { if ($thisuser->getVar('level') > 0) { redirect_header('user.php', 5, _US_ACONTACT, false); } else { if (false != $member_handler->activateUser($thisuser)) { $config_handler =& xoops_gethandler('config'); $xoopsConfigUser = $config_handler->getConfigsByCat(XOOPS_CONF_USER); if ($xoopsConfigUser['activation_type'] == 2) { $myts =& MyTextSanitizer::getInstance(); $xoopsMailer =& xoops_getMailer(); $xoopsMailer->useMail(); $xoopsMailer->setTemplate('activated.tpl'); $xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']); $xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']); $xoopsMailer->assign('SITEURL', XOOPS_URL . "/"); $xoopsMailer->setToUsers($thisuser); $xoopsMailer->setFromEmail($xoopsConfig['adminmail']); $xoopsMailer->setFromName($xoopsConfig['sitename']); $xoopsMailer->setSubject(sprintf(_US_YOURACCOUNT, $xoopsConfig['sitename'])); include $GLOBALS['xoops']->path('header.php'); if (!$xoopsMailer->send()) { printf(_US_ACTVMAILNG, $thisuser->getVar('uname')); } else { printf(_US_ACTVMAILOK, $thisuser->getVar('uname')); } include $GLOBALS['xoops']->path('footer.php'); } else { redirect_header('user.php', 5, _US_ACTLOGIN, false); } } else { redirect_header('index.php', 5, _US_ACTFAILD); } } } break; case 'register': default: $xoopsOption['xoops_pagetitle'] = _US_USERREG; include $GLOBALS['xoops']->path('header.php'); $xoTheme->addMeta('meta', 'keywords', _US_USERREG . ", " . _US_NICKNAME); // FIXME! $xoTheme->addMeta('meta', 'description', strip_tags($xoopsConfigUser['reg_disclaimer'])); include $GLOBALS['xoops']->path('include/registerform.php'); $reg_form->display(); include $GLOBALS['xoops']->path('footer.php'); break; } ?>
Merci d'avance a tous

Bonne journée

Sixpack

Eléphant du PHP | 422 Messages

07 juin 2010, 11:10

hello

moi je ferais un echo $op; avant le switch pour voir les différentes valeurs des etapes et ensuite mettre le bout de code dans la case le plus approprié

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 4 Messages

07 juin 2010, 11:31

Salut,

Merci pour ta reponse.

Désole mais suis un peu newbie en codage, que veux tu dire par faire un echo op avant le switch ? ou ca plus exactement ?

Merci d'avance

Six

Eléphant du PHP | 422 Messages

07 juin 2010, 11:42

hello

ce que tu as tenté de faire fonctionne en dehors de ce script ?

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 4 Messages

07 juin 2010, 11:59

LE register.php fonctionne sur mon site, j'essaye d'y intégrer ce script afin de pouvoir appliquer une co registration dans une affiliation.

En gros pour que cela fonctionne l'affiiation me dit ceci :

Code : Tout sélectionner

Après l'inscription à votre newsletter faites une requête "GET" ou "POST" sur une URL structurée selon le modèle suivant : http://afflog08.dreamstore.ch/remote/newsletter.asp?affid=32285&[email protected]&fname=prenom-test&bday=01.01.1980&countryiso=FR&sex=h Paramètres obligatoires: affid = N° de votre boutique affiliée email = Adresse email Paramètres facultatifs mais conseillés pour une meilleurs transfo avec offres personnalisées : fname = Prénom bday = Date de naissance (format: jj.mm.aaaa) countryiso = Code pays à 2 lettres (FR = France, CH = suisse, BE = Belgique, CA = Canada etc.) sex = F ou H (Femme / Homme)
Je doit recuperer les info name et email lors de l'enregistrement de mes membres sur le site pour que ceux-ci soit envoyé. Peut être que mon petit bout de code n'est pas correcte, si tu as une idée je t'en remercie deja d'avance

Six

Eléphant du PHP | 422 Messages

07 juin 2010, 13:32

oui c'était ma question :)

s'avoir si ton code pour que tu veux rajouté fonctionne déjà seul.

apres tu peux intégrer dans le script de xoops

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 4 Messages

08 juin 2010, 08:54

Comment pourrais tester ce code seul ?

Sachant que celui ci ne pourra pas récupérer les valeurs dont j'ai besoin ?

Merci d'avance

Six

Eléphant du PHP | 422 Messages

08 juin 2010, 16:47

hello

bas tu a juste besoin d'un id un email et un forname

$r->addPostFields(array( 'affid' => $affId , 'email' => "$email", 'fname' => "$uname"));

sinon dans le code de xoops il y a un gros switch donc il te faut choisir le bon et mettre ton code à la fin (du case)

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)