about summary refs log tree commit diff stats
path: root/central/trunk/activatesub.php
diff options
context:
space:
mode:
Diffstat (limited to 'central/trunk/activatesub.php')
-rw-r--r--central/trunk/activatesub.php124
1 files changed, 124 insertions, 0 deletions
diff --git a/central/trunk/activatesub.php b/central/trunk/activatesub.php new file mode 100644 index 0000000..46a05ec --- /dev/null +++ b/central/trunk/activatesub.php
@@ -0,0 +1,124 @@
1<?php
2
3/* InstaDisc Server - A Four Island Project */
4
5include('includes/instadisc.php');
6include('includes/template.php');
7
8if (isset($_SESSION['username']))
9{
10 if (!isset($_GET['submit']))
11 {
12 showForm('',array());
13 } else {
14 $numOfErrors = 0;
15 $errors = array();
16
17 $getpending = "SELECT * FROM pending2 WHERE username = \"" . mysql_real_escape_string($_SESSION['username']) . "\" AND url = \"" . mysql_real_escape_string($_POST['url']) . "\"";
18 $getpending2 = mysql_query($getpending);
19 $getpending3 = mysql_fetch_array($getpending2);
20 if ($getpending3['username'] != $_POST['username'])
21 {
22 addError($numOfErrors, $errors, 'url', 'Subscription could not be found');
23 }
24
25 if ($numOfErrors > 0)
26 {
27 showForm($_POST['url'], $errors);
28 } else {
29 if ($_POST['submit'] == "Verify")
30 {
31 switch (instaDisc_addSubscription($_SESSION['username'], $_POST['url']))
32 {
33 case 0:
34 $template = new FITemplate('activatedsub');
35 $template->add('SITENAME', instaDisc_getConfig('siteName'));
36 $template->display();
37 break;
38
39 case 1:
40 addError($numOfErrors, $errors, '', 'Unknown error');
41 showForm($_POST['url'], $errors);
42 break;
43
44 case 2:
45 addError($numOfErrors, $errors, 'url', 'Subscription could not be found');
46 showForm($_POST['url'], $errors);
47 break;
48
49 case 3:
50 addError($numOfErrors, $errors, '', 'Subscription File is not well-formed');
51 showForm($_POST['url'], $errors);
52 break;
53
54 case 4:
55 addError($numOfErrors, $errors, '', 'Key in Subscription File is incorrect');
56 showForm($_POST['url'], $errors);
57 break;
58 }
59 } else {
60 instaDisc_cancelSubscription($_SESSION['username'], $_POST['url']);
61 }
62 }
63 }
64} else {
65 header('Location: index.php');
66}
67
68function showForm($url, $errors)
69{
70 $template = new FITemplate('activatesub');
71 $template->add('SITENAME', instaDisc_getConfig('siteName'));
72
73 if (isset($errors[1]))
74 {
75 $template->adds_block('ERROR', array('ex'=>'1'));
76
77 foreach ($errors as $name => $value)
78 {
79 $template->adds_block('ERRORS', array( 'NAME' => $name,
80 'MSG' => $value['msg']));
81 }
82 }
83
84 $template->add('URL_ERR', ifErrors($errors, 'url'));
85
86 doErrors($template, $errors, 'url');
87
88 $template->add('URL', $url);
89
90 $template->display();
91}
92
93function ifErrors($errors, $id)
94{
95 foreach ($errors as $name => $value)
96 {
97 if ($value['field'] == $id)
98 {
99 return ' error';
100 }
101 }
102
103 return '';
104}
105
106function doErrors($template, $errors, $id)
107{
108 foreach ($errors as $name => $value)
109 {
110 if ($value['field'] == $id)
111 {
112 $template->adds_block(strtoupper($id) . '_ERRS', array( 'NAME' => $name,
113 'VALUE' => $value['msg']));
114 }
115 }
116}
117
118function addError(&$numOfErrors, &$errors, $field, $msg)
119{
120 $numOfErrors++;
121 $errors[$numOfErrors] = array('field' => $field, 'msg' => $msg);
122}
123
124?>