Acho que isto ainda vai para notícias, mas vou postar aqui para futuras consultas no fórum:
Arquivo ATIVACAO.PHP<?PHP
### ======================================================
### [url=http://www.xoops.net.br/]XOOPS Brasil[/url] - A comunidade diferente!
### ======================================================
### Arquivo para reenvio de Link de Ativa??o
### ======================================================
### Developer: Fernando Santos, fernando@zend.com.br
### Copyright: www.xoops.net.br ? 2003-2004
### ------------------------------------------------------
### www.xoops.net.br
### ======================================================
### v.1.0, Sun Dec 19 15:33:59 BRST 2004
### ======================================================
$xoopsOption['pagetype'] = "user";
include "mainfile.php";
include 'header.php';
// Tanto faz, GET ou POST
$email = isset($HTTP_GET_VARS['email']) ? trim($HTTP_GET_VARS['email']) : '';
$email = isset($HTTP_POST_VARS['email']) ? trim($HTTP_POST_VARS['email']) : $email;
// Se $email for vazio, mostra o form para envio do link
if ($email == '') {
echo <<< TOPET05
<fieldset style="padding: 10px;">
<legend style="font-weight: bold;">Reenvio de Link para Ativa??o de Cadastro</legend>
<div><br />Digite o e-mail que você usou no cadastro em nosso site para receber novamente o link de ativa??o de conta.</div>
<form action="$_SERVER[PHP_SELF]" method="post">
Seu E-mail: <input type="text" name="email" size="26" maxlength="60" /> <input type="submit" value="Enviar" />
</form>
</fieldset>
TOPET05;
// Se $email n?o for vazio , vamos fazer uma série de verifica??es antes de enviar
}else{
$myts =& MyTextSanitizer::getInstance();
$member_handler =& xoops_gethandler('member');
// A linha abaixo retornará um array com todos os usuários que tenham o e-mail citado, no nosso caso será apenas $getuser[0]
$getuser =& $member_handler->getUsers(new Criteria('email', $myts->addSlashes($email)));
// Se o e-mail n?o existir na base de dados, $getuser será vazio...
if (empty($getuser)) {
echo "<h2>E-mail n?o cadastrado em nossa base de dados!</h2>";
include("footer.php");
exit();
}
//Verificando se o usuário já está ativo...
if($getuser[0]->isActive()){
echo "<h2>O usuário ".$getuser[0]->getVar('uname').", cadastrado com o e-mail ".$getuser[0]->getVar('email')." já está ativo!</h2>";
include("footer.php");
exit();
}
//Enviando a baga?a
$xoopsMailer =& getMailer();
$xoopsMailer->useMail();
$xoopsMailer->setTemplate('register.tpl');
$xoopsMailer->assign('SITENAME', $xoopsConfig['sitename']);
$xoopsMailer->assign('ADMINMAIL', $xoopsConfig['adminmail']);
$xoopsMailer->assign('SITEURL', XOOPS_URL."/");
$xoopsMailer->setToUsers($getuser[0]);
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
$xoopsMailer->setFromName($xoopsConfig['sitename']);
$xoopsMailer->setSubject(sprintf("- Reenvio - "._US_USERKEYFOR,$getuser[0]->getVar("uname")));
if ( !$xoopsMailer->send() ) {
echo "<h2>N?o foi possível enviar o link de ativa??o para ".$getuser[0]->getVar('uname').". Entre em contato com os administradores do site.</h2>";
include("footer.php");
exit();
} else {
echo "<h2>O Link de ativa??o para ".$getuser[0]->getVar('uname')." foi reenviado. Caso n?o receba o e-mail dentro de algumas horas, tente novamente ou entre em contato com os administradores do site.</h2>";
}
}
include("footer.php");
?>
Coloque este arquivo no seu diretório principal XOOPS. Depois coloque um link para ele no bloco de login e pronto, n?o precisa alterar nada.
Se algum usuário do seu site vier reclamando que n?o recebeu o link de ativa??o, pe?a-o para acessar o seusite.com.br/ativacao.php e preencher o form.
Se quiser enviar via GET, tipovai funfar do mesmo jeito.seusite.com.br/ativacao.php?email=fernando@mastop.com.br
Espero que seja útil... quem quiser aprimorar o código, agrade?o!!
Testado e funfando direitinho.
Grato ao Izzy pelos primeiros testes
Abra??o
Herko Coomans wrote:
What about adding a 'resend activation e-mail' function like the 'lost password' function? This means NO automatic resending, but only on request. Enter your e-mail address, check is made to see if it is in the inactive accounts list, if so, the activation mail is resent. That solution would have my personal preference...
Then again, I may have completely misunderstood...
Herko
OLD_PASSWORD(str)
Calcula a senha a partir de senha str em texto puro. Está é a fun??o que é utilizada para criptografar a senha do MySQL para armazenamento na coluna Password da tabela de permiss?es user
mysql> SELECT PASSWORD('badpwd');
-> '7f84554057dd964b'
A criptografia de PASSWORD() n?o e reversível. PASSWORD() n?o realiza a criptografia da senha da mesa maneira que as senhas Unix s?o criptografadas. Veja ENCRYPT(). Note: A fun??o PASSWORD() é usada pelo sistema de autentifica??o no servidor MySQL, você N?O deve uitlizá-las em suas próprias aplica??es. Para este propósito utilize MD5() ou SHA1(). Veja também RFC-2195 para maiores informa??es sobre o tratamento de senha e autentica??o segura em suas aplica??es.