-1

哟,我正在为我的用户使用注册表单。他们可以创建一个新帐户,并获得包含激活链接的确认邮件。

当他们点击激活链接时,他们会自动转到我的页面并获取有关帐户已激活的消息。

问题:帐户不会被激活 - 他们无法登录并且在 sql 数据库中他们没有被激活。

所以我检查了“emailverified.php”,因为它包含在每个激活链接中。

不幸的是,我不得不提一下,这个文件不是 utf8 转换的。

有人知道这是否可能是原因吗?

如果是,请告诉我如何简单地做到这一点。在这里,您可以从“emailverified.php”获得代码的开头:

include('include/header.php');

包括('phpmailer/class.phpmailer.php');

if(isset($_GET["ID"]) && isset($_GET["PID"])) {

$email=stripslashes(base64_decode($_GET["ID"]));

$password=stripslashes($_GET["PID"]);

if(isset($_GET["active"])) {

$主动=$_GET[“主动”];

} 其他 { +++++

提前致谢。


链接中的数据:http ://www.my-url.com/emailverified.php?ID=Y2Fwb25lQG91dGxvb2suZGU=&PID=Y2Fwb25lcw==&active=yes

db 查询(php 发送)$rec = dbQuery("select * from user_registrationwhere email='$email'"); if(dbNumRows($rec)>0) { echo 'yes'; } 其他 { 回声“不”;} } 其他 { 回声“不”;}

//

我真的认为这是因为 .php 文件不是 utf8 并且没有将其写入数据库。请先帮我做 utf8 - 如果它不起作用,那么我会检查代码。


第一个注册.php

然后我想:emailcheck.php

if(isset($_GET["email"]) && $_GET["email"]!='') {
$email=strtolower($_GET["email"]);
$rec = dbQuery("select * from `user_registration` where `email`='$email'");
if(dbNumRows($rec)>0) {
echo 'yes';
}
else {
echo 'no';
}
    }
else {
echo 'no';
}   

接收激活链接点击:http ://www.my-url.com/emailverified.php?ID=Y2Fwb25lQG91dGxvb2suZGU=&PID=Y2Fwb25lcw==&active=yes

然后 emailverified.php

if(isset($_GET["ID"]) && isset($_GET["PID"])) {

$email=stripslashes(base64_decode($_GET["ID"]));

$password=stripslashes($_GET["PID"]);

if(isset($_GET["active"])) {

$主动=$_GET[“主动”];

} 别的 {

$活跃='';

}

    $s = dbQuery("select * from `user_registration` where `email`='".$email."' and `password`='".$password."'");

    if(dbNumRows($s)>0 && $active=="yes") {

        $arr=explode(" ", date("Y-m-d H:i:s"));

        $ar1=explode("-", $arr[0]);

        $ar2=explode(":", $arr[1]);

        $_SESSION["userlogin"]=$email;  

        $a = dbQuery("select * from `user_registration` where `email`='".$email."' and `password`='".$password."' and `createdate`<'".date("Y-m-d",mktime($ar2[0], $ar2[1], $ar2[2], $ar1[1], $ar1[2]-1, $ar1[0]))."'");

        if(dbNumRows($a)==0) {

        dbQuery("update `user_registration` set `status`='1',`current_balance`='".$SignUpbonus."' where `email`='".$email."' and `password`='".$password."'");

        dbQuery("insert into `myaccount`(`email`,`amount`,`type`,`createdate`) values('".$email."','".$SignUpbonus."','1','".$totaldate."')");

        $d='';

        $sig = dbFetchArray(dbQuery("select * from `mailsettings` where `id`='13'"),MYSQL_BOTH);

        $user = dbFetchArray(dbQuery("select * from `user_registration` where `email`='".$email."'"),MYSQL_BOTH);



        $benefitusersql=dbQuery("select * from `user_registration` where `email`='".$user["referrer"]."'");

        if(dbNumRows($benefitusersql)>0) {

        $benefituserres=dbFetchArray($benefitusersql,MYSQL_BOTH);

        dbQuery("update `user_registration` set `bonuscount`='".($benefituserres["bonuscount"]+1)."' where `email`='".$user["referrer"]."'");

        }





        $Subject1 = stripslashes($sig["subject"]);

        $TemplateMessage=str_replace("%FULLNAME%", $user["fullname"], stripslashes($sig["message"]));   

        $TemplateMessage=str_replace("%EMAIL%", $user["email"], $TemplateMessage);

        $TemplateMessage=str_replace("%PASSWORD%", base64_decode($user["password"]), $TemplateMessage); 

        $mail1 = new PHPMailer;

        $mail1->FromName = $fromName;

        $mail1->From    = $from;

        $mail1->Subject = $Subject1;

        $mail1->Body    = stripslashes($TemplateMessage);

        $mail1->AltBody = stripslashes($TemplateMessage);                   

        $mail1->IsHTML(true);   

        $mail1->AddAddress($user["email"],$fromName);

        $mail1->Send();



        $TemplateMessage="Hi ";

        $TemplateMessage.="<br><br>";                   

        $TemplateMessage.="A new account has been created.<br>";

        $TemplateMessage.="Please login to the admin control panel to view details:<br>";

        $TemplateMessage.="<br>----------------<br><br>";

        $TemplateMessage.="User's Email: ".$user["email"]."<br><br>";

        $TemplateMessage.="Thanks,<br>";

        $TemplateMessage.=$fromName."<br>";

        $TemplateMessage.=$SiteName."<br>";  +++++
4

1 回答 1

0

解决了

刚刚将 active=yes 交换为 active=1

于 2014-11-17T12:31:47.637 回答