Jump to content
RollySantos

Duvida sobre Script de Formulário

Recommended Posts

E ai gente, tudo bem?
Eu montei um script para um formulário de orçamento para meu site. Porém estou tendo um problema que não estou conseguindo resolver. Gostaria de saber se tem como algum de vocês me ajudar.

Ao efetuar o envio do formulário, recebo uma mensagem que diz que meu php não está respondendo corretamente.
Link do formulário:
http://rolly.com.br/site/orcamento-de-evento/

Este é o formulário:

<p>
<span style="font-size:12px;"><strong>Solicite seu orçamento agora mesmo, basta preencher os campos abaixo e aguardar nosso contato, seu orçamento será respondido o mais rápido possível.</strong></span>
</p>

<div class="formulario">
<form action="http://www.rolly.com.br/formulario/envia.php" method="POST">
<p>
<span style="font-size:14px;"><strong>Nome:</strong></span><br />
<input id="nome" name="nomeremetente" placeholder="Seu nome completo" size="40" type="text" />
</p>

<p>
<span style="font-size:14px;"><strong>E-mail:</strong></span><br />
<input id="email" name="emailremetente" placeholder="Seu email, por qual entraremos em contato" size="40" type="text" />
</p>

<p>
<span style="font-size:14px;"><strong>Telefone:</strong></span><br />
<input id="telefone" name="telefoneremetente" placeholder="Telefone fixo ou Celular" size="40" type="text" />
</p>

<p>
<span style="font-size:14px;"><strong>Facebook:</strong></span><br />
<input id="facebook" name="facebook" placeholder="(opcional) Ex: facebook.com/rolllysantos3d" size="40" type="text" />
</p>

<p>
<span style="font-size:14px;"><strong>Tipo de Evento:</strong></span><br />
<select class="select is_empty av-multi-select" id="tipoevento" multiple="multiple" name="tipoevento"><option value="Recém Nascido">Recém Nascido</option><option value="Festa de 1º Aninho">Festa de 1º Aninho</option><option value="Festa Infantil">Festa Infantil</option><option value="Festa 15 Anos">Festa 15 Anos</option><option value="Ensaio e Festa de Noivado">Ensaio e Festa de Noivado</option><option value="Chá de Panela">Chá de Panela</option><option value="Casamentos">Casamentos</option><option value="Gestantes">Gestantes</option><option value="Chá de Bebê">Chá de Bebê</option><option value="Fotografia de Moda e Beauty">Fotografia de Moda e Beauty</option><option value="Fotografia para Books">Fotografia para Books</option><option value="Fotografia para candidatura e curriculum">Fotografia para candidatura e curriculum</option><option value="Fotografia de Produtos para catalogos">Fotografia de Produtos para catalogos</option><option value="Fotografia de Alimentos">Fotografia de Alimentos</option><option value="Fotografia de Gastronomia">Fotografia de Gastronomia</option></select>
</p>

<p>
<span style="font-size:14px;"><strong>Data do Evento:</strong></span> <input class="avia_datepicker text_input is_empty 
hasDatepicker" id="dataevento" name="dataevento" placeholder="DD/MM/AA" type="text" value="" />
</p>

<p>
<span style="font-size:14px;"><strong>Horário do Evento:</strong></span> <input class="avia_datepicker text_input is_empty 
hasDatepicker" id="horaevento" name="horaevento" placeholder="Ex: 12:30" type="text" value="" />
</p>

<p>
<span style="font-size:14px;"><strong>Cidade do Evento:</strong></span> <select class="select " id="cidadeevento" name="cidadeevento"><option value="Selecione">Selecione</option><option value="Betel">Betel</option><option value="Campinas">Campinas</option><option value="Hortolândia">Hortolândia</option><option value="Indaiatuba">Indaiatuba</option><option value="Monte Mor">Monte Mor</option><option value="Paulínia">Paulínia</option><option value="Sumaré">Sumaré</option><option value="Vinhedo">Vinhedo</option></select>
</p>

