Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola PessoalComo estou iniciando em php, peguei esse exemplo de um tutorial do IMasters.Estou trabalhando com o Windows 2000, Apache, PHP 4 e MySQL. Digitei o programa exemplo abaixo e consertei alguns problemas com ajuda do pessoal desse forum. No entanto, ao clicar no botão registra, não está gravando nada.Por favor. Alguem pode examinar o codigo e ver se tem algo de errado ?Outra coisa: Alguem tem um exemplo prático de cadastro que está funcionando direitinho, pois acho que é uma boa forma de comecar a desenvolver.Obrigadoecacarvainclude "conecta.php"; //Conecta com a nosso banco de dados MySQLinclude "ver_sessao.php"; //Verifica se a sessão está ativa?><html><head><title>Tutorial iMasters</title></head><body bgcolor="#FFFFFF" text="#000000"><br><table width="60%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td height="60"><div align="center"><font face="Arial" size="4"><b>Cadastro de Clientes</b></font></div></td></tr></table><br><?if($acao == 'cadastrar') { /*Cadastra o cliente depois que o formulário for enviado *///Verifica os dados enviadosif($nome_user == '') {$erros++;$html_erros = $html_erros."<br>Nome";}if($end_user == '') {$erros++;$html_erros = $html_erros."<br>Endereço";}if($bairro_user == '') {$erros++;$html_erros = $html_erros."<br>Bairro";}if($email_user == '') {$erros++;$html_erros = $html_erros."<br>Email";}if($tel_user == '') {$erros++;$html_erros = $html_erros."<br>Telefone";}if($cidade_user == '') {$erros++;$html_erros = $html_erros."<br>Cidade";}if($estado_user == 0) {$erros++;$html_erros = $html_erros."<br>Estado";}if($erros == 0) {echo "<p align=\"center\"><big><strong>VAI GRAVAR</strong></big></p>";$sql = mysql_query("INSERT INTO tb_clientes(inclusao_user,nome_user,end_user,bairro_user,email_user,tel_user,cidade_user,estado_user) VALUES(now(),'$nome_user','$end_user','$bairro_user','$email_user','$tel_user','$cidade_user','$estado_user')")or die("Erro no comando SQL:".mysql_error());echo "<div align=center><font face=Arial size=2>Cliente cadastrado com Sucesso!!<br><br><a href='java script:history.go(-2)'><< Voltar</a></font></div><br><br>";} //fecha $erros == 0else {echo "<div align=center><font face=Arial size=2><b>ATENÇÃO</b><br><br>Foram encontrados <b>$erros</b>erro(s) no cadastro do cliente:<br><b>$html_erros</b><br><br><a href='java script:history.go(-1)'><< Voltar</a></font></div><br><br>";}//fecha else} /*fecha acao= cadastrar*/ ?><?if($acao == '') { /*Mostra o formulário de cadastro de clientes */$sql_estados = mysql_query("SELECT * FROM tb_estados ORDER BY estado")or die("ERRO no comando SQL:".mysql_error());?><form name="frm_clientes" method="post" action="cadclientes.php?acao=cadastrar"><table width="80%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td width="24%" height="25"><font face="Arial" size="2">Nome:</font></td><td height="25" width="76%"><font face="Arial" size="2"><input type="text" name="nome_user" size="35"></font></td></tr><tr><td height="25" width="24%"><font face="Arial" size="2">Endereço:</font></td><td height="25" width="76%"><font face="Arial" size="2"><input type="text" name="end_user" size="30"></font></td></tr><tr><td height="25" width="24%"><font face="Arial" size="2">Bairro:</font></td><td height="25" width="76%"><font face="Arial" size="2"><input type="text" name="bairro_user" size="30"></font></td></tr><tr><td height="25" width="24%"><font face="Arial" size="2">Email:</font></td><td height="25" width="76%"><font face="Arial" size="2"><input type="text" name="email_user" size="35"></font></td></tr><tr><td height="25" width="24%"><font face="Arial" size="2">Telefone:</font></td><td height="25" width="76%"><font face="Arial" size="2"><input type="text" name="tel_user" size="20"></font></td></tr><tr><td height="25" width="24%"><font face="Arial" size="2">Cidade:</font></td><td height="25" width="76%"><font face="Arial" size="2"><input type="text" name="cidade_user" size="35"></font></td></tr><tr><td height="25" width="24%"><font face="Arial" size="2">Estado:</font></td><td height="25" width="76%"><font face="Arial" size="2"><select name="estado_user"><option value="0"><< Selecione o estado >></option><?while($array = mysql_fetch_array($sql_estados)) {?><option value="<?echo $array['id_estado'];?>"><?echo $array['estado'];?></option><?}?></select></font></td></tr><tr><td height="25" colspan="2"><div align="center"><input type="submit" name="cadastrar" value="Cadastrar cliente >>"></div></td></tr></table></form><?} /*fecha acao=entrar */?></body></html>Estou a fim sim. Manda bala.
Entao só uma ultima pergunta só pra saber você ta com qual versao do php, mysql
e esta tudo funcionando ok?
e você ja tem algum conhecimento com o php ?
me atrapalheiWin2000, apache 1.33, php 4.3 MySQL 3.23Tudo funcionando
Opa posso dar uma dica?
se quiser é claro, o mysql acima da versao 4.1 tem muitas funções novas e recursos amais que nessa versao que você usa nao tem ,mas que tbm agora você nao ira precisar mas recomendo mais pra frente quando você tiver dominando mais o mysql você se atualizar nas versoes do mysql e php
Ola Tive que dar uma saida para atender uns alunos de redes.Quanto a atualizar, farei isso mais tarde.Com relacao ao conhecimento do php, estou comecando agora, sei muito pouco.
1 vamos criar um banco simples pra nosso sistema exemplo
nome do banco = clientes
vai ter 6 campos basicos para você aprender um pouco sobre cada um
id = que sera a chave primaria e auto increment onde cada inserção no banco de dados ele vai incrementar esse numero
empresa
nome
endereco
telefone
data_cadastro
bom ate aqui vamos criar esse banco simples pra você aprender a salvar texto no banco, numeros e data
alguma duvida ate aqui ?
Nao ha duvida, quanto a isso tudo tranquilo
entao crie um formulario para salvar esses dados e o banco de dados
no banco você pode usar
id = smallint unsigned auto_increment primary key
empresa = varchar(40)
nome = varchar(64)
endereco = varchar(64)
telefone = smallint unsigned
data_cadastro = date
alguma duvida?
sabe a diferença entre varchar e char ?
e sobre o smallint ?
unsigned?
se tiver duvidas pode falar que eu explico
Tenho duvida sim:nao sei a diferença entre varchar e char (achava que era a mesma coisa)nem sobre o smallint e tambem unsigned
varchar = caracter variavel
char = caracter
a diferença basica é isso se você escolhe um campo vachar é porque você nao sabe o tamanho exato que ele ira ocupar por isso ele chama variavel
ja o char é pra você usar quando você sabe o tamanho fixo que ira guardar
por exemplo uma senha criptgrafada com md5 ela sempre tera o mesmo tamanho de 32 caracteres
para uma compreensao melhor leia:
http://dev.mysql.com/doc/mysql/pt/char.html
e unsigned = sem sinal ou seja se um campo tem o tamanho do int por exemplo
INT é de -2147483648 a 2147483647 e você nao for salvar nada negativo
você usa o unsigned e ele fica do tamanho 4294967296
O banco e a tabela clientes sim, mas como faz esse formulario ?
posta ai o banco pra eu ver como ficou
sobre o formulario montei um exemplo pra você ver
mas se quiser posso indicar umas apostilas boas de html caso você tenha dificuldade em mecher com ela
/p>"http://www.w3.org/TR/html4/loose.dtd">
Cadastro de Clientes
[tr]
Empresa
[/tr]
[tr]
Contato
[/tr]
[tr]
Endereço
[/tr]
[tr]
Telefone
[/tr]
[tr]
[/tr]
[tr]
[/tr]
criei utilizando o navicatcreate table clientes ( id smallint(6) unsigned not null default '0', empresa varchar(40) not null, nome varchar(64) not null, endereco varchar(64) not null, telefone smallint(6) not null default '0', data_cadastro date not null default '0000-00-00', primary key (id)) type=MyISAM comment=""
Faltou o auto increment
> CREATE TABLE clientes ( id smallint(5) unsigned NOT NULL auto_increment,
empresa varchar(40) collate utf8_unicode_ci NOT NULL default '',
nome varchar(64) collate utf8_unicode_ci NOT NULL default '',
endereco varchar(64) collate utf8_unicode_ci NOT NULL default '',
telefone smallint(6) NOT NULL default '0',
data_cadastro date NOT NULL default '0000-00-00',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
obs: só um detalhe lembrei que você usa o mysql muito antigo entao ele nao tem suporte a UTF UNICODE
dai crie do jeito que você vez acima mas acrescente o autoincrement
e tem alguma duvida ate aqui ?
a tabela esta criadaMinha duvida eh:collate utf8_unicode_ci eENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Unicode é um padrão único para representar todos
os conjuntos de caracteres internacionais numa única fonte.
mais informações
O padrão Unicode é definido pela Unicode Consortium (www.unicode.org), instituição sem fins lucrativos que se propõe a desenvolver um sistema abrangente e padronizado de representação de escrita em computadores.
No padrão Unicode, cada caractere está associado a um número identificador único. A tabela Unicode abrange os mais variados sistemas de escrita como latino, grego, cirílico, hebraico, árabe, japonês, chinês, etc., além de considerar símbolos matemáticos, musicais, de moeda, etc. Em função da variedade de caracteres que apresenta, a tabela Unicode é subdividida em blocos. Veja alguns blocos Unicode, clicando nos links a seguir.
por isso que eu falei sobre a versao do mysql a ultima versao do mysql 4.1.10 tem muito mais funcionalidade
OK FabioTive uma queda de conexao, mas estou de volta.Pode prosseguir
depois que você tiver o forumlario de cadastro e o banco criado
crie uma pagina php com o nome de conecta.php
essa pagina tera a conexao com o banco de dados e sempre que você precisar conectar no banco ira chamar essa pagina
OKAmbos estao criados, o formulario e o conecta.php.Que nome dou ao formulario ?
cadastro.html
crie uma pasta no seu diretorio root com o nome de clientes pra ficar mais organizado
e copie pra la as paginas
na pagina conecta você vai digitar isso:
mysql_connect("servidor", "usuario", "senha");
mysql_select_db("nome_do_banco");
por padrao no seu micro local se você nao alterou nada no mysql
você pode conectar assim:
mysql_connect("localhost");
mysql_select_db("nome_do_banco");
pelo que você ta lendo nao tem duvida né ?
mysql_connect conecta no servidor
mysql_select_db escolhe o banco
OK to entendenro muito bem, pode prosseguir
crie agora a pagina salvar.php
nela você ira receber os dados digitados pelo formulario
e vamos tratar,filtrar e fazer uma verificação no banco se ja existe o cadastro caso nao exista sera gravado eles pra depois salvar no banco de dados
OkUma duvida: no conecta devo iniciar com <? e terminar com ?> nao e ?pode prosseguir
Sim claro só lembrando
o php só é interpretado dentro das tags simples ?> ou <?php ?> para suporte a XML ou XHTML
O php também funciona com essas tag:
<script language = "php">
Código...
</script>
Ele também funciona com tags ASP:
Uma pagina em php tem que ter a extensão .php
bom ja que você quer aprender esqueçe esse codigo vamos fazer um do zero ok?
se tiver afim posta ai que eu vou te explicar passo a passo como fazer um sistema de cadastro e que funcione 100% e sem erros :D