Я разрабатываю модуль регистрации пользователей в phpNuke, и я столкнулся с проблемой, что я понятия не имею, что это такое.
Для чего предназначена функция:
- взять все данные из формы регистрации пользователя, поместить их в таблицу MySql для временных пользователей.
- На этом этапе администратору сайта будет отправлено html-сообщение для одобрения.
- Как только администратор одобрит это по ссылке в html-письме, пользователю будет отправлено электронное письмо с сообщением о том, что его аккаунт утвержден.
$check_num = md5($user_email);</p>
<pre><code>if($creditcard == "1"){
$finishlink = "http://$siteurl/modules.php?name=$module_name&op=activate&username=$username&check_num=$check_num&adminApproval=2";
}else{
$finishlink = "http://$siteurl/modules.php?name=$module_name&op=activate&username=$username&check_num=$check_num&adminApproval=1";
$rejectlink = "http://$siteurl/modules.php?name=$module_name&op=activate&username=$username&check_num=$check_num&adminApproval=0";
}
$from_admin = $adminmail;
$admin_header = "MIME-Version: 1.0" . "\r\n";
$admin_header .= "Content-type: text/html; charset=UTF-8" ."\r\n";
$admin_header .= "From: $from_admin" . "\r\n";
$admin_msg = "<html><head><title>Membership Request</title></head>"
."<body><b>Membership Request</b><br /><br />"
."<table width=\"500\" border=\"0\">"
."<tr><td width=\"150\">Country/Region :</td><td width=\"350\">$region</td></tr>"
."<tr><td width=\"150\">Company Name :</td><td width=\"350\">$organization</td></tr>"
."<tr><td width=\"150\">Email Address :</td><td width=\"350\">$user_email</td></tr>"
."<tr><td width=\"150\">Name :</td><td width=\"350\">$fullname</td></tr>"
."<tr><td width=\"150\">Title :</td><td width=\"350\">$title</td></tr>"
."<tr><td width=\"150\">Telephone :</td><td width=\"350\">$phone</td></tr>"
."<tr><td width=\"150\">Referral :</td><td width=\"350\" valign=\"top\">$referral</td></tr>"
."<tr><td width=\"150\">Area of interest :</td><td width=\"350\">$areaOfInterest</td></tr>"
."<tr><td width=\"150\">Sign up for updates :</td><td width=\"350\">$newsletter</td></tr>"
//."<tr><td width=\"150\">Activate Member :</td><td width=\"350\"><a href=\"$finishlink\">YES</a>/<a href=\"$rejectlink\">NO</a></td></tr>"
.'<tr><td width="150">Activate Member :</td><td width="350"><a href="'.$finishlink.'">YES</a> <a href="'.$rejectlink.'">NO</a></td></tr>'
."</table></body></html>";
$admin_subj = "Membership Request from ".ucwords($fullname).",".$region;
mail($adminmail,$admin_subj,$admin_msg, $admin_header);
Выше приведен сценарий, который отправляет электронную почту в формате HTML, он прекрасно работает в среде IIS, однако, когда я перенес это на сервер Linux в Network Solutions, в финишную $ контрольную сумму добавлена "!"переменная.это происходит только в среде Linux.
Как видно из вышесказанного, и $ finishlink, и $ rejectlink практически идентичны, разница в конце равна & adminApproval = value.И эта «неизвестная переменная» встречается только в $ finishlink, $ rejectlink в порядке.
пример ошибки в моей электронной почте, finishlink:
<code>
http://$siteurl/modules.php?name=$module_name&op=activate&username=$username&check_num=f17cde8f32a68d06af5301! bda67653e4&adminApproval=1">YES
rejectlink:
<code>
http://$siteurl/modules.php?name=$module_name&op=activate&username=$username&check_num=f17cde8f32a68d06af5301bda67653e4&adminApproval=0">NO
Если кто-то сможет указать мне правильное направление, я буду очень признателен!Я потратил на это больше времени.