Ir ao conteúdo

dificuldade em html + php


CrowDark

Posts recomendados

Postado

Boa tarde pessoal...

Bom... sou iniciante em programação para web, e comecei pegando html e php, fiz um site de cadastro mas toh tendo dificuldade. Tipo, fiz a parte de html e tá fufando direitinho, mas a parte de php q fica responsavel por pegar os dados e passar para variaveis, nao tá funfando, simplesmente parece q nao pega os dados, só sei q sempre mostra só a mensagem de erro do primeiro if. Irei colocar os codigos aqui, eles estão em dois arquivos separados, gostaria q se alguem pudesse me ajudasse, ficarei bastante grato. :l:)

formulario.html



<html>
<head><title>Site de Cadastro</title></head>

<body>

<FONT FACE="Times New romam" SIZE="3" COLOR="blue">
<FORM NAME="cadastro" METHOD="post" ACTION="cadastro.php"

<pre>
Usuario:
<INPUT TYPE="text" name="usuario" size=20>
Senha: <i>(Maximo de 10 caracteres)</i>
<INPUT TYPE="password" name="senha" size=20 maxlength=10>
Confirmar Senha:
<INPUT TYPE="password" name="conf_senha" size=20 maxlength=10>
</pre>

<HR>

<FONT FACE="Arial" SIZE="3" COLOR="black">


<pre>
Nome:
<INPUT TYPE="text" name="nome" size=30>
Sobrenome:
<INPUT TYPE="text" name="sobrenome" size=30>
</pre>

Sexo:
<input type="radio" name="sex" value="masc">Masculino
<input type="radio" name="sex" value="fem">Feminino
<br>
<br>
Data de Nascimento:<br>

<select name="dia">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>

<select name="mes">
<option value="jan">Janeiro</option>
<option value="fev">Fevereiro</option>
<option value="mar">Março</option>
<option value="abr">Abril</option>
<option value="mai">Maio</option>
<option value="jun">Junho</option>
<option value="jul">Julho</option>
<option value="ago">Agosto</option>
<option value="set">Setembro</option>
<option value="out">Outubro</option>
<option value="nov">Novembro</option>
<option value="dez">Dezembro</option>
</select>

<select name="ano">
<option value="1970">1970</option>
<option value="1971">1971</option>
<option value="1972">1972</option>
<option value="1973">1973</option>
<option value="1974">1974</option>
<option value="1975">1975</option>
<option value="1976">1976</option>
<option value="1977">1977</option>
<option value="1978">1978</option>
<option value="1979">1979</option>
<option value="1980">1980</option>
<option value="1981">1981</option>
<option value="1982">1982</option>
<option value="1983">1983</option>
<option value="1984">1984</option>
<option value="1985">1985</option>
<option value="1986">1986</option>
<option value="1987">1987</option>
<option value="1988">1988</option>
<option value="1989">1989</option>
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select>

<pre>
Rua:
<INPUT TYPE="text" name="rua" size=40>
Numero:
<INPUT TYPE="text" name="num" size=10>
Complemento:
<INPUT TYPE="text" name="comp" size=10>
Bairro:
<INPUT TYPE="text" name="bairro" size=40>
Cidade:
<INPUT TYPE="text" name="cid" size=40>
Estado:
<INPUT TYPE="text" name="est" size=40>
País:
<INPUT TYPE="text" name="país" size=40>
</pre>
<br>
<input type="submit" name="enviar" value="Enviar">
<input type="reset" value="Limpar Tudo">
</form>

</body>
</html>

cadastro.php


<?php
include'formulario.html';

echo "aqui";

$usuario=$_post["usuario"];
$senha=$_post["senha"];
$conf_senha=$_post["conf_senha"];
$nome=$_post["nome"];
$sobrenome=$_post["sobrenoma"];
$sex=$_post["sex"];
$dt_nasc_dia=$_post["dia"];
$dt_nasc_mes=$_post["mes"];
$dt_nasc_mes=$_post["ano"];
$rua=$_post["rua"];
$num=$_post["num"];
$comp=$_post["comp"];
$bairro=$_post["bairro"];
$cidade=$_post["cid"];
$estado=$_post["est"];
$pais=$_post["pais"];
if(empty($usuario))
{
die("Você deve preencher o campo Usuario"); /*só aparece essa parte, mesmo q eu deixe tudo sem digitar, ou digite o usuario*/
}
if(empty($senha))
{
die("Você deve preencher o campo Senha");
}
if(empty($conf_senha))
{
die("Você precisa Confirmar a senha");
}
if((strcmp($senha,$conf_senha))!=0)
{
die("Senhas diferentes! Favor confirmar a senha novamente");
}
if(empty($nome))
{
die("Preencha o campo Nome");
}
if(empty($rua))
{
die("Você deve digitar a Rua em que você mora");
}
if(empty($num))
{
die("Sua casa nao tem numero não?");
}
if(empty($comp))
{
die("Preencha o campo Complemento");
}
if(empty($bairro))
{
die("ou, posso jurar que seu bairro tem um nome!");
}
if(empty($estado))
{
die("Preencha o campo Estado!");
}
if(empty($pais))
{
die("Preencha o campo País");
}
?>

Postado

Seu maior problema é o "include" que você coloca no cadastro.php. Os dois arquivos devem permanecer separados, não coloque o include. O formulário irá passar os valores para o cadastro.php pelo método post. Depois, não utilize a função empty. Teste com isset(), pois empty vai retornar true para o número zero, para a string "0", para uma string vazia... Se quiser ver se está preenchida com alguma coisa, use, primeiro o isset() e depois o strlen(). Ah, e não esqueça de usar as tags de "code" para destacar seus códigos.

  • Membro VIP
Postado

Se você dá o comando die() ele para o script ali, não importa o que haja depois.

Pegue uma variável de nome $erro. A cada erro encontrado, ao invés de dar o die(), você vai concatenando essa variável. No final dos seus if's você testar ver se esse $erro foi preenchido. Se foi tem erro, senão continua.

exemplo:

<?php

$erro = '';
.
.
.
if(empty($estado))
{
$erro .= "Preencha o campo Estado!";
}
if(empty($pais))
{
$erro .= "Preencha o campo País";
}

if(!empty($erro)) {
// ação para o erro
} else {
// ação para tudo OK
}

?>

Obs: o include() não é responsável por não dar certo. Pode parecer estranho assim sem contexto, mas não interfere neste caso.

Obs2: Não use o empty() pra testar. O certo seria a principio você dar um trim() em cada variável, para eliminar os espaços em branco no começo e fim do valor, e depois tratar cada uma delas como você quer: o estado tem que ter 2 caracteres alfabéticos, a data de nascimento tem de ser uma data válida, o número da casa tem de ser numérico, etc. Além disso, em dados que você não tem tanto controle (como o endereço e bairro), você deve tratar antes de inserir no banco, usando por exemplo um mysql_real_escape_string().

Quem não faz desta forma, uma a uma, depois tem lá no banco um monte de dado inconsistente. Crie uma daquelas verificações javascript pros esquecidos e mantenha uma no seu php pros metidos a esperto.

Dá muito mais trabalho, eu sei, mas profissionalmente falando não tem comparação.

Postado

Agradeço a ajuda de todos, mas ainda nao resolvi meu problema. O negocio é q nao tá nem passando os dados do html pro php, de alguma forma nao tá havendo comunicação entre os arquivos....

Me ajudem se possivel.

Agradeço...

Postado

To com dificuldade com esse código:

<?php

$corpo .= "Nome: ".$_POST['nome']." \n";
$corpo .= "Email:".$_POST['email']." \n";
$corpo .= "Assunto:".$_POST['assunto']." \n";
$corpo .= "Mensagem:".$_POST['mensagem']." \n";

/*
mail: preencha com teu email;
o parâmetro que está escrito "Contato via site" é título do email;
o parâmetro mensagem é o que coleta os dados.
*/


/*
Mensagem que será exibida na tela após o envio do formulário.

*/
if(mail
("[email protected]", "Agendamento - Explode Sound", $corpo, $headers)
){
echo "<script type=\"text/javascript\">alert(\"Sua mensagem foi enviada com sucesso.\");history.go(-1);</script>\n";
}
else{
echo "<script type=\"text/javascript\">alert(\"Ocorreu um erro ao tentar enviar sua mensagem.\");history.go(-1);</script>\n";
}

?>

quando clico em enviar, ele vai pro meu e-mail, só que chega em branco, sem informação nenhuma!

AJUDA!

Postado

AAAAAALELUIA... CONSEGUI RESOLVER MEU PROBLEMA... HEHEHEH... valeu AE TODOS Q ME DERAM DICAS. AH! O PROBLEMA MAIOR ERA NO $_POST MESMO, porque EU TINHA COLOCADO $_post, E POR ISSO TAVA DANDO ERRO, POR CAUSA DE UMA MERDINHA DESSA... AHAUHUAHUA....

ABRAÇO A TODOS...

Postado

O PHP é uma linguagem CASE SENSITIVE, ou seja, maiúsculas e minúsculas são tratadas como diferentes, as vezes os erros estão nos mínimos detalhes, mas graças a ajuda do pessoal tu conseguiu a solução.

:D

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!