PageRenderTime 47ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/demo/db_functions.php

http://otpauth.googlecode.com/
PHP | 305 lines | 220 code | 49 blank | 36 comment | 35 complexity | 368d98e2e610b59b0c74eba636e24df8 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. function demo_compare_last_otp($sequence, $otp, $uid) {
  3. $error = '';
  4. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  5. $sql = "select * from otp WHERE sequence='$sequence' AND otp='$otp' AND user_id='$uid'";
  6. $res = sqlite_query($dbhandle, $sql, SQLITE_ASSOC, $error);
  7. $found = false;
  8. while ($entry = sqlite_fetch_array($res)) {
  9. $found = true;
  10. }
  11. return $found;
  12. }
  13. function demo_set_last_otp($sequence, $otp, $uid) {
  14. $error = '';
  15. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  16. $sql = "UPDATE otp SET sequence='$sequence', otp='$otp' WHERE user_id='$uid'";
  17. $query = sqlite_exec($dbhandle, $sql, $error);
  18. if (!$query) {
  19. echo "UPDATE not handled: '$error'<br/><br/>\n\n";
  20. return false;
  21. }
  22. $sql = "UPDATE session SET otp_auth='1' WHERE user_id='$uid'";
  23. $query = sqlite_exec($dbhandle, $sql, $error);
  24. if (!$query) {
  25. echo "UPDATE not handled: '$error'<br/><br/>\n\n";
  26. return false;
  27. }
  28. }
  29. function enable_otp_on_demo_account($uid) {
  30. $error = '';
  31. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  32. $sql = "UPDATE user SET otp_enabled=1 WHERE id=$uid";
  33. $query = &sqlite_exec($dbhandle, $sql, $error);
  34. if (!$query) {
  35. echo "UPDATE not handled: '$error'<br/><br/>\n\n";
  36. return false;
  37. }
  38. else {
  39. /* echo "db has been initialized<br/><br/>\n\n"; */
  40. return true;
  41. }
  42. }
  43. function disable_otp_on_demo_account($uid) {
  44. $error = '';
  45. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  46. $sql = "UPDATE user SET otp_enabled=0 WHERE id=$uid";
  47. $query = sqlite_exec($dbhandle, $sql, $error);
  48. if (!$query) {
  49. echo "UPDATE not handled: '$error'<br/><br/>\n\n";
  50. return false;
  51. }
  52. else {
  53. /* echo "db has been initialized<br/><br/>\n\n"; */
  54. return true;
  55. }
  56. }
  57. function auth_db_initialized() {
  58. $error = '';
  59. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  60. $sql = "select * from user";
  61. $query = @sqlite_exec($dbhandle, $sql, $error);
  62. if (!$query) {
  63. /*echo "authentication database not initialized: '$error'<br/><br/>\n\n";*/
  64. return false;
  65. }
  66. else {
  67. /* echo "db has been initialized<br/><br/>\n\n"; */
  68. return true;
  69. }
  70. }
  71. function destroy_auth_db() {
  72. $error = '';
  73. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  74. $sql = "DROP TABLE user";
  75. $query = sqlite_exec($dbhandle, $sql, $error);
  76. if (!$query) { echo "Error in user drop statement: '$error'<br/><br/>\n\n"; }
  77. else { /*echo "user table dropped<br/><br/>\n\n"; */ }
  78. $sql = "DROP TABLE session";
  79. $query = sqlite_exec($dbhandle, $sql, $error);
  80. if (!$query) { echo "Error in session drop statement: '$error'<br/><br/>\n\n"; }
  81. else { /*echo "session table dropped<br/><br/>\n\n";*/ }
  82. $sql = "DROP TABLE otp";
  83. $query = sqlite_exec($dbhandle, $sql, $error);
  84. if (!$query) { echo "Error in otp drop statement: '$error'<br/><br/>\n\n"; }
  85. else { /*echo "otp table dropped<br/><br/>\n\n";*/ }
  86. }
  87. function destroy_enterprise_db() {
  88. $error = '';
  89. $dbhandle = sqlite_open('demo_enterprise_db.sqlite');
  90. $sql = "select * from user_articles";
  91. $query = sqlite_exec($dbhandle, $sql, $error);
  92. if (!$query) { echo "Error in user_articles drop statement: '$error'<br/><br/>\n\n"; }
  93. else { /*echo "user_articles table dropped<br/><br/>\n\n";*/ }
  94. }
  95. function initialize_auth_db() {
  96. $error = '';
  97. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  98. /******************************************
  99. *
  100. * create user table
  101. *
  102. ******************************************/
  103. $user_create_stmt = "
  104. CREATE TABLE user (
  105. id int auto_increment,
  106. username varchar(40) NOT NULL,
  107. pw varchar(40) NOT NULL default '',
  108. realname varchar(40) NOT NULL default '',
  109. status char(1) NOT NULL default 'A',
  110. add_date int(11) NOT NULL default '0',
  111. confirm_hash varchar(40) default NULL,
  112. phone_number varchar(20) NOT NULL default '',
  113. last_pw_change int(11) NOT NULL default '0',
  114. otp_enabled tinyint(1) NOT NULL default '0',
  115. PRIMARY KEY (id)
  116. ) ";
  117. $query = sqlite_exec($dbhandle, $user_create_stmt, $error);
  118. if (!$query) { echo "Error in user create statement: '$error'<br/><br/>\n\n" .
  119. "Does apache have write permission to the demo directory?<br/><br/>\n\n";
  120. }
  121. else { /*echo "user table created<br/><br/>\n\n";*/ }
  122. /******************************************
  123. *
  124. * create session table
  125. *
  126. ******************************************/
  127. $session_create_stmt = "CREATE TABLE session (
  128. user_id int(11) default '0',
  129. session_hash char(40) NOT NULL default '',
  130. ip_addr char(15) NOT NULL default '',
  131. otp_auth tinyint(1) NOT NULL default '0',
  132. time int(11) NOT NULL default '0',
  133. locked tinyint(1) NOT NULL default '0',
  134. PRIMARY KEY (session_hash)
  135. ) ";
  136. $query = sqlite_exec($dbhandle, $session_create_stmt, $error);
  137. if (!$query) { /*echo "Error in session create statement: '$error'<br/><br/>\n\n"; */}
  138. else { /*echo "session table created<br/><br/>\n\n";*/ }
  139. /******************************************
  140. *
  141. * create otp table
  142. *
  143. ******************************************/
  144. $otp_create_stmt = " CREATE TABLE otp (
  145. id int auto_increment,
  146. user_id int(11) NOT NULL default '0',
  147. sequence int(11) NOT NULL default '0',
  148. otp char(16) NOT NULL default '',
  149. PRIMARY KEY (id)
  150. )";
  151. $query = sqlite_exec($dbhandle, $otp_create_stmt, $error);
  152. if (!$query) { echo "Error in otp create statement: '$error'<br/><br/>\n\n"; }
  153. else { /*echo "otp table created<br/><br/>\n\n";*/ }
  154. /******************************************
  155. *
  156. * insert demo user
  157. *
  158. ******************************************/
  159. $pw = sha1('demopass');
  160. $user_insert_stmt = "INSERT INTO user (id, username, pw, status)
  161. VALUES (1, 'demo', '$pw', 'A')";
  162. $query = sqlite_exec($dbhandle, $user_insert_stmt, $error);
  163. if (!$query) { echo "Error in user insert statement: '$error'<br/><br/>\n\n"; }
  164. else { /*echo "user inserted<br/><br/>\n\n";*/ }
  165. }
  166. function enterprise_db_initialized() {
  167. $error = '';
  168. $dbhandle = sqlite_open('demo_enterprise_db.sqlite');
  169. $sql = "select * from user_articles";
  170. $query = sqlite_exec($dbhandle, $sql, $error);
  171. if (!$query) {
  172. echo "enterprise database not initialized: '$error'<br/><br/>\n\n";
  173. return false;
  174. }
  175. else {
  176. /* echo "db has been initialized<br/><br/>\n\n"; */
  177. return true;
  178. }
  179. }
  180. function initialize_enterprise_db() {
  181. $error = '';
  182. $dbhandle = sqlite_open('demo_enterprise_db.sqlite');
  183. /******************************************
  184. *
  185. * create sample data table
  186. *
  187. ******************************************/
  188. $data_create_stmt = "
  189. CREATE TABLE user_articles (
  190. id int auto_increment,
  191. user_id int NOT NULL,
  192. title text NOT NULL,
  193. text text NOT NULL default '',
  194. PRIMARY KEY (id)
  195. ) ";
  196. $query = sqlite_exec($dbhandle, $data_create_stmt, $error);
  197. if (!$query) { echo "Error in article create statement: '$error'<br/><br/>\n\n" .
  198. "Does apache have write permission to the demo directory?<br/><br/>\n\n";
  199. }
  200. else { /*echo "article table created<br/><br/>\n\n";*/ }
  201. /******************************************
  202. *
  203. * insert sample article
  204. *
  205. ******************************************/
  206. $article_text = "Software as a service is a concept...";
  207. //$article_text = mysql_real_escape_string("Software as a service....");
  208. $data_insert_stmt = "INSERT INTO user_articles (id, user_id, title, text)
  209. VALUES (1, 1, 'software as a service', '$article_text')";
  210. $query = sqlite_exec($dbhandle, $data_insert_stmt, $error);
  211. if (!$query) { echo "Error in article insert statement: '$error'<br/><br/>\n\n"; }
  212. else { /*echo "article inserted<br/><br/>\n\n";*/ }
  213. }
  214. function get_recent_articles($uid) {
  215. $dbhandle = sqlite_open('demo_enterprise_db.sqlite');
  216. $sql = "SELECT * FROM user_articles WHERE user_id=1";
  217. $res = sqlite_query($dbhandle, $sql, SQLITE_ASSOC, $error);
  218. $articles = array();
  219. while ($entry = sqlite_fetch_array($res)) {
  220. $article["title"] = $entry["title"];
  221. $article["text"] = $entry["text"];
  222. $articles[] = $article;
  223. }
  224. return $articles;
  225. }
  226. function print_all() {
  227. $error = "";
  228. $dbhandle = sqlite_open('demo_auth_db.sqlite');
  229. print "<h3>user table</h3>";
  230. print "<pre>";
  231. $sql = "SELECT * FROM user";
  232. $res = sqlite_query($dbhandle, $sql, SQLITE_ASSOC, $error);
  233. while ($entry = sqlite_fetch_array($res)) {
  234. print_r($entry);
  235. }
  236. print "</pre>";
  237. print "<br><br>";
  238. print "<h3>session table</h3>";
  239. print "<pre>";
  240. $sql = "SELECT * FROM session";
  241. $res = sqlite_query($dbhandle, $sql, SQLITE_ASSOC, $error);
  242. while ($entry = sqlite_fetch_array($res)) {
  243. print_r($entry);
  244. }
  245. print "</pre>";
  246. print "<br><br>";
  247. print "<h3>otp table</h3>";
  248. print "<pre>";
  249. $sql = "SELECT * FROM otp";
  250. $res = sqlite_query($dbhandle, $sql, SQLITE_ASSOC, $error);
  251. while ($entry = sqlite_fetch_array($res)) {
  252. print_r($entry);
  253. }
  254. print "</pre>";
  255. }
  256. ?>