aboutsummaryrefslogtreecommitdiff
path: root/frontend/lib/register.php
blob: 57e58b4893ff3024eea66076883ab3c7b316ba53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php

/*
   Cheetah News lib/register.php
   Copyright (C) 2005, 2006, 2010, 2014 Wojciech Polak.

   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 3 of the License, or (at your
   option) any later version.

   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.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License along
   with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

$mail_link = $CONF['secureProto'].'://'.$CONF['site'].'/signup?hash=';
$mail_subject = '[Cheetah News] '._('Confirm Registration');
$mail_text1 = _("Greetings,\n\nTo confirm or decline signing up for the Cheetah News Aggregator account,\nplease click the following link:")."\n".$mail_link;
$mail_text2 = sprintf (_("Please do not reply to this email. If you need further assistance,\nplease mail %s."), $CONF['mailHelp']);

function rpNewSendEmail ($cEmail, $regPassword, $openid_identity = '')
{
  global $CONF, $mail_subject, $mail_text1, $mail_text2;

  if (empty ($cEmail) || !ereg ("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$", $cEmail))
    return -1;

  $db = new Database ();

  $db->query ("SELECT email FROM user WHERE email='".$db->escape ($cEmail)."'");
  if (!$db->next_record ())
  {
    $newEntry = false;
    $hash = '';

    $db->query ("SELECT hash FROM registration WHERE email='".$db->escape ($cEmail)."'");
    if ($db->next_record ()) {
      $hash = $db->f ('hash');
    }
    else {
      $hash = sha1 (time().$cEmail.rand());
      $newEntry = true;
    }

    if (mail ($cEmail, qp_encode ($mail_subject),
	      chunk_split (base64_encode ($mail_text1.$hash."\n\n".$mail_text2)),
	      'From: '.$CONF['mailFrom']."\r\n".
	      "MIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\n".
	      "Content-Transfer-Encoding: base64\r\nContent-Disposition: inline\r\n"))
    {
      if ($newEntry) {
	$db->query ("INSERT INTO registration SET email='".$db->escape ($cEmail)."', ".
		    "rdate=UTC_TIMESTAMP(), hash='".$hash."', pass='".
		    make_password ($regPassword)."', openid_identity='".
		    $db->escape ($openid_identity)."'");
      }
      return 0; /* OK */
    }
    else
      return -2; /* sending mail problem */
  }
  else
    return -3; /* account already exists */
}

?>

Return to:

Send suggestions and report system problems to the System administrator.