<p>
<span style="font-size:14px;"><strong>Opções para o Evento</strong></span><span style="font-size:10px;"> (pode marcar mais de uma opção)</span><strong>:</strong><br />
<input class="input_checkbox " id="ensaioestudio" name="ensaioestudio" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="ensaioemestudio">Ensaio Antecipado em Estudio</label><br />
<input class="input_checkbox " id="ensaioexternas" name="ensaioexternas" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="ensaioexternas">Ensaio Antecipado Externas</label><br />
<input class="input_checkbox " id="videocomfotos" name="videocomfotos" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="videocomfotos">Vídeo Linha do Tempo com fotos antigas (somente arquivo digitalizado)</label><br />
<input class="input_checkbox " id="slideshowcomensaio" name="slideshowcomensaio" type="checkbox" value="sim" /><label class="input_checkbox_label" for="slideshowcomensaio">Video Slideshow com fotos do ensaio</label><br />
<input class="input_checkbox " id="ensaioemcasa" name="ensaioemcasa" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="ensaioemcasa">Ensaio fotográfico em Casa</label><br />
<input class="input_checkbox " id="maquiagemcabelos" name="maquiagemcabelos" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="maquiagemcabelos">Cobertura Maquiagem e Cabelos</label>
</p>

<p>
<span style="font-size:14px;"><strong>Profissionais Solicitados:</strong></span><br />
<span style="font-size:12px;"><strong>Selecione apenas uma opção:</strong></span><br />
<input checked="checked" name="quantfotografo" type="radio" value="um_fotografo" /> 1 Fotógrafo<br />
<input name="quantfotografo" type="radio" value="dois_fotografos" /> 2 Fotógrafos<br />
<span style="font-size:12px;"><strong>Selecione apenas uma opção:</strong></span><br />
<input checked="checked" name="quantcinegrafista" type="radio" value="um_Cinegrafista" /> 1 Cinegrafista<br />
<input name="quantcinegrafista" type="radio" value="dois_Cinegrafistas" /> 2 Cinegrafistas
</p>

<p>
<span style="font-size:14px;"><strong>Mídias</strong></span><span style="font-size:10px;"><strong> (pode marcar mais de uma opção)</strong></span><span style="font-size:14px;"><strong>:</strong></span><br />
<input class="input_checkbox " id="albumtrinta" name="albumtrinta" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="albumtrinta">Album 30x40 (Com 40 paginas e 100 fotos)</label><br />
<input class="input_checkbox " id="bordadocapa" name="bordadocapa" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="bordadocapa">Bordado Inicial na capa do album </label><input id="textoiniciais" name="textoiniciais" placeholder="Iniciais" size="10" type="text" /><br />
<input class="input_checkbox " id="umdvd" name="umdvd" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="umdvd">1 DVD Editado (video)</label><br />
<input class="input_checkbox " id="doisdvd" name="doisdvd" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="doisdvd">2 DVD's Editados (video)</label><br />
<input class="input_checkbox " id="dvdtodas" name="dvdtodas" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="dvdtodas">1 DVD Com todas as fotos do evento</label><br />
<input class="input_checkbox " id="quadroassinatura" name="quadroassinatura" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="quadroassinatura">Quadro de assinaturas (foto interna 30x40)</label><br />
<input class="input_checkbox " id="bannerdoisxum" name="bannerdoisxum" type="checkbox" value=" sim" /><label class="input_checkbox_label" for="bannerdoisxum">Banner 2x1m</label><br />
<span style="font-size:12px;"><strong>DVD para telao:</strong> </span> <input checked="checked" name="dvdptelao" type="radio" value=" Nenhum" />Nenhum <input name="dvdtelao" type="radio" value=" Foto" />Foto <input name="dvdptelao" type="radio" value=" Foto/Video" />Foto/Video <input name="dvdptelao" type="radio" value=" Foto/Video/Homenagem" />Foto/Video/Homenagem<br />
<span style="font-size:12px;"><strong>Convite Fotografico:</strong> </span> <input checked="checked" name="quantconvites" type="radio" value=" Nenhum" />Nenhum <input name="quantconvites" type="radio" value=" 100_convites" />100 convites <input name="quantconvites" type="radio" value=" 300_convites" />300 convites <input name="quantconvites" type="radio" value=" 500_convites" />500 convites<br />
<span style="font-size:12px;"><strong>Fotos impressas:</strong> </span> <input checked="checked" name="tamfotoimpr" type="radio" value=" Nenhum" />Nenhum <input name="tamfotoimpr" type="radio" value=" 10x15" />10x15 <input name="tamfotoimpr" type="radio" value=" 20x25" />20x25 <input name="tamfotoimpr" type="radio" value=" 20x30" />20x30 <input id="nome" name="quantfotoimp" placeholder="Quantidade" size="10" type="text" /><br />
<strong><span style="font-size:12px;">Outros serviços: </span></strong><br />
<textarea class="text_area " cols="40" id="outrosserv" name="outrosserv" rows="7"></textarea>
</p>

