PageRenderTime 2131ms CodeModel.GetById 92ms RepoModel.GetById 2ms app.codeStats 0ms

/edit_wiebenik.php

https://bitbucket.org/driesverlinden/trotsstick
PHP | 410 lines | 242 code | 74 blank | 94 comment | 53 complexity | b3d20b835a0cc512289780c16e882a2c MD5 | raw file
  1. <?php
  2. /**
  3. * Wie ben ik_edit page for TrotsStick
  4. *
  5. * @author Andries Verlinden <andriesverlinden@gmail.com>
  6. * @version 1.8
  7. */
  8. /**
  9. * Includes
  10. * ----------------------------------------------------------------
  11. */
  12. // config & functions
  13. require_once './core/includes/config.php';
  14. require_once './core/includes/functions.php';
  15. // needed classes
  16. require_once './core/includes/classes/database.php';
  17. require_once './core/includes/classes/template.php';
  18. /**
  19. * Database connection
  20. * ----------------------------------------------------------------
  21. */
  22. $db = new TrotsStick(DB_HOST, DB_USER, DB_PASS, DB_NAME);
  23. $db->connect();
  24. /**
  25. * Start session and check if we are logged in
  26. * ----------------------------------------------------------------
  27. */
  28. // start a session
  29. session_start();
  30. // are we logged in or not
  31. $loggedIn = isset($_SESSION['loggedin']) ? $_SESSION['loggedin'] : false;
  32. $user = isset($_SESSION['login']) ? $_SESSION['login'] : '';
  33. if ($loggedIn === false) {
  34. header('location: index.php');
  35. exit();
  36. }
  37. /**
  38. * Initial Values
  39. * ----------------------------------------------------------------
  40. */
  41. // member related params
  42. $myMemberId = isset($_SESSION['login']) ? $_SESSION['login'] : 'stranger'; // value from login or sth
  43. $myBasePage = '/red';
  44. $myBaseDir = dirname(__FILE__) . '/members/' . $myMemberId . $myBasePage ; // Path where files are store
  45. // user records
  46. $name = '';
  47. $street = '';
  48. $city = '';
  49. $phone = '';
  50. $email = '';
  51. $hobby = '';
  52. $talent = '';
  53. // clear error messages
  54. $msgName = '';
  55. $msgStreet = '';
  56. $msgCity = '';
  57. $msgPhone = '';
  58. $msgEmail = '';
  59. $msgYou = '';
  60. $msgFamily = '';
  61. $msgFamily2 = '';
  62. $msgHobby = '';
  63. $msgPicHobby = '';
  64. $msgTalent = '';
  65. $msgPicTalent = '';
  66. /**
  67. * Read user records
  68. * ----------------------------------------------------------------
  69. */
  70. $userrecords = $db->retrieveOne('SELECT * FROM userrecords WHERE id="0"');
  71. if (count($userrecords) > 0) {
  72. $name = $userrecords['name'];
  73. $street = $userrecords['address'];
  74. $city = $userrecords['city'];
  75. $phone = $userrecords['phone'];
  76. $email = $userrecords['mail'];
  77. $hobby = $userrecords['hobby'];
  78. $talent = $userrecords['talent'];
  79. }
  80. // save all records
  81. $name = (isset($_POST['name']) ? ((string) $_POST['name']) : $name);
  82. $street = (isset($_POST['street']) ? ((string) $_POST['street']) : $street);
  83. $city = (isset($_POST['city']) ? ((string) $_POST['city']) : $city);
  84. $phone = (isset($_POST['phone']) ? ((string) $_POST['phone']) : $phone);
  85. $email = (isset($_POST['email']) ? ((string) $_POST['email']) : $email);
  86. $hobby = isset($_POST['hobby']) ? (string) $_POST['hobby'] : $hobby;
  87. $talent = isset($_POST['talent']) ? $_POST['talent'] : $talent;
  88. /**
  89. * Handle action 'btnCancel' (user pressed cancel button)
  90. * ----------------------------------------------------------------
  91. */
  92. if (isset($_POST['btnCancel'])) {
  93. header('Location: wiebenik.php');
  94. exit(0);
  95. }
  96. /**
  97. * Handle action 'btnEdit' (user pressed register button)
  98. * ----------------------------------------------------------------
  99. */
  100. if (isset($_POST['btnEdit'])) {
  101. // allOk?
  102. $allOk = true;
  103. // regexes we'll need
  104. $rex = '/^[\w]+$/i'; // any word character (1 or more)
  105. $rexName = '/^[^<"\'>;]+$/'; // no ^ < " ' > or ;
  106. $rexStreet = '/^[^<"\'>;]+$/'; // no ^ < " ' > or ;
  107. $rexCity = '/^[^<"\'>;]+$/'; // no ^ < " ' > or ;
  108. $rexPhone = '/^[0-9]+$/i'; // 0-9
  109. $rexEmail = '/^[\w+\.\+-_]+@(([\w\+-])+\.)+[a-z]{2,4}$/i'; // e-mailaddress
  110. // check name
  111. // check syntax (regex)
  112. if (!preg_match($rexName, $name)) {
  113. $msgName = 'Je mag geen ^ < " \' > of ; gebruiken in je naam.';
  114. $allOk = false;
  115. }
  116. // check address
  117. // check syntax (regex)
  118. if (!preg_match($rexStreet, $street)) {
  119. $msgStreet = 'Je mag geen ^ < " \' > of ; gebruiken in je adres.';
  120. $allOk = false;
  121. }
  122. // check city
  123. // check syntax (regex)
  124. if (!preg_match($rexCity, $city)) {
  125. $msgCity = 'Je mag geen ^ < " \' > of ; gebruiken in je stad of gemeente.';
  126. $allOk = false;
  127. }
  128. // check phone
  129. if ($phone == "") {
  130. $allOk = true;
  131. } else {
  132. // check syntax (regex)
  133. if (!preg_match($rexPhone, $phone)) {
  134. $msgPhone = 'Je mag enkel cijfers gebruiken in je telefoonnummer, dus geen spaties tussen de cijfers.';
  135. $allOk = false;
  136. }
  137. }
  138. // check e-mail
  139. if ($email == "") {
  140. $allOk = true;
  141. } else {
  142. // check syntax (regex)
  143. if (!preg_match($rexEmail, $email)) {
  144. $msgEmail = 'Gelieve een geldig e-mailadres op te geven.';
  145. $allOk = false;
  146. }
  147. }
  148. // check photo you
  149. // Emtpy field?
  150. if (!empty($_FILES['you'])) {
  151. if ($_FILES['you']['name'] != '') {
  152. $nameFile = $_FILES['you']['name'];
  153. if(!isPic($nameFile)) {
  154. $allOk = false;
  155. $msgYou = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  156. }
  157. }
  158. }
  159. // check photo family
  160. // Emtpy field?
  161. if (!empty($_FILES['family'])) {
  162. if ($_FILES['family']['name'] != '') {
  163. $nameFile = $_FILES['family']['name'];
  164. if(!isPic($nameFile)) {
  165. $allOk = false;
  166. $msgFamily = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  167. }
  168. }
  169. }
  170. // check photo family2
  171. // Emtpy field?
  172. if (!empty($_FILES['family2'])) {
  173. if ($_FILES['family2']['name'] != '') {
  174. $nameFile = $_FILES['family2']['name'];
  175. if(!isPic($nameFile)) {
  176. $allOk = false;
  177. $msgFamily = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  178. }
  179. }
  180. }
  181. // check hobby
  182. // no check needed
  183. // check photo hobby
  184. // Emtpy field?
  185. if (!empty($_FILES['picHobby'])) {
  186. if ($_FILES['picHobby']['name'] != '') {
  187. $nameFile = $_FILES['picHobby']['name'];
  188. if(!isPic($nameFile)) {
  189. $allOk = false;
  190. $msgPicHobby = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  191. }
  192. }
  193. }
  194. // check talent
  195. // no check needed
  196. // check photo talent
  197. // Emtpy field?
  198. if (!empty($_FILES['picTalent'])) {
  199. if ($_FILES['picTalent']['name'] != '') {
  200. $nameFile = $_FILES['picTalent']['name'];
  201. // check if the photo is a JPG
  202. if(!isPic($nameFile)) {
  203. $allOk = false;
  204. $msgPicTalent ='Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  205. }
  206. }
  207. }
  208. // process result
  209. // all is good!
  210. if ($allOk === true) {
  211. // save user
  212. saveUserRecords($name, $street, $city, $phone, $email, $hobby, $talent);
  213. // save photo you
  214. if (!empty($_FILES['you'])) {
  215. $fileToCopy = $_FILES['you']['tmp_name'];
  216. $fileName = $_FILES['you']['name'];
  217. if (isPic($fileName)) {
  218. $copyTo = $myBaseDir . '/you.jpg';
  219. @move_uploaded_file($fileToCopy, $copyTo) or showError('cantUploadFile', $copyTo . $fileName);
  220. } else {
  221. $msgYou = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  222. }
  223. }
  224. // save photo family
  225. if (!empty($_FILES['family'])) {
  226. $fileToCopy = $_FILES['family']['tmp_name'];
  227. $fileName = $_FILES['family']['name'];
  228. if (isPic($fileName)) {
  229. $copyTo = $myBaseDir . '/family.jpg';
  230. @move_uploaded_file($fileToCopy, $copyTo) or showError('cantUploadFile', $copyTo . $fileName);
  231. } else {
  232. $msgFamily = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  233. }
  234. }
  235. // save photo family2
  236. if (!empty($_FILES['family2'])) {
  237. $fileToCopy = $_FILES['family2']['tmp_name'];
  238. $fileName = $_FILES['family2']['name'];
  239. if (isPic($fileName)) {
  240. $copyTo = $myBaseDir . '/family2.jpg';
  241. @move_uploaded_file($fileToCopy, $copyTo) or showError('cantUploadFile', $copyTo . $fileName);
  242. } else {
  243. $msgFamily2 = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  244. }
  245. }
  246. // save photo hobby
  247. if (!empty($_FILES['picHobby'])) {
  248. $fileToCopy = $_FILES['picHobby']['tmp_name'];
  249. $fileName = $_FILES['picHobby']['name'];
  250. if (isPic($fileName)) {
  251. $copyTo = $myBaseDir . '/hobby.jpg';
  252. @move_uploaded_file($fileToCopy, $copyTo) or showError('cantUploadFile', $copyTo . $fileName);
  253. } else {
  254. $msgHobby = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  255. }
  256. }
  257. // save photo talent
  258. if (!empty($_FILES['picTalent'])) {
  259. $fileToCopy = $_FILES['picTalent']['tmp_name'];
  260. $fileName = $_FILES['picTalent']['name'];
  261. if (isPic($fileName)) {
  262. $copyTo = $myBaseDir . '/talent.jpg';
  263. @move_uploaded_file($fileToCopy, $copyTo) or showError('cantUploadFile', $copyTo . $fileName);
  264. } else {
  265. $msgYou = 'Je kan enkel foto\'s met de extensie\'s .jpg, .jpeg, .png en .gif uploaden.';
  266. }
  267. }
  268. // redirect
  269. header('location: wiebenik.php');
  270. exit();
  271. }
  272. }
  273. /**
  274. * No action to handle: show our page itself
  275. * -------------------------------------------------------------
  276. */
  277. // Main Layout
  278. // load main layout into a template
  279. $mainTpl = new Template('./core/layout/layout.tpl');
  280. // asisgn vars in our main layout tpl
  281. $mainTpl->assign('pageTitle', 'TrotsStick - Wie ben ik? (wijzig)');
  282. $mainTpl->assign('pageMeta', '');
  283. $mainTpl->assign('pageCss', '');
  284. $mainTpl->assign('pageJs', '<!-- TinyMCE -->
  285. <script type="text/javascript" src="core/js/tiny_mce/tiny_mce.js"></script>
  286. <script type="text/javascript">
  287. tinyMCE.init({
  288. mode : "textareas",
  289. theme : "advanced",
  290. theme_advanced_buttons1_add : "fontselect, bullist, numlist, indent, outdent, undo, redo, link, unlink, cleanup, removeformat",
  291. theme_advanced_buttons2 : "",
  292. theme_advanced_buttons3 : "",
  293. theme_advanced_disable : "sub, sup, seperator, code, image, hr, anchor, formatselect, styleselect, fontsizeselect, forecolor, backcolor, forecolorpicker, backcolorpicker, charmap, visualaid, newdocument, blockquote, help",
  294. theme_advanced_toolbar_location : "top",
  295. theme_advanced_toolbar_align : "left",
  296. theme_advanced_fonts : "Andale Mono=andale mono,times;" + "Arial=arial,helvetica,sans-serif;" + "Arial Black=arial black,avant garde;" + "Book Antiqua=book antiqua,palatino;" + "Comic Sans MS=comic sans ms,sans-serif;" + "Courier New=courier new,courier;" + "Georgia=georgia,palatino;" + "Helvetica=helvetica;" + "Impact=impact,chicago;" + "Symbol=symbol;" + "Tahoma=tahoma,arial,helvetica,sans-serif;" + "Terminal=terminal,monaco;" + "Times New Roman=times new roman,times;" + "Trebuchet MS=trebuchet ms,geneva;" + "Verdana=verdana,geneva;" + "Webdings=webdings;" + "Wingdings=wingdings,zapf dingbats"
  297. });
  298. </script>
  299. <!-- /TinyMCE -->');
  300. $mainTpl->assign('pageH2', 'Wie ben ik? (wijzig)');
  301. // show logged in user
  302. if (($loggedIn == true)) {
  303. $mainTpl->assignOption('oLoggedIn');
  304. $mainTpl->assign('login', $_SESSION['login']);
  305. }
  306. // Page specific template
  307. // new template
  308. $pageTpl = new Template('./core/layout/edit_wiebenik.tpl');
  309. // assign variables of the form
  310. $pageTpl->assign('formAction', $_SERVER['PHP_SELF']);
  311. // assign user records
  312. $pageTpl->assign('name', $name);
  313. $pageTpl->assign('street', $street);
  314. $pageTpl->assign('city', $city);
  315. $pageTpl->assign('phone', $phone);
  316. $pageTpl->assign('email', $email);
  317. $pageTpl->assign('hobby', $hobby);
  318. $pageTpl->assign('talent', $talent);
  319. // assign error messages
  320. $pageTpl->assign('msgName', $msgName);
  321. $pageTpl->assign('msgStreet', $msgStreet);
  322. $pageTpl->assign('msgCity', $msgCity);
  323. $pageTpl->assign('msgPhone', $msgPhone);
  324. $pageTpl->assign('msgEmail', $msgEmail);
  325. $pageTpl->assign('msgYou', $msgYou);
  326. $pageTpl->assign('msgFamily', $msgFamily);
  327. $pageTpl->assign('msgFamily2', $msgFamily2);
  328. $pageTpl->assign('msgHobby', $msgHobby);
  329. $pageTpl->assign('msgPicHobby', $msgPicHobby);
  330. $pageTpl->assign('msgTalent', $msgTalent);
  331. $pageTpl->assign('msgPicTalent',$msgPicTalent);
  332. // Parse page specific layout into main layout
  333. $mainTpl->assign('pageContent', $pageTpl->getContent());
  334. // Output our main layout
  335. $mainTpl->display();
  336. //EOF