Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elton Ésqui

[Resolvido] Activate page do Developer Toolbox

Recommended Posts

Tchurma, sei que existem vários tópicos mostrando como desenvolver uma página de cadastro com ativação por e-mail, mas na última necessidade tenho o feitopelo Dev Tool do DWCS3.

 

Dúvida...

 

Alguém sabe como montar aquele e-mail de ativação.

 

Meu problema é o seguinte:

Ele sempre monta o link de ativação com o id=0, ou seja, não ativa a conta pelo link, sendo necessário ativar manualmente pelo BD.

 

Agradeço a ajuda!

 

Um exemplo:

 

Nesse teste o usuário era de ID 5

gerou o link no e-ail

 

http://localhost/Intranet%20v2/usuarios/activate.php?kt_login_id=0&kt_login_random=06f16510fb0dc706bb81d01ff33df729

 

O kt_login_random ta certinho, igual ao que ta no BD, mas o kt_login_id não está certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A página activate:

 

<?php
require_once('../Connections/intranet.php');
require_once('../includes/common/KT_common.php');
require_once('../includes/tng/tNG.inc.php');
?>
<?php
// Make a transaction dispatcher instance
$tNGs = new tNG_dispatcher("../");
// Make unified connection variable
$conn_intranet = new KT_connection($intranet, $database_intranet);
//start Trigger_ActivationCheck trigger
//remove this line if you want to edit the code by hand
function Trigger_ActivationCheck(&$tNG) {
 return Trigger_Activation_Check($tNG);
}
//end Trigger_ActivationCheck trigger
// Make an update transaction instance
$activate_transaction = new tNG_update($conn_intranet);
$tNGs->addTransaction($activate_transaction);
// Register triggers
$activate_transaction->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "GET", "kt_login_id");
$activate_transaction->registerTrigger("BEFORE", "Trigger_ActivationCheck", 1);
$activate_transaction->registerTrigger("END", "Trigger_Default_Redirect", 99, "{kt_login_redirect}");
// Add columns
$activate_transaction->setTable("usuarios");
$activate_transaction->addColumn("ativo", "STRING_TYPE", "VALUE", "1");
$activate_transaction->setPrimaryKey("id", "NUMERIC_TYPE", "GET", "kt_login_id");
// Execute all the registered transactions
$tNGs->executeTransactions();
// Get the transaction recordset
$rsusuarios = $tNGs->getRecordset("usuarios");
$row_rsusuarios = mysql_fetch_assoc($rsusuarios);
$totalRows_rsusuarios = mysql_num_rows($rsusuarios);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Página de ativação</title>
<link href="../includes/skins/mxkollection3.css" rel="stylesheet" type="text/css" media="all" />
<script src="../includes/common/js/base.js" type="text/javascript"></script>
<script src="../includes/common/js/utility.js" type="text/javascript"></script>
<script src="../includes/skins/style.js" type="text/javascript"></script>
</head>
<body>
<?php echo $tNGs->getErrorMsg(); ?>
</body>
</html>

 

O que acontece é que não traz o ID correto no link gerado.

O cadastro já é o ID 5, por exemplo, e no link só exibe id=0 :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

No arquivo tNG_defTrigg.inc.php existe a situação abaixo:

if ($GLOBALS['tNG_login_config']['activation_field'] != "" && $GLOBALS['tNG_login_config']['email_field']!="" && isset($tNG->columns[$GLOBALS['tNG_login_config']['email_field']])) {	
	$args = 'kt_login_id='. $tNG->getColumnValue($GLOBALS['tNG_login_config']['pk_field']);
	if ($GLOBALS['tNG_login_config']['randomkey_field'] != "") {
		$args .= '&kt_login_random='. $tNG->getColumnValue($GLOBALS['tNG_login_config']['randomkey_field']);
	} else  {
		$args .= '&kt_login_email='. $tNG->getColumnValue($GLOBALS['tNG_login_config']['email_field']);

Se eu trocar

$args = 'kt_login_id='. $tNG->getColumnValue($GLOBALS['tNG_login_config']['pk_field']);

por

$args = 'kt_login_user='. $tNG->getColumnValue($GLOBALS['tNG_login_config']['user_field']);

Ele exibe no e-mail o nome do usuario...agora ficou correta a exibição, mas não grava mais o valor no campo de ativação.

 

Ninguém aqui usa o DevToolBox?

 

$args = 'kt_login_id='. $tNG->getColumnValue($GLOBALS['tNG_login_config']['pk_field']);

 

pk_field não pega o id da base de dados...

 

Help-meeeeeeeeeee

 

Pelas barbas do profeta...será que ninguém usa o DevTool? :(

 

Bom, maltratei alguns neurônios e que consegui achar uma solução, não se é a ideal, mas funcionou, agora monta o link com o id correto.

 

Segue para quem precisar:

 

É só remover o "id" das linhas abaixo no arquivo tNG_config.inc.php

 

 $tNG_login_config["max_tries_field"] = "";//"id";
 $tNG_login_config["max_tries_disabledate_field"] = "";//"id";

 

Ufa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.