<p>
<span style="font-size:14px;"><strong>Observações:</strong></span><br />
Use esta caixa de texto para adicionar informações extras sobre o evento.<br />
<textarea class="text_area " cols="40" id="maisinfo" name="maisinfo" rows="7"></textarea>
</p>

<p>
Em caso de dúvida sobre como é feito o contrato, clique <a href="http://rolly.com.br/site/contrato" target="_blank">aqui</a> e veja o modelo.
</p>

<p>
<input type="submit" value="Solicitar Orçamento" />
</p>

</form>
</div>



E este é o código php que recebe os dados:

<?php
 
$emaildestinatario = 'contato@rolly.com.br';
 
$nomeremetente= $_POST['nomeremetente'];
$emailremetente= trim($_POST['emailremetente']);
$telefoneremetente= $_POST['telefoneremetente'];
$facebook= $_POST['facebook'];
$tipoevento= $_POST['tipoevento'];
$dataevento= $_POST['dataevento'];
$horaevento= $_POST['horaevento'];
$cidadeevento= $_POST['cidadeevento'];
$ensaioestudio= $_POST['ensaioestudio'];
$ensaioexternas= $_POST['ensaioexternas'];
$videocomfotos= $_POST['videocomfotos'];
$slideshowcomensaio= $_POST['slideshowcomensaio'];
$posterevento= $_POST['posterevento'];
$bannergigante= $_POST['bannergigante'];
$ensaioemcasa= $_POST['ensaioemcasa'];
$maquiagemcabelos= $_POST['maquiagemcabelos'];
$maisinfo= $_POST['maisinfo'];
 
$quantfotografo= $_POST['quantfotografo'];
$quantcinegrafista= $_POST['quantcinegrafista'];
 
$albumtrinta= $_POST['albumtrinta'];
$bordadocapa= $_POST['bordadocapa'];
$textoiniciais= $_POST['textoiniciais'];
$umdvd= $_POST['umdvd'];
$doisdvd= $_POST['doisdvd'];
$dvdtodas= $_POST['dvdtodas'];
$quadroassinatura= $_POST['quadroassinatura'];
$bannerdoisxum= $_POST['bannerdoisxum'];
 
$dvdptelao= $_POST['dvdptelao'];
$tamfotoimpr= $_POST['tamfotoimpr'];
$quantconvites= $_POST['quantconvites'];
 
