Jump to content
Sign in to follow this  
Helison Santos

Formulário dinâmico salvo no banco

Recommended Posts

Olá, pessoal.

Estou procurando por exemplos e soluções que me ajudem a criar a seguinte questão. Preciso criar formulários em um sistema, para gerar uma especie e Survey (questionário), onde os campos deveram ser criados pelo usuário, quase como no Google Forms, porem de uma forma mais simples, sem muita firula.

 

Os campos necessários serão, radios, checkbox, texts e textareas. Procurei on-line, e só me retorna resultados de inserção de dados no banco.

 

Desde já agradeço pela ajuda.

Share this post


Link to post
Share on other sites

Ideia básica:

1 - Uma tabela para gerenciar os questionários, irá agregar todas os campos;

2 - Uma tabela para os campos propriamente dito; aqui basicamente seriam necessários os campos:

-- Pergunta;

-- Tipo de campo (text, select, radio...);

-- Ordem (Especifica em qual posição a pergunta em questão vai aparecer para o usuário);

3 - Uma tabela para os adicionais do campo, tirando o text/textarea, os demais campos são compostos por várias opções, então você salvaria estas opções nesta tabela.

 

Na parte de como criar isto propriamente dito, na parte dos campos, eu começaria exibindo apenas uma opção "tipo de campo" e a partir do tipo selecionado exibiria a opção adequada para o usuário preencher.

 

Isso tudo pode ser muito refinado, mas a ideia básica é esta.

  • +1 1

Share this post


Link to post
Share on other sites

Esse que a gente usa para digitar nada mais é do que um editor visual (WYSIWYG)... os melhores são tinyMCE ou CKEditor, implementar eles é fácil, basta baixar e seguir o manual.

Share this post


Link to post
Share on other sites

Criei uma parte aqui porem estou tendo um problema, que creio que seja simples a questão.

HTML

<label for="resposta_1" class="floatleft">
    <b>Resposta 1:</b>
    <input type="text" name="resposta[]" size="40" />
</label>
<label for="resposta_2">
     <b>Resposta 2:</b>
     <input type="text" name="resposta[]" size="40" />
</label>
<label for="resposta_2" class="floatleft">
      <b>Resposta 3:</b>
      <input type="text" name="resposta[]" size="40" />
</label>
<label for="resposta_4">
       <b>Resposta 4:</b>
       <input type="text" name="resposta[]" size="40" />
</label>
<label for="resposta_5">
       <b>Resposta 5:</b>
       <input type="text" name="resposta[]" size="40" />
</label>

PHP

resposta = $_POST['resposta'];
		
echo "<pre>";
print_r($resposta);
exit;

E sempre esta retornando a palavra "Array", porem quando coloco:

$resposta[] = $_POST['resposta'];

Retorna isso:

Array
(
    [0] => Campo A
    [1] => Campo B
    [2] => Campo C
    [3] => Campo D
    [4] => Campo E
    [5] => Array
)

Porque esse 5º elemento, e quando dou print_r apenas da variável sem [] retorna apenas um a palavra Array?

Share this post


Link to post
Share on other sites

O seu HTML é apenas aquilo ou tem mais alguma coisa?

Share this post


Link to post
Share on other sites

Concluindo o comentário do colega, se for só isso que você tem no HTML não tem o porquê dar erro, mas se tem mais código ali está o problema.

Share this post


Link to post
Share on other sites

Além disso tem apenas o form com method POST, o que esta acontecendo é que de alguma forma não está reconhecendo a variável $resposta mesmo que eu mude o nome dela ela não armazena os dados passados pelo $_POST['resposta'] e assim quando dou print_r ela retorna apenas a palavra Array:

$resposta = $_POST['resposta'];

Porem quando retiro ela, e dou o print_r apenas em:

echo "<pre>";
print_r($resposta);
exit;

Dai retorna:

Array
(
    [0] => Campo A
    [1] => Campo B
    [2] => Campo C
    [3] => Campo D
    [4] => Campo E
) 

torna:

Share this post


Link to post
Share on other sites

O problema estava na utilização das tags <label> estavam gerando este comportamento estranho, porem não deixa de fazer sentido. Foi apenas substituir por <div> que correu tudo bem.

Share this post


Link to post
Share on other sites

Na verdade era outra coisa, um função que estava usando na página acima desse forme, estava causando algum erro incomum no sistema. A função era a seguinte:

