PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/registo-de-contacto.php

https://bitbucket.org/HugoG/sgbd-2
PHP | 374 lines | 344 code | 15 blank | 15 comment | 27 complexity | 5f5fa63c32c9ee4d202b924451cc5491 MD5 | raw file
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Untitled Document</title>
  6. <link rel="stylesheet" type="text/css" href="css/anytime.css" />
  7. <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
  8. <script type="text/javascript" src="js/anytime.js"></script>
  9. </head>
  10. <body>
  11. <?php
  12. require_once("common.php"); /* Ligacao a base de dados */
  13. ?>
  14. <?php
  15. if(empty($_POST)) /* Ciclo if que verifica se tem algum valor no $_POST caso nao tenha apresenta o formulario de registo caso contrario passa para o proximo estado*/
  16. {
  17. ?>
  18. <h3>Dados obrigatórios - introdução</h3>
  19. Obrigado pelo seu interesse nas nossas actividades. Para receber informação das mesmas é favor preencher os dados a seguir solicitados. Depois de submeter estes dados obrigatórios poderá indicar, no passo seguinte, outras informações como outros dados pessoais e/ou uma palavra-chave que poderá usar para aceder à sua conta de utilizador de modo a poder alterar os dados e/ou inscrever-se em actividades. NOTA: tanto os dados obrigatórios como pessoais são para uso exclusivo da AKNE e para o melhor relacionamento possível entre a AKNE e os seus utentes, não sendo, em caso algum, facultados a terceiros.
  20. <form id="registo-de-contacto" name="registo-de-contacto" method="post" action="registo-de-contacto" >
  21. <table align="center" width="60%" border="0">
  22. <tr>
  23. <td width="48%"><div align="right"><strong>Nome Completo:</strong></div></td>
  24. <td width="52%"><input name="user" type="text" id="user" size="50" /></td>
  25. </tr>
  26. <tr>
  27. <td width="48%"><div align="right"><strong>Número de telefone:</strong></div></td>
  28. <td width="52%"><input name="telefone" type="text" id="telefone" size="23" /></td>
  29. </tr>
  30. <tr>
  31. <td width="48%"><div align="right"><strong>Operadora:</strong></div></td>
  32. <td width="52%"><select name="operadora"><?php
  33. /* querie que apresenta as operadores disponiveis na bd */
  34. $oper= "SELECT * from phone_comp";
  35. $opera = mysql_query($oper);
  36. while ($row = mysql_fetch_array($opera)) {
  37. echo '<option value ='.$row["code"].'>' .$row["name"].'</option>';
  38. }
  39. ?>
  40. </select></td>
  41. </tr>
  42. <tr>
  43. <td><div align="right"><strong>Endereço de e-mail:</strong></div></td>
  44. <td><input name="email" type="text" id="email" size="35" /></td>
  45. </tr>
  46. <input type="hidden" name="estado" value="validar_obrig" />
  47. <tr>
  48. <td>&nbsp;</td>
  49. <td><input type="submit" name="submeter" id="submeter" value="submeter" /></td>
  50. </tr>
  51. </table>
  52. </form>
  53. <?php
  54. } else { /* entrada dentro de outros estados exemplo validar obrig, este ciclo serve principalmente para deixar apenas um formulario de cada vez na pagina ou seja ou aparece o formulario inicial ou entao aparece o estados seguintes caso tenha o $_post ja algum valor*/
  55. $estado=$_POST["estado"];
  56. switch ($estado)
  57. {
  58. case '':
  59. break;
  60. case 'validar_obrig': /* estado validar_obrig este estado tem como objectivo validar os dados anteriormente preenchidos no formulario, caso estejam os dados validados devera aparecer um formulario com os dados em campo hidden e ao submetermos ira para o proximo estado,caso contrario devera aparecer que tem erros e devera aparecer um botao que ao carregar voltar para o formulario anterior */
  61. echo "<h3>Dados obrigatórios - validação</h3>";
  62. $user= $_POST['user'];
  63. $telefone= $_POST['telefone'];
  64. $operadora= $_POST['operadora'];
  65. $email= $_POST['email'];
  66. if((empty($user)) || (empty($telefone)) || (empty($email)))
  67. {
  68. echo "Preencha correctamente o formulario anterior <br \>";
  69. //###################################################### botao voltar
  70. if(is_single() || is_page()){
  71. echo "<script type='text/javascript'>document.write(\"<a href='javascript:history.back()' class='backLink' title='Voltar Atrás'>Voltar Atrás</a>\");</script><noscript><a href='".$_SERVER['HTTP_REFERER']."' class='backLink' title='Voltar Atrás'>Voltar Atrás</a></noscript>";}
  72. //######################################################
  73. }
  74. else
  75. {
  76. ?>
  77. <form id="registo-de-contacto" name="registo-de-contacto" method="post" action="registo-de-contacto" >
  78. <table align="center" width="60%" border="0">
  79. <tr>
  80. <td width="48%"><div align="right"><strong>Nome Completo:</strong></div></td>
  81. <td width="52%"><?php echo "$user"; ?><input type="hidden" name="user" value="<?php echo "$user"; ?>" /></td>
  82. </tr>
  83. <tr>
  84. <td width="48%"><div align="right"><strong>Número de telefone:</strong></div></td>
  85. <td width="52%"><?php echo "$telefone";?><input type="hidden" name="telefone" value="<?php echo "$telefone"; ?>" /></td>
  86. </tr>
  87. <tr>
  88. <td width="48%"><div align="right"><strong>Operadora:</strong></div></td>
  89. <td width="52%"><?php echo "$operadora"; ?><input type="hidden" name="operadora" value="<?php echo "$operadora"; ?>" /></td>
  90. </tr>
  91. <tr>
  92. <td><div align="right"><strong>Endereço de e-mail:</strong></div></td>
  93. <td><?php echo "$email"; ?><input type="hidden" name="email" value="<?php echo "$email"; ?>" /></td>
  94. </tr>
  95. <input type="hidden" name="estado" value="inserir_obrig" />
  96. <tr>
  97. <td>&nbsp;</td>
  98. <td><input type="submit" name="submeter" id="submeter" value="submeter" /></td>
  99. </tr>
  100. </table>
  101. </form>
  102. <?php
  103. }
  104. break;
  105. case 'inserir_obrig':
  106. echo"<h3>Dados obrigatórios - inserção</h3>";
  107. /* Este estado tem como finalidade a criacao de uma querie para a insercao dos dados na base de dados e retirar o id da ultima insercao na bd para depois continuarmos nos estados seguintes a introduzir dados relacionados com o mesmo id e apresentar claro um formulario em que ao clicarmos nos levara ao proximo estado*/
  108. $user= $_POST['user'];
  109. $telefone= $_POST['telefone'];
  110. $operadora= $_POST['operadora'];
  111. $email= $_POST['email'];
  112. $sql= "INSERT INTO person(id,name,phone,phone_comp_code,email) VALUES ('','$user','$telefone','$operadora','$email')";
  113. echo "Inseriu os dados obrigatórios com sucesso.";
  114. if (!mysql_query($sql))
  115. {
  116. die('Error: ' . mysql_error());
  117. }
  118. $id= mysql_insert_id();
  119. mysql_close();
  120. ?>
  121. <form id="registo-de-contacto" name="registo-de-contacto" method="post" action="registo-de-contacto" >
  122. <table align="center" width="60%" border="0">
  123. <tr>
  124. <input type="hidden" name="estado" value="introduzir_opc" />
  125. <input type="hidden" name="id" value="<?php echo "$id"; ?>" />
  126. </tr>
  127. <td><input type="submit" name="Continuar" id="Continuar" value="Continuar" /></td>
  128. </tr>
  129. </table>
  130. </form>
  131. <?php
  132. break;
  133. /*Este estado e onde temos todos os dados opcionais no qual temos que introduzir se formos bem sucedidos nos estados anteriores, este estado tem um formulario que apos fazermos a inserºao de todos os dados passaremos para o estado seguinte que sera a validação dos dados deste formulario*/
  134. case 'introduzir_opc':
  135. $id=$_POST['id'];
  136. echo"<h3>Dados opcionais - introdução</h3>";
  137. echo"<h3> Obrigado por ter submetido os dados obrigatórios. Pode agora, abaixo, indicar mais informações - agora opcionais - como outros dados pessoais e/ou uma palavra-chave que poderá usar para aceder à sua conta de utilizador de modo a poder alterar os dados e/ou inscrever-se em actividades.</h3>";
  138. ?>
  139. <form id="registo-de-contacto" name="registo-de-contacto" method="post" action="registo-de-contacto" >
  140. <table align="center" width="60%" border="0">
  141. <tr>
  142. <td width="48%"><div align="right"><strong>Nome de utilizador:</strong></div></td>
  143. <td width="52%"><input name="user_login" type="text" id="user_login" size="50" /></td>
  144. </tr>
  145. <tr>
  146. <td width="48%"><div align="right"><strong>Palavra-chave:</strong></div></td>
  147. <td width="52%"><input name="pas" type="password" id="pas" size="23" /></td>
  148. </tr>
  149. <tr>
  150. <td width="48%"><div align="right"><strong>Confirmação da palavra-chave:</strong> </div></td>
  151. <td width="52%"><input name="pass" type="password" id="pass" size="23" /></td>
  152. </tr>
  153. <tr>
  154. <td width="48%"><div align="right"><strong>Número de telefone secundário :</strong> </div></td>
  155. <td width="52%"><input name="numero_valido" type="text" id="numero_valido" size="23" /></td>
  156. </tr>
  157. <tr>
  158. <td width="48%"><div align="right"><strong>Operadora do número de telefone secundário:</strong></div></td>
  159. <td width="52%"><select name="operadora"><?php
  160. $oper= "SELECT * from phone_comp";
  161. $opera = mysql_query($oper);
  162. while ($row = mysql_fetch_array($opera)) {
  163. echo '<option value ='.$row["code"].'>' .$row["name"].'</option>';
  164. }
  165. ?>
  166. </select></td>
  167. </tr>
  168. <tr>
  169. <td><div align="right"><strong>Endereço de e-mail secundário:</strong></div></td>
  170. <td><input name="endereco_valido" type="text" id="endereco_valido" size="35" /></td>
  171. </tr>
  172. <tr>
  173. <td><div align="right"><strong>Data de nascimento:</strong></div></td>
  174. <td><input name="data_valida" type="text" id="data_valida" size="35" /><script type="text/javascript">
  175. AnyTime.picker( "data_valida",
  176. { format: "%z-%m-%e", firstDOW: 1 } );
  177. </script></td>
  178. </tr>
  179. <tr>
  180. <td><div align="right"><strong>Profissão principal:</strong></div></td>
  181. <td><input name="profissao_principal" type="text" id="profissao_principal" size="35" /></td>
  182. </tr>
  183. <tr>
  184. <td><div align="right"><strong>Profissão Secundaria:</strong></div></td>
  185. <td><input name="profissao_secundaria" type="text" id="profissao_secundaria" size="35" /></td>
  186. </tr>
  187. <tr>
  188. <td><div align="right"><strong>Actividades em que está interessado(a):</strong></div></td>
  189. <td><?php /* esta querie faz uma consulta a bd e Retorna uma matriz que corresponde a linha buscada, ou FALSE se não houverem mais linhas, ou seja ira mostrar dentro de uma checkbox todos os nome das actividades que estao inseridas na bd */
  190. $oper= "SELECT * from act_type";
  191. $opera = mysql_query($oper);
  192. while ($row = mysql_fetch_array($opera)) {
  193. echo'<input type="checkbox" name="checkbox" value="'.$row["code"].'" />'.$row["name"].'<br />';
  194. }
  195. ?></td>
  196. </tr>
  197. <input type="hidden" name="estado" value="validar_opc" />
  198. <input type="hidden" name="id" value="<?php echo "$id"; ?>" />
  199. <tr>
  200. <td>&nbsp;</td>
  201. <td><input type="submit" name="submeter" id="submeter" value="submeter" /></td>
  202. </tr>
  203. </table>
  204. </form>
  205. <?php
  206. break;
  207. /*Este estado tem como objectivo validar o formulario anterior caso, todos os dados sejam validados aparecera todos os dados em campos hidden onde podera verificar todos os dados que inseriu e ao clicar passara ao estado seguinte caso contrario aparecera uma mensagem de erro e um botao para voltar ao formulario anterior para poder vir a fazer alteracoes de forma a passar ao estado seguinte*/
  208. case 'validar_opc':
  209. $id=$_POST['id'];
  210. echo $id;
  211. echo"<h3>Dados obrigatórios - validar_opc</h3>";
  212. $user_login= $_POST['user_login'];
  213. $pas= $_POST['pas'];
  214. $pass= $_POST['pass'];
  215. $numero_valido= $_POST['numero_valido'];
  216. $operadora_secundaria= $_POST['operadora'];
  217. $endereco_valido= $_POST['endereco_valido'];
  218. $data_valida= $_POST['data_valida'];
  219. $profissao_principal= $_POST['profissao_principal'];
  220. $profissao_secundaria= $_POST['profissao_secundaria'];
  221. $checkbox= $_POST['checkbox'];
  222. if (($user_login == "") OR ($pas == "") OR ($pass == "" ) OR ($pas != $pass ) OR ($numero_valido == "" ) OR ($endereco_valido == "" ) OR ($data_valida == "") OR ($profissao_principal == "") OR ($profissao_secundaria == "") OR ($checkbox == ""))
  223. {
  224. echo "Introduza correctamente os dados nos campos <br \>";
  225. //########################################################## botao voltar
  226. if(is_single() || is_page()){
  227. echo "<script type='text/javascript'>document.write(\"<a href='javascript:history.back()' class='backLink' title='Voltar Atrás'>Voltar Atrás</a>\");</script><noscript><a href='".$_SERVER['HTTP_REFERER']."' class='backLink' title='Voltar Atrás'>Voltar Atrás</a></noscript>";}
  228. //##########################################################
  229. }
  230. else
  231. {
  232. ?>
  233. <form id="registo-de-contacto" name="registo-de-contacto" method="post" action="registo-de-contacto" >
  234. <table align="center" width="60%" border="0">
  235. <tr>
  236. <td width="48%"><div align="right"><strong>Nome de utilizador:</strong></div></td>
  237. <td width="52%"><?php echo "$user_login";?><input type="hidden" name="user_login" value="<?php echo "$user_login";?>" /></td>
  238. </tr>
  239. <tr>
  240. <td width="48%"><div align="right"><strong>Palavra-chave:</strong></div></td>
  241. <td width="52%"><?php echo "$pas";?><input type="hidden" name="pas" value="<?php echo "$pas";?>" /></td>
  242. </tr>
  243. <tr>
  244. <td width="48%"><div align="right"><strong>Confirmação da palavra-chave:</strong> </div></td>
  245. <td width="52%"><?php echo "$pass";?><input type="hidden" name="pass" value="<?php echo "$pass";?>" /></td>
  246. </tr>
  247. <tr>
  248. <td width="48%"><div align="right"><strong>Número de telefone secundário :</strong> </div></td>
  249. <td width="52%"><?php echo "$numero_valido";?><input type="hidden" name="numero_valido" value="<?php echo "$numero_valido";?>" /></td>
  250. </tr>
  251. <tr>
  252. <td width="48%"><div align="right"><strong>Operadora do número de telefone secundário:</strong></div></td>
  253. <td width="52%"><?php echo "$operadora_secundaria";?><input type="hidden" name="operadora_secundaria" value="<?php echo "$operadora_secundaria";?>" /></td>
  254. </tr>
  255. <tr>
  256. <td><div align="right"><strong>Endereço de e-mail secundário:</strong></div></td>
  257. <td><?php echo "$endereco_valido";?><input type="hidden" name="endereco_valido" value="<?php echo "$endereco_valido";?>" /></td>
  258. </tr>
  259. <tr>
  260. <td><div align="right"><strong>Data de nascimento:</strong></div></td>
  261. <td><?php echo "$data_valida";?><input type="hidden" name="data_valida" value="<?php echo "$data_valida";?>" /></td>
  262. </tr>
  263. <tr>
  264. <td><div align="right"><strong>Profissão principal:</strong></div></td>
  265. <td><?php echo "$profissao_principal";?><input type="hidden" name="profissao_principal" value="<?php echo "$profissao_principal";?>" /></td>
  266. </tr>
  267. <tr>
  268. <td><div align="right"><strong>Profissão Secundaria:</strong></div></td>
  269. <td><?php echo "$profissao_secundaria";?><input type="hidden" name="profissao_secundaria" value="<?php echo "$profissao_secundaria";?>" /></td>
  270. </tr>
  271. <tr>
  272. <td><div align="right"><strong>Actividades em que está interessado(a):</strong></div></td>
  273. <td><?php echo "$checkbox";?><input type="hidden" name="checkbox" value="<?php echo "$checkbox";?>" /></td>
  274. </tr>
  275. <input type="hidden" name="estado" value="inserir_opc" />
  276. <input type="hidden" name="id" value="<?php echo "$id"; ?>" />
  277. <tr>
  278. <td>&nbsp;</td>
  279. <td><input type="submit" name="submeter" id="submeter" value="submeter" /></td>
  280. </tr>
  281. </table>
  282. </form>
  283. <?php
  284. }
  285. break;
  286. /*Neste estado temos como finalidade a insercao de todos os dados na base de dados no id no qual temos vindo a passar atraves dos campos hidden e post e aparecera apos termos inserido os dados uma mensagem de sucesso dos dados na base de dados*/
  287. case 'inserir_opc':
  288. $id= $_POST['id'];
  289. $IDPERS= $_POST['id'];
  290. echo"<h3>Dados opcionais - inserção</h3>";
  291. $user_login= $_POST['user_login'];
  292. $NICK= $_POST['user_login'];
  293. $pas= $_POST['pas'];
  294. $pass= $_POST['pass'];
  295. $passs= md5($pass);
  296. $numero_valido= $_POST['numero_valido'];
  297. $operadora_secundaria= $_POST['operadora_secundaria'];
  298. $endereco_valido= $_POST['endereco_valido'];
  299. $data_valida= $_POST['data_valida'];
  300. $profissao_principal= $_POST['profissao_principal'];
  301. $profissao_secundaria= $_POST['profissao_secundaria'];
  302. $checkbox= $_POST['checkbox'];
  303. $user_registered= date("Y/m/d H:i:s ");
  304. $oper= "SELECT email FROM person WHERE id= $id ";
  305. $opera = mysql_query($oper);
  306. /*esta consulta e feita usando o id que retiramos usando a funcao mysql_insert_id() de forma a obtermos o email para introduzirmos na tabela wp_users */
  307. while($registo=mysql_fetch_array($opera))
  308. {
  309. $email=$registo["email"];
  310. }
  311. $sql= mysql_query("INSERT INTO wp_users(ID,user_pass,user_login, user_nicename,display_name,user_email,user_registered) VALUES ('$id','$passs','$user_login','$user_login','$user_login','$email','$user_registered')");
  312. $trt= mysql_query("INSERT INTO wp_usermeta (user_id,meta_key,meta_value) VALUES($IDPERS, 'wp_capabilities', 'a:1:{s:10:".'"subscriber"'.";s:1:".'"1"'.";}'),
  313. ($IDPERS, 'wp_user_level', '0'),($IDPERS, 'nickname', '$NICK')");
  314. $ccc= mysql_query("INSERT INTO person_phone(person_id,phone,phone_comp_code) VALUES ('$id','$numero_valido','$operadora_secundaria')"); /*este insert serve para inserir a operadora e o numero de telefone secundario na tabela person_phone*/
  315. $ttt= mysql_query("INSERT INTO person_email(person_id,email) VALUES ('$id','$endereco_valido')");/*este insert serve para inserir o email secundario na tabela person_email */
  316. $tuu= mysql_query("INSERT INTO person_birth(person_id,date) VALUES ('$id','$data_valida')");
  317. /*este insert serve para inserir a data de nascimento da pessoa que se esta registando na tabela person_birth */
  318. $job = mysql_query("SELECT * FROM job WHERE name = '$profissao_secundaria'");
  319. /*esta querie tem como funcionalidade verificar se a profissao secundaria do cliente que se registou ja esta na base de dados fazendo a contagem do numero de linhas com aquela profissao caso seja igual a zero é inserido na tabela job e atraves do mysql_insert_id retiramos o id e inserimos tambem na tabela person_has_job caso essa profissao ja exista entao apenas tiramos o id dessa profissao da tabela job e inserimos na tabela person_has_job,
  320. nota: para a profissao secundario assinalamos a ord como dois e para profissao principal como ord 1 que servira para depois saber qual a profissao principal e secundaria do utilizador em questao*/
  321. $contar_job = mysql_num_rows($job);
  322. if($contar_job ==0)
  323. {
  324. $inserir_job = mysql_query("INSERT INTO job(id,name) VALUES ('','$profissao_secundaria')");
  325. $valor = mysql_insert_id();
  326. $tvb= mysql_query("INSERT INTO person_has_job(person_id,job_id,ord) VALUES ('$id','$valor','2')");
  327. }
  328. else
  329. {
  330. $linhas = mysql_fetch_assoc($job);
  331. $val = $linhas['id'];
  332. $tvb= mysql_query("INSERT INTO person_has_job(person_id,job_id,ord) VALUES ('$id','$val','2')");
  333. }
  334. $job1 = mysql_query("SELECT * FROM job WHERE name = '$profissao_principal'");
  335. $contar_job = mysql_num_rows($job1);
  336. if($contar_job ==0)
  337. {
  338. $inserir_job = mysql_query("INSERT INTO job(name) VALUES ('$profissao_principal')");
  339. $val = mysql_insert_id();
  340. $tvb= mysql_query("INSERT INTO person_has_job(person_id,job_id,ord) VALUES ('$id','$val','1')");
  341. }
  342. else
  343. {
  344. $linhas= mysql_fetch_assoc($job);
  345. $val= $linhas['id'];
  346. $tvb= mysql_query("INSERT INTO person_has_job(person_id,job_id,ord) VALUES ('$id','$val','1')");
  347. }
  348. /*esta insercao tem como objectivo inserir dados na tabela activity como o code da actividade e o id da pessoa*/
  349. $tvk= mysql_query("INSERT INTO interest(id,person_id,act_type_code) VALUES ('','$id','$checkbox')");
  350. mysql_close();
  351. /*Apos os dados serem inseridos com sucesso devera aparecer a mensagem: os dados foram inseridos com sucesso*/
  352. echo" Os dados foram inseridos com sucesso";
  353. break;
  354. default:
  355. }
  356. }
  357. ?>
  358. </body>
  359. </html>