/controller/alteracao/alterar2.php

https://github.com/andrerezende/CENSO · PHP · 163 lines · 120 code · 28 blank · 15 comment · 16 complexity · 12f268a561e541e7c320c4d421fd9345 MD5 · raw file

  1. <?php
  2. session_start();
  3. // iniciando variaveis de sessao
  4. $_SESSION['campoAlterado'] =& $campoAlterado;
  5. $_SESSION['registroFromPOST'] =& $_POST;
  6. $campoAlterado = null;
  7. require_once '../../model/Conexao.php';
  8. require_once '../../controller/Seguranca.php';
  9. //ini_set('display_errors', 1);
  10. //***************************
  11. // DESCOBRIR CAMPOS ALTERADOS
  12. //***************************
  13. // é necessario pegar o registro antigo para verificar quais campos foram alterados
  14. $registroFromBanco = $_SESSION['registroFromBanco'];
  15. // email + dominio
  16. $_POST['email'] .= $_POST['email_dominio'];
  17. unset($_POST['email_dominio']);
  18. unset($_POST['declaracao']);
  19. //print_r($_POST);exit;
  20. $registroFromPOST = $_POST;
  21. if($registroFromBanco && $registroFromPOST) {
  22. //print_r($_SESSION);exit;
  23. $i = 0;
  24. foreach($registroFromPOST as $chave=>$valor) {
  25. // SE FOR NOME_CIDADE NAO USE STRUPPER
  26. if($chave != "nome_cidade") {
  27. $registroFromPOST[$chave] = strtoupper($valor);
  28. }
  29. // NECESSIDADE ESPECIAL
  30. if($chave == "necessidade_especial_outra") {
  31. if($valor) { // se necessidade_especial_outra tiver sido preenchido
  32. $registroFromPOST["necessidade_especial"] = $registroFromPOST["necessidade_especial_outra"];
  33. }
  34. }
  35. // POPULA ARRAY DE CAMPOS ALTERADOS E POE ASPAS
  36. if(array_key_exists($chave, $registroFromBanco)) { // certificando-se de que esta coluna existe no banco
  37. if($registroFromPOST[$chave] != $registroFromBanco[$chave]) { // comparando o valor do post com o valor do banco, se for diferente, entra
  38. $campoAlterado[$i]['campo_alterado'] = "'$chave'";
  39. $campoAlterado[$i]['valor_antigo'] = ($registroFromBanco[$chave]) ? "'$registroFromBanco[$chave]'" : "null";
  40. $campoAlterado[$i]['data_alteracao'] = "'".date('d/m/Y')."'";
  41. // dados que precisam ser checados
  42. switch($chave) {
  43. case "nome":
  44. case "estadocivil":
  45. case "endresidencial":
  46. case "rg":
  47. case "dataprimeiroemprego":
  48. case "numerobanco":
  49. case "nomebanco":
  50. case "agencia":
  51. case "conta":
  52. case "segundograu":
  53. case "segundograu_instituicao":
  54. case "segundograu_curso":
  55. case "segundograu_dataconclusao":
  56. case "terceirograu":
  57. case "terceirograu_instituicao":
  58. case "terceirograu_curso":
  59. case "terceirograu_dataconclusao":
  60. case "posgraduacao1_tipo":
  61. case "posgraduacao1_situacao":
  62. case "posgraduacao1_curso":
  63. case "posgraduacao1_instituicao":
  64. case "posgraduacao1_cargahoraria":
  65. case "posgraduacao1_dataconclusao":
  66. case "posgraduacao2_tipo":
  67. case "posgraduacao2_situacao":
  68. case "posgraduacao2_curso":
  69. case "posgraduacao2_instituicao":
  70. case "posgraduacao2_cargahoraria":
  71. case "posgraduacao2_dataconclusao":
  72. case "posgraduacao3_tipo":
  73. case "posgraduacao3_situacao":
  74. case "posgraduacao3_curso":
  75. case "posgraduacao3_instituicao":
  76. case "posgraduacao3_cargahoraria":
  77. case "posgraduacao3_dataconclusao":
  78. case "posgraduacao4_tipo":
  79. case "posgraduacao4_situacao":
  80. case "posgraduacao4_curso":
  81. case "posgraduacao4_instituicao":
  82. case "posgraduacao4_cargahoraria":
  83. case "posgraduacao4_dataconclusao":
  84. case "idioma1":
  85. case "idioma1_leitura":
  86. case "idioma1_fala":
  87. case "idioma1_escrita":
  88. case "idioma2":
  89. case "idioma2_leitura":
  90. case "idioma2_fala":
  91. case "idioma2_escrita":
  92. case "idioma3":
  93. case "idioma3_leitura":
  94. case "idioma3_fala":
  95. case "idioma3_escrita":
  96. case "idioma4":
  97. case "idioma4_leitura":
  98. case "idioma4_fala":
  99. case "idioma4_escrita":
  100. $campoAlterado[$i]['checado'] = 0;
  101. break;
  102. // para todos os outros, check automaticamente
  103. default:
  104. $campoAlterado[$i]['checado'] = 1;
  105. }
  106. $i++;
  107. }
  108. }
  109. }
  110. if($campoAlterado) {
  111. // SEGURANÇA ANTI-INJECTION E ADD ASPAS PARA ENVIAR P/ BANCO
  112. foreach($registroFromPOST as $chave=>$valor) {
  113. if($chave != "id_pessoa") {
  114. $registroFromPOST[$chave] = ($valor) ? "'".Seguranca::anti_injection($valor)."'" : "null";
  115. }
  116. }
  117. if(Conexao::getInstance()->update($registroFromPOST, $campoAlterado)) { ?>
  118. <script>
  119. alert("Obrigado por participar do nosso CENSO 2011, sua participação foi muito importante.");
  120. location.href = '../../controller/confirmacao_de_acesso/confirmar.php';
  121. </script>
  122. <?php } else { ?>
  123. <script>
  124. alert("Houve um erro ao alterar o registro. Verifique se os dados foram digitados corretamente e tente novamente.");
  125. history.go(-1);
  126. </script>
  127. <?php
  128. }
  129. }
  130. } else { ?>
  131. <script>
  132. alert("Não é possível exibir a página solicitada!");
  133. location.href = '../../index.php';
  134. </script>
  135. <?php }