function anti_injection($texto){

	$texto = preg_replace("/(TRUNCATE|FROM|UPDATE|SELECT|INSERT|DELETE|WHERE|DROP TABLE|SHOW TABLE|ALTER TABLE|\*|--)/","",$texto);
	$texto = preg_replace("/(TRUNCATE|FROM|UPDATE|SELECT|INSERT|DELETE|WHERE|DROP TABLE|SHOW TABLE|ALTER TABLE|\*|--)/","",$texto);
	$texto = str_replace("/(truncate|from|update|select|insert|delete|where|drop table|show table|alter table|\*|--)/","",$texto);
	$texto = str_replace("/(truncate|from|update|select|insert|delete|where|drop table|show table|alter table|\*|--)/","",$texto);

	$_POST = preg_replace("/(truncate|from|update|select|insert|delete|where|drop table|show table|alter table|\*|--)/","",$_POST);
	$_GET = preg_replace("/(truncate|from|update|select|insert|delete|where|drop table|show table|alter table|\*|--)/","",$_GET);
	$_COOKIE = preg_replace("/(truncate|from|update|select|insert|delete|where|drop table|show table|alter table|\*|--)/","",$_COOKIE);

	$_POST = preg_replace("/(FROM|ALTER TABLE|SELECT|INSERT|DELETE|UPDATE|WHERE|DROP TABLE|TRUNCATE|DATABASE|CREATE|RESET|SHOW TABLES|#|\*|--|\\\\)/i","",$_POST);
	$_GET = preg_replace("/(FROM|ALTER TABLE|SELECT|INSERT|DELETE|UPDATE|WHERE|DROP TABLE|TRUNCATE|DATABASE|CREATE|RESET|SHOW TABLES|#|\*|--|\\\\)/i","",$_GET);
	$_COOKIE = preg_replace("/(FROM|ALTER TABLE|SELECT|INSERT|DELETE|UPDATE|WHERE|DROP TABLE|TRUNCATE|DATABASE|CREATE|RESET|SHOW TABLES|#|\*|--|\\\\)/i","",$_COOKIE);

	$texto = str_replace("^","",$texto);
	$texto = str_replace(" ","",$texto);
	$texto = str_replace(" ","",$texto);
	$texto = str_replace(" ","",$texto);
	$texto = str_replace(" ","",$texto);
	$texto = strip_tags($texto);
	$texto = addslashes($texto);
	$texto = mysql_real_escape_string($texto);

	return $texto;// remove palavras que contenham sintaxe sql

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By jeandelima
      Olá pessoal, estava querendo saber se podem me ajudar com uma pequena dúvida que surgiu há poucos dias.
       
      Estou com problemas pra importar um banco de dados pra o usar no meu servidor local (xampp). O banco de dados foi exportado do site de um cliente, e lá no server eles usam o mysql. Instalei a versão mais recente do xampp no meu pc, e quando fui importar o banco pra poder começar os trabalhos, deu vários erros de sintaxe. Daí fiz umas pesquisas e encontrei alguns materiais que mencionavam que o xampp agora usa o mariadb, e ele não é 100% compatível com mysql.
       
      Estou há um bom tempo sem mexer com programação e também sem me atualizar das coisas, e gostaria de saber se alguém sabe a partir de qual versão do xampp eles passaram a usar o mariadb. Eu já pesquisei mas não obtiver sucesso. E instalar e desinstalar inúmeras versões é algo trabalhoso e cansativo demais. Alguém poderia me ajudar?
       
      Desde já, muito obrigado.
       
      PS.: Por ser novo aqui no forum, e por não frequentar forum há muito tempo, acho que acabei postando no lugar errado. Peço perdão aos adms.
    • By Ygor Silva
      Boa tarde gente. Tenho meu site em Mobirise, pra pegar leads. 
      Ao cliente clicar em enviar ele só mostra a mensagem de "obrigado, aguarde nosso contato". 
      Eu gostaria que em vez disto, ele encaminhasse ele pra página de obrigado.
      Já tentei um mente de coisas mas não funcionou.
       
      Segue abaixo o código. Este meu formulário é formoid.
      <div data-form-type="formoid">                     <!---Formbuilder Form--->                     <form action="https://mobirise.com/" method="POST" class="mbr-form form-with-styler" data-form-title="Mobirise Form"><input type="hidden" name="email" data-form-email="true" value="A6LDZwZh8SsHY2SXE5G0uDeobTt+vGAPyztLTpaFnJ3YS523L+3ekb+dfC0ljSO2ENKcG2x7MzCrFsvX6BsE84UN+iQwUvASww4aTuqS7DVv4QO8axCqYvnhYxsAOEpX">                         <div class="row">                             <div hidden="hidden" data-form-alert="" class="alert alert-success col-12">Obrigado por deixar seu contato. Em breve ligaremos pra você.</div>                             <div hidden="hidden" data-form-alert-danger="" class="alert alert-danger col-12">                             </div>                         </div>                         <div class="dragArea">                             <div class="col-md-6  form-group" data-for="name">                                 <input type="text" name="name" placeholder="Seu nome" data-form-field="Name" required="required" class="form-control input display-7" id="name-form4-d">                             </div>                             <div class="col-md-6  form-group" data-for="phone">                                 <input type="text" name="phone" placeholder="Telefone" data-form-field="Phone" required="required" class="form-control input display-7" id="phone-form4-d">                             </div>                             <div data-for="email" class="col-md-12  form-group">                                 <input type="text" name="email" placeholder="E-mail" data-form-field="Email" class="form-control input display-7" required="required" id="email-form4-d">                             </div>                                                          <div class="col-md-12 input-group-btn  mt-2 align-center"><button type="submit" class="btn btn-primary btn-form display-4" href="obrigado.html#header3-2j">ENVIAR</button></div>                         </div>                     </form><!---Formbuilder Form--->                 </div>  
    • By Good
      Boa tarde,
       
      temos um servidor na amazon, e o site está direcionado para o servidor. Estamos tendo um problema, de vez em quando o servidor cai. 
       
      Gostaríamos de saber se tem algum programa no ubuntu, que monitore qual arquivo que teve alto consumo. Para sabermos se o código está escrito de maneira complexa, causando a queda do servidor.
       
      Eu lembro que uma vez a hostgator mandou um relatório, avisando que tal arquivo estava consumindo muito do servidor. É possível fazer esse monitoramento? Não temos como ficar 24h olhando por exemplo o htop..
       
      Aguardo uma resposta,
      obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.