$quantfotoimp= $_POST['quantfotoimp'];
$outrosserv= $_POST['outrosserv'];
//$= $_POST[''];
 
 
$mensagemHTML = '<P>Solicitação de Orçamento para '.$nomeremetente.'</P>
<p><b>Nome: </b> '.$nomeremetente.'
<p><b>E-Mail: </b> '.$emailremetente.'
<p><b>Telefone: </b> '.$telefoneremetente.'
<p><b>Facebook: </b> '.$facebook.'
<p><b>Tipo de Evento: </b> '.$tipoevento.'</p>
<p><b>Data do Evento: </b> '.$dataevento.'</p>
<p><b>Hora do Evento: </b> '.$horaevento.'</p>
<p><b>Cidade do Evento: </b> '.$cidadeevento.'</p>
<p><b>Ensaio Antecipado em Estudio: </b> '.$ensaioestudio.'</p>
<p><b>Ensaio Antecipado Externas: </b> '.$ensaioexternas.'</p>
<p><b>Vídeo Linha do Tempo com fotos antigas: </b> '.$videocomfotos.'</p>
<p><b>Video Slideshow com fotos do ensaio: </b> '.$slideshowcomensaio.'</p>
<p><b>Ensaio fotográfico em Casa: </b> '.$ensaioemcasa.'</p>
<p><b>Maquiagem e Cabelos: </b> '.$maquiagemcabelos.'</p>
<p></p>
<p><b>Quantidade de Fotografos: </b> '.$quantfotografo.'</p>
<p><b>Quantidade de Cinegrafistas: </b> '.$quantcinegrafista.'</p>
<p></p>
<p><b>Album 30x40: </b> '.$albumtrinta.'</p>
<p><b>Bordado Inicial na capa: </b> '.$bordadocapa.'</p>
<p><b>Iniciais na capa: </b> '.$textoiniciais.'</p>
<p><b>1 DVD Editado: </b> '.$umdvd.'</p>
<p><b>2 DVD Editado: </b> '.$doisdvd.'</p>
<p><b>1 DVD com todas as fotos do evento: </b> '.$dvdtodas.'</p>
<p><b>Quadro de assinaturas: </b> '.$quadroassinatura.'</p>
<p><b>Banner 2x1m: </b> '.$bannerdoisxum.'</p>
<p><b>DVD para telão: </b> '.$dvdptelao.'</p>
<p><b>Convite Fotografico: </b> '.$quantconvites.'</p>
<p><b>Fotos impressas: </b> '.$tamfotoimpr.'</p>
<p><b>Quantidade de Fotos impressas: </b> '.$quantfotoimp.'</p>
<p><b>Outros serviços: </b> '.$outrosserv.'</p>
<p></p>
<p><b>Observações: </b> '.$maisinfo.'</p>
<hr>';
$assunto.= "Solicitaçao de Orçamento";
$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $emailremetente\r\n"; // remetente
$headers .= "Return-Path: $emaildestinatario \r\n"; // return-path
$envio = mail($emaildestinatario, $assunto, $mensagemHTML, $headers); 
 
if($envio)echo "<script>location.href='[url=http://rolly.com.br/site/orcamento-sucesso/']http://rolly.com.br/site/orcamento-sucesso/'</script>";[/url]
?>

Formulário atualizado e totalmente corrigido. Atualizado dia 12/04/2016.

Edited by RollySantos

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

  • Similar Content

    • By Hlameiras
      Olá!
       
      Estou tentando desenvolver um formulário dinâmico em PHP, em que o utilizador ao clicar num determinado botão possa acrescentar campos de INPUTs ou SELECTs no mesmo.
      Encontrei este exemplo que funciona mas tem limitações:
      https://www.formget.com/how-to-dynamically-add-form-fields-and-increment-name-attribute-of-the-field/
       
      O problema é que os campos adicionais são gerados pelo lado do cliente (Javascript) e não pelo lado do servidor, logo no caso de gerar SELECTS que vão buscar informação a uma Base de Dados, as opções de escolha não são apresentadas. Qual será a melhor solução para resolver este problema?
       
      Agradecido!
       
       
       
    • By Numero 0800
      Sou bastante iniciante e estou aprendendo sobre HTML, CSS e JavaScript. Estou querendo fazer algo que acredito ser bem simples mas eu não tenho ideia de por onde começar, meu problema é o seguinte:
      Imagina um site de vendas (na parte do administrador do site) e quando o administrador clica em "Adicionar um novo produto" ele preenche um formulário, e assim  este produto aparece logo em seguida na pagina com as informações que foi inserida no formulário.
       
      A minha duvida é a seguinte ---> Como eu faço para que sempre que eu preencher um formulário o site criar automaticamente uma DIV com as informações que foram ali inseridas?
      Eu só preciso de um simples exemplo que o resto eu me viro, porque não estou conseguindo encontrar esta informação na net, só acho formulários do tipo "Crie sua conta" onde você envia informações para ficarem no servidor, mas eu quero um formulário onde ao ser preenchido ele simplesmente crie uma div nova na pagina e que todos possam ver.
       
      Por exemplo: Esse pot de agora, onde estou preenchendo um formulário e quando eu terminar ele vai criar a div automaticamente para todos poderem vem.
       
      OBS: Eu já tenho o modelo da div que eu quero, expliquem também como faz para essa div que vai ser criada seja uma copia da div anterior.
    • By joaopedropeterle
      Boa tarde pessoal!
       
      Preciso fazer os valores digitados no campo do formulário serem escritos de forma inversa, pois se trata de dinheiro, nada do que fiz deu certo até agora... meu código está assim:
       
      var valor = $("#valor"); valor.keyup(() => { valor.val(VMasker.toPattern(valor.val(), "999.999.999,99", {reverse: true})); }) #valor é a ID do campo onde será inserido... Não sei se fui bem claro, sou apenas iniciante...rsrs
    • By roohmcd
      Galera, seguinte, eu tenho um formulário com dois selects ocultos, eles serão exibidos somente quando eu selecionar uma das opções no select pai, porém toda vez que faço o envio deste ele pega o valor de um select oculto. Tem alguma maneira de fazer com ele só pegue o valor se eu selecionar a opção no select pai ?
       
      Este é meu formulário:
       
      <form id="createusers" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" class="needs-validation" oninput='userrepassword.setCustomValidity(userrepassword.value != userpassword.value ? "Senhas não conferem." : "")' novalidate> <div class="form-group"> <div class="input-group"> <div class="input-group-prepend"> <div class="input-group-text"><i class="fas fa-user-circle"></i></div> </div> <input id="username" name="username" placeholder="Usuário" type="text" aria-describedby="usernameHelpBlock" required="required" class="form-control"> <div class="invalid-feedback">Por favor, digite um nome de usuário válido.</div> </div> <small id="usernameHelpBlock" class="form-text text-muted">Digite um nome de usuário.</small> </div> <div class="form-group"> <div class="input-group"> <div class="input-group-prepend"> <div class="input-group-text"><i class="fa fa-lock"></i></div> </div> <input id="userpassword" name="userpassword" placeholder="Senha" type="password" required="required" class="form-control" aria-describedby="userpasswordHelpBlock"> <div class="invalid-feedback">Por favor, digite uma senha.</div> </div> <small id="userpasswordHelpBlock" class="form-text text-muted">Digite uma senha para o usuário. Sua senha deve ter no mínimo 6 caracteres.</small> </div> <div class="form-group"> <div class="input-group"> <div class="input-group-prepend"> <div class="input-group-text"><i class="fa fa-lock"></i></div> </div> <input id="userrepassword" name="userrepassword" placeholder="Confirme a senha" type="password" required="required" class="form-control" aria-describedby="userrepasswordHelpBlock"> <div class="invalid-feedback">Por favor, confirme a senha.</div> </div> <small id="userrepasswordHelpBlock" class="form-text text-muted">Confirme a senha.</small> </div> <div class="form-group"> <label>Informe o grupo do usuário</label> <select id="usergroup" name="usergroup" class="form-control" required> <option value="">-- Selecione uma opção --</option> <option value="neg">Negado</option> <option value="tot">Total</option> <option value="controlado">Controlado</option> <option value="restrito">Restrito</option> <option value="lib">Liberado</option> <option value="noc">No Cache</option> </select> <div class="invalid-feedback">Por favor, selecione uma opção para informar o grupo do usuário.</div> <small id="usergroupHelpBlock" class="form-text text-muted">Selecione um grupo para o usuário.</small> </div> <div class="form-group"> <label>Selecione o grupo controlado para o usuário</label> <select id="usergroup-controlado" name="usergroup" class="form-control"> <option value="c01">Controlado 01</option> <option value="c02">Controlado 02</option> <option value="c03">Controlado 03</option> </select> </div> <div class="form-group"> <label>Selecione o grupo restrito para o usuário</label> <select id="usergroup-restrito" name="usergroup" class="form-control"> <option value="r01">Restrito 01</option> <option value="r02">Restrito 02</option> <option value="r03">Restrito 03</option> <option value="r04">Restrito 04</option> <option value="r05">Restrito 05</option> <option value="r06">Restrito 06</option> <option value="r07">Restrito 07</option> <option value="r08">Restrito 08</option> <option value="r09">Restrito 09</option> </select> </div> <div class="form-group"> <button id="submitcreateuser" name="submitcreateuser" type="submit" class="btn btn-primary">Criar Usuário</button> </div> </form> E para ocultar estes selects uso os seguintes scripts:
       
      <script type="text/javascript"> (function( $ ){ $.fn.dependsOn = function(element, value,callback) { var elements = this; var isContainer = false; //add change handler to element $(element).change(function(){ var $this = $(this); var showEm = false; if ( $this.is('select') ) { var fieldValue = $this.find('option:selected').val(); if ( !value ) { showEm = fieldValue && $.trim(fieldValue) != ''; } else if (typeof(value) === 'string') { showEm = value == fieldValue; } else if ($.isArray(value)) { showEm = ($.inArray(fieldValue, value) !== -1); } } else if ($this.is('input[type="text"]')){ var fieldValue = $this.val(); if ( !value ) { showEm = fieldValue && $.trim(fieldValue) != ''; } else if (typeof(value) === 'string') { showEm = value == fieldValue; } else if ($.isArray(value)) { showEm = ($.inArray(fieldValue, value) !== -1); } } // add containers for input else if ($this.hasClass('depends-container')){ isContainer=true; var target = $this.find('input[type="text"]'); var fieldValue = target.val(); if ( !value ) { showEm = fieldValue && $.trim(fieldValue) != ''; } else if (typeof(value) === 'string') { showEm = value == fieldValue; } else if ($.isArray(value)) { showEm = ($.inArray(fieldValue, value) !== -1); } } if(isContainer){ elements.each(function(){ $(this).toggle(showEm); if(callback){ callback(); } }); }else{ elements.closest('div').toggle(showEm); if(callback){ callback(); } } }); //hide the dependent fields return elements.each(function(){ var $this= $(this); var isContainer= false; $(element).each(function(index){ var el = $(this); if(el.hasClass('depends-container') && el.find('input[type="text"]').length){ isContainer = true; el = el.find('input[type="text"]'); if(el.val() != '' && $this.is('visible') == false ){ $this.show(); if(callback){ callback(); } } } }); if(!isContainer){ $(this).closest('div').hide(); } }); }; })( jQuery ); </script> <script type="text/javascript"> $('#usergroup-controlado').dependsOn('#usergroup', ['controlado']); $('#usergroup-restrito').dependsOn('#usergroup', ['restrito']); </script> E este é o script que faz o envio do formulário, onde obtenho as informações preenchidas:
       
      <?php if(isset( $_POST['submitcreateuser'] )) { $fullname = $_POST["fullname"]; $username = $_POST["username"]; $userpassword = $_POST["userpassword"]; $userrepassword = $_POST["userrepassword"]; $networkaccess = $_POST["networkaccess"]; $usergroup = $_POST["usergroup"]; $createuser = "$username $fullname $networkaccess $usergroup $userpassword $userrepassword s -a; echo $?"; echo "<pre> >> $createuser << </pre>"; } ?> Os selects ocultos são os do grupo Controlado e Restrito, quando selecionar essas opções ele abre outro select com as opções respectivas, tipo Controlado ele irá exibir o select Controlado 01, Controlado 02, Controlado 03. E assim serve também para a opção Restrito.
       
      Tem algo de errado no meu formulário ?
×

Important Information

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