Ir para conteúdo

Arquivado

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

Fabiosousa

não estou incluindo dados de registro no BD Mysql

Recommended Posts

Oi galera,

 

instalei: APACHE 2, PHP 5, MYSQL 5, PHPMYADMIN 2 NO WIN XP e correu tudo bem tão todos os 3 funcionando direitinho.

 

link tuto: http://forum.imasters.com.br/index.php?showtopic=180486

 

problema:

 

tenho uma pagina de formulario HTM que ao entrar com os dados vai pra uma pagina em PHP e do PHP envia os dados do formulario para o MYSQL e me mostra uma pagina em PHP dizendo q: "Inclusão Efetuada!" ou se não "ERRO - Cadastro não foi Efetuado".

 

Não ta memostrando essa pagina de mensagem de envio. Nem um e nem outro. E TAMBEM NÃO TA DANDO ERRO DE CONEXÃO COM O BANCO. Mostra so uma pagina em branco com um logotipo.

 

OBS: Qdo consulto no banco na mão n tem nenhum registro la.

 

PAGINA EM HTM:

 

<html>

<head>

<title>Cadastro de Clientes</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body>

<div align="center">

<p>LOGO</p>

<p>Cadastro de Clientes:</p>

<form method="post" action="cadastra_cli.php">

<table width="75%" border="0">

<tr>

<td width="29%">Nome do Cliente</td>

<td width="71%"><input name="nome" type="text" size="50" maxlength="50"></td>

</tr>

<tr>

<td>Endereço</td>

<td><input name="endereco" type="text" size="50" maxlength="50"></td>

</tr>

<td colspan="2">.</td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="Submit" value="Enviar"></td>

</tr>

</table>

</form>

<p> </p>

</div>

</body>

</html>

 

PAGINA EM PHP DE CADASTRO:

 

<body>

<?php

// Recebe variaveis globais do formulario CADASTRA_CLI.HTM

global $nome;

global $endereco;

//global $telefone;

//global $data_cad;

//global $cnpj;

//global $cgf;

//global $atividade;

//global $cond_pgto;

//global $vendedor;

//global $contato;

//global $compras;

//global $relac_prod;

//global $reference;

 

// tirar espaços em branco das variaveis recebidas atraves do formulario

$nome = trim($nome);

$endereco = trim($endereco);

//$telefone = trim($telefone);

//$data_cad = trim($data_cad);

//$cnpj = trim($cnpj);

//$cgf = trim($cgf);

//$atividade = trim($atividade);

//$cond_pgto = trim($cond_pgto);

//$vendedor = trim($vendedor);

//$contato = trim($contato);

//$compras = trim($compras);

//$relac_prod = trim($relac_prod);

//$reference = trim($reference);

 

// consiste as variaveis recebidas

//if (empty($nome) || empty($endereco) || empty($telefone) || empty($data_cad) || empty($cnpj) || empty($cgf) || empty($atividade) || empty($cond_pgto) || empty($vendedor) || empty($contato) || empty($compras) || empty($relac_prod) || empty($reference)) {

if (empty($nome) || empty($endereco)) {

/* comentar blocos de codigo

*/

 

// se campos obrigatorios nao preenchidos, recria formulario e exibe mensagem de erro

//echo('

//<html>

//<head>

//<title>Cadastra_cli.php</title>

//<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

//</head>

//<body bgcolor="#FFFFFF" text="#oooooo" link="#333399" vlink="#cc0000" alink="#663399">');

 

//echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>");

 

//echo("<font locor=\"#FF0000\"><b>Campos(s) obrigatório(s) não preenchido(s)</br></font>");

 

//echo("

//<table width=\"640\" border=\"0\" cellspacing=\"0\" align=\"center\">

//<tr>

// <td>

// <p><b>Formulário de Inclusão:<br></b></p>

// <form method=\"post\" action=\"cadastra_cli.php\">

// <p>Nome completo:

// <input type=\"text\" name=\"nome\" value=\"$nome\" size=\"25\" maxlength=\"50\"></p>

// <p>Endereço:

// <input type=\"text\" name=\"endereco\" value=\"$endereco\" size=\"25\" maxlength=\"50\"></p>

// <p>Telefone:

// <input type=\"text\" name=\"telefone\" value=\"$telefone\" size=\"25\" maxlength=\"50\"></p>

// <p>Data de Cadastro:

// <input type=\"text\" name=\"data_cad\" value=\"$data_cad\" size=\"25\" maxlength=\"50\"></p>

// <p>CNPJ / CPF:

// <input type=\"text\" name=\"cnpj\" value=\"$cnpj\" size=\"25\" maxlength=\"50\"></p>

// <p>CGF:

// <input type=\"text\" name=\"cgf\" value=\"$cgf\" size=\"25\" maxlength=\"50\"></p>

// <p>Atividade:

// <input type=\"text\" name=\"atividade\" value=\"$atividade\" size=\"25\" maxlength=\"50\"></p>

// <p>Condições de Pagamento:

// <input type=\"text\" name=\"cond_pgto\" value=\"$cond_pgto\" size=\"25\" maxlength=\"50\"></p>

// <p>Vendedor:

// <input type=\"text\" name=\"vendedor\" value=\"$vendedor\" size=\"25\" maxlength=\"50\"></p>

// <p>Contato:

// <input type=\"text\" name=\"contato\" value=\"$contato\" size=\"25\" maxlength=\"50\"></p>

// <p>Compras:

// <input type=\"text\" name=\"compras\" value=\"$compras\" size=\"25\" maxlength=\"50\"></p>

// <p>Relação de Produtos:

// <input type=\"text\" name=\"relac_prod\" value=\"$relac_prod\" size=\"25\" maxlength=\"50\"></p>

// <p>Referência:

// <input type=\"text\" name=\"reference\" value=\"$reference\" size=\"25\" maxlength=\"50\"></p>

// </form>

// </td>

//</tr>

//</table>

//");

//}

//else {

// Inclui os dados na tabela clientes

 

// Cria uma conexão com o servidor MYSQL passando host, username e senha

$conec = mysql_connect ("localhost","root", "estrela") or die ("Falha na conexão com o Banco de Dados");

 

// Declaração SQL

$declar = "INSERT INTO clientes values ('$nome', '$endereco')";

 

// Roda a query e trata o resultado

$tipo_msg = 'I';

if (mysql_db_query ("clinil", $declar, $conec)) {

$ok = 1;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}

else {

$ok = 2;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

// header("location: exibe_mensagem.php?variavel1=$variavel1&variavel2=$variavel2");

}

// Fechar a conexão com o servidor MYSQL (opcional)

mysql_close ($conec);

}

?>

 

PAGINA EM PHP DE MENSAGEM DE INCLUSÃO OU NAO INCLUSAO:

 

<body>

 

<?php

 

global $ok;

$ok = trim($ok);

 

echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>");

 

if ($tipo_msg == 'I') {

// se inclusão OK

if ($ok == 1) {

echo ("<br><br>");

echo ("<center><b><font size = 4> Inclusão Efetuada</font></b></center>");

echo ("<br>");

echo ("<center><b> <a href=\"cadastra_cli.htm\">Voltar</a></b></center>");

}

 

// se deu erro no cadastro

if ($ok == 2) {

echo ("<br><br>");

echo ("<center><b><font size = 4> Erro - Cadastro não Efetuado</font></b></center>");

echo ("<br>");

echo ("<center><b> <a href=\"cadastra_cli.htm\">Voltar</a></b></center>");

}

}

?>

</body>

 

O q poderá ta havendo?

 

Fico grato pela atenção

 

Fabio SOusa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deve nem estar passando pelo primeiro if().

 

A menos que a diretiva register_globals do seu php.ini esteja on, você conseguirá recuperar os valores de POST de maneira direta como você fez, caso contrário é preciso utilizar a variável superglobal:

$nome = trim($_POST['nome']);$endereco = trim($_POST['endereco']);
Flws...

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é aconselhavel usar resgiters globals = On

 

resgate as var da seguinte maneira:

 

foreach($_POST as $campo => $valor) {$$campo = trim(strip_tags($valor));}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Subistitua:

 

$nome = trim($nome);
$endereco = trim($endereco);

por:

 

foreach($_POST as $campo => $valor) {$$campo = trim(strip_tags($valor));}

ou faça como o Frenesi

 

resgate uma por uma:

 

$nome = trim($_POST['nome']);
$endereco = trim($_POST['endereco'])

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz as duas maneiras q vcs me passaram.

 

E agora n me mostra nem mais o logo q antes mostrava. e fverifiquei no endereço acima no browser e n ta saindo da pagina em PHP do cadastro e antes entrava na pagina de mensagem.

 

Ta me retornando uma pagina em branco

Compartilhar este post


Link para o post
Compartilhar em outros sites

da maneira como tava o codigo qdo postei no inicio, passava para a pagina de MENSAGEN DE INCLUSÃO OK, so q ficava em branco e com o logotipo e o end no browser fava assim:

 

http://localhost/clinil/exibe_mensagem.php?ok=2&tipo_msg=I

 

como se deu ok mas n mostrou nenhuma mensagem.

 

E depois que coloquei o codigo de vcs:

 

1- $nome = trim($_POST['nome']);

$endereco = trim($_POST['endereco'])

ou

 

2- foreach($_POST as $nome => $valor) {$$nome = trim(strip_tags($valor));}

 

ficou no end do browser assim: http://localhost/clinil/cadastra_cli.php

 

como se n tivesse nem saido da pagina de cadastro.

 

Me ajudem a finalizar so essa inclusão por favor, ja to um tempao tentando, e so falta eu conseguir incluir algo no registro atraves das minhas paginas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas é esse o meu problema, n esta gravando no banco e essa linha de codigo ta correto. ACHO!

 

if (mysql_db_query ("clinil", $declar, $conec)) {

$ok = 1;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe a demora, é pq minha mae fez uma cirugia e saimos ontem do hospital e ela passa bem graças a Deus.

 

Poderia-mos continuar?

 

respondendo a ultima pergunta:

 

1- Sim so existe dois campos

 

2- então qual seria a sintax para funcinar?

 

na minha tabela Mysql ta assim:

 

mysql> desc clientes;

 

| Field | Type | Null | Key | Defalt | Extra |

idcliente | int(11) | NO | PRI NULL auto-increment

nome | varchar(50) | NO |

endereco | varchar(50) | NO |

 

3 rows in set

 

 

 

grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então existem três campos em sua tabela, não dois. Imagem Postada

 

Mude a query para ficar assim:

"INSERT INTO clientes (`nome`, `endereco`) VALUES ('$nome', '$endereco')"
Flws...

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

so pra rever o codigo, ele ta assim:

 

PHP

 

<?php

// Recebe variaveis globais do formulario CADASTRA_CLI.HTM

global $nome;

global $endereco;

 

 

// tirar espaços em branco das variaveis recebidas atraves do formulario

$nome = trim($nome);

$nome = trim($endereco);

 

 

// consiste as variaveis recebidas

if (empty($nome) || empty($endereco)) {

 

/* comentar blocos de codigo

*/

 

// se campos obrigatorios nao preenchidos, recria formulario e exibe mensagem de erro

//echo('

//<html>

//<head>

//<title>Cadastra_cli.php</title>

//<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

//</head>

//<body bgcolor="#FFFFFF" text="#oooooo" link="#333399" vlink="#cc0000" alink="#663399">');

 

//echo ("<p><center><img src=\"topo.gif\" width=\"640\" height=\"44\"></center></p>");

 

//echo("<font locor=\"#FF0000\"><b>Campos(s) obrigatório(s) não preenchido(s)</br></font>");

 

//echo("

//<table width=\"640\" border=\"0\" cellspacing=\"0\" align=\"center\">

//<tr>

// <td>

// <p><b>Formulário de Inclusão:<br></b></p>

// <form method=\"post\" action=\"cadastra_cli_teste.php\">

// <p>Nome completo:

// <input type=\"text\" name=\"nome\" value=\"$nome\" size=\"25\" maxlength=\"50\"></p>

// </form>

// </td>

//</tr>

//</table>

//");

//}

//else {

// Inclui os dados na tabela clientes

 

// Cria uma conexão com o servidor MYSQL passando host, username e senha

$conec = mysql_connect ("localhost","root","estrela") or die ("Falha na conexão com o Banco de Dados");

 

// Declaração SQL

$declar = "INSERT INTO clientes ('nome', 'endereco') VALUES ('$nome', '$endereco')";

// $declar = "INSERT INTO clientes values ('$nome')";

 

// Roda a query e trata o resultado

$tipo_msg = 'I';

if (mysql_db_query ("clinil", $declar, $conec)) {

$ok = 1;

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}

else {

$ok = 2;

header("Location= exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

// header("location: exibe_mensagem.php?variavel1=$variavel1&variavel2=$variavel2");

}

// Fechar a conexão com o servidor MYSQL (opcional)

mysql_close ($conec);

}

?>

 

n sei o q pode ta havendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

so mostrou um numero 1

 

echo "1";

$conec = mysql_connect ("localhost","root","estrela") or die ("Falha na conexão com o Banco de Dados");

 

// Declaração SQL

// $declar = "INSERT INTO clientes ('nome', 'endereco') VALUES ('$nome', '$endereco')";

$declar = "INSERT INTO clientes values ('$nome', '$endereco')";

 

// Roda a query e trata o resultado

$tipo_msg = 'I';

if (mysql_db_query ("clinil", $declar, $conec)) {

$ok = 1;

echo "2";

header("Location: exibe_mensagem.php?ok=$ok&tipo_msg=$tipo_msg");

}

 

ta correta a sintasi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tirando que você voltou para a sua query antiga, que te garanto que está errada, tente primeiro colocando acento invertido (rs.. não sei o nome disso) no lugar de apóstrofos, assim:

$declar = "INSERT INTO clientes (`nome`, `endereco`) VALUES ('$nome', '$endereco')";

Se ainda não der certo, troque esta maneira de executar a query para esta:

$declar = "INSERT INTO clientes (`nome`, `endereco`) VALUES ('$nome', '$endereco')";
$exec = mysql_query($declar);

if( $exec )
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é q eu errei qdo copiei pra ca, mas era asua mesmo.

 

Cara sequinte:

 

alterei ´para:

 

$declar = "INSERT INTO clientes (`nome`, `endereco`) VALUES ('$nome', '$endereco')";

 

e agora n me deu mais pagina em branco, me retornou uma pagina da mensagem.php e com o logotipo, mas n me deu nenhuma menssagem de OK. Só q fui olhar no banco(q ate então n tava gravando nada) DAI MINHA ALEGRIA:

 

ta assim no banco:

 

mysql> select * from clientes;

 

| idcliente | nome | endereco |

| 1 | | |

 

1 row in set

 

So que nao tem nenhum egistro nos campos: NOME e ENDERECO

 

ta faltando POUQUINHA COISA, vamos la cara vamos conseguir.

 

q acha q falta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.