Ir para conteúdo

Arquivado

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

Fabyo

Sistema de Cadastro em PHP/MySQL

Recommended Posts

BOA NOITE

 

O MEU RETORNA O SEGUINTE ERRO

 

Notice: Undefined offset: 1044 in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\projects\sis\init.php on line 44

 

PODE MEU AJUDAR?



Boa noite, pode me ajudar novamente?

 

agora só retorna

1044

 

init.php esta assim

 

<?php
error_reporting(E_ALL);
@ini_set('display_errors', '1');
@ini_set('register_globals', '0');
if (version_compare(phpversion(), "4", ">")) {
if (!extension_loaded('mysql')) {
echo( "Nao esta habilitada a dll Mysql" );
exit;
}
}
if(file_exists("funcoes.php")) {
include "funcoes.php";
} else {
echo "Arquivo funcoes.php nao encontrado";
exit;
}
if(file_exists("config.php")) {
include "config.php";
if (!defined("SERVIDOR") or !defined("USUARIO") or !defined("SENHA") or !defined("BANCO")){
echo "Variaveis de conexao nao definidas, configure corretamente o arquivo config.php";
exit;
}
}
$erros[2005] = "Esse servidor nao existe";
$erros[2003] = "Servidor Mysql desligado";
$erros[1045] = "Usuario ou senha invalido";
$erros[1049] = "Banco de dados nao encontrado";
$erros[1146] = "Erro de sql a tabela nao existe";
$erros[1062] = "Erro campo unico na tabela, nao pode cadastrar pois ele ja existe";
function Abre_Conexao() {
global $erros;
@mysql_connect(SERVIDOR, USUARIO, SENHA);
if(mysql_errno() != 0) {
echo $erros[mysql_errno()];
exit;
}
@mysql_select_db(BANCO);
if(mysql_errno() != 0) {
if(isset($erros[mysql_errno()])){
echo $erros[mysql_errno()];
} else {
echo mysql_errno();
}
exit;
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha.. uma opinião pessoal,, o tutorial original é muito antigo (de 2006)...

as funções Mysql estão ficando obsoletas..

tente estudar PDO que não é extreamente dificil e muito mais seguro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal, gostaria de saber se alguem aqui ja teve um erro parecido com o que eu estou tendo .

 

a linha do comando que representa o erro e essa aqui

 

function Abre_Conexao() {
global $erros;
@mysql_connect(SERVIDOR, USUARIO, SENHA);
if(mysql_errno() != 0) {
echo $erros[mysql_errno()]; // essa linha que esta dando problema.
exit;
}
@mysql_select_db(BANCO);
if(mysql_errno() != 0) {
echo $erros[mysql_errno()];
exit;
}
}

?>

( ! ) Notice: Undefined offset: 1044 in C:\wamp\www\Cadastro\init.php on line 44 Call Stack # Time Memory Function Location 1 0.0008 688312 {main}( ) ..\cadastro.php:0 2 0.0028 735128 Abre_Conexao( ) ..\cadastro.php:14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal to dando continuidade nos tutoriais para iniciantes e esse aqui é para quem ja leu:

 

http://forum.imasters.com.br/index.php?showtopic=191441

 

Esse tutorial é para usuarios iniciantes que estao começando agora e querem aprender a mecher com PHP e banco de dados, sei que é dificil achar um tutorial bem mastigado assim, e falta exemplos completos no manual do php, e as vezes a pessoa acaba pegando um script pronto mas nao entende muito e o pior a maioria das vezes o sistema esta mal feito assim o usuario acaba aprendendo errado pensando que é o certo.

 

esse tutorial é bem basico, e criei como exemplo 2 tabelas uma para usuario e outra para estados

e é mais para você aprender mesmo , acabei criando varias funções que ficaram mais para aprendizado do que funcional, mas a ideia é você entender como as coisas funcionam

 

com esse sistema você vai aprender:

 

* Listar os dados de um banco de dados

* Salvar dados do formulario para banco de dados

* Excluir dados do banco

* Editar dados do banco

* Carregar um combobox(select do html) com dados vindos do banco de dados

* Validações especiais para deixar o php funcionando 100% sem erros

* Varios macetes e dicas de uso em sistemas com o uso de um arquivo de verificações basicas o init.php

 

 

 

tabela.sql

CREATE TABLE usuarios (
id_usuario SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR ( 45 ) NOT NULL,
email VARCHAR ( 64 ) NOT NULL UNIQUE,
data_nascimento DATE NOT NULL,
---o ENUM ( 'M', 'F' ) NOT NULL,
preferencias SET ( 'R', 'S', 'P', 'F' ) NOT NULL COMMENT 'R=Romance;S=Suspense;P=Policial;F=Ficção',
salario DECIMAL ( 10,2 ) NOT NULL,
endereco VARCHAR ( 30 ) NOT NULL,
bairro VARCHAR ( 20 ) NOT NULL,
cidade VARCHAR ( 45 ) NOT NULL,
fk_estado SMALLINT ( 5 ) UNSIGNED NOT NULL,
login VARCHAR ( 40 ) NOT NULL,
senha CHAR ( 32 ) NOT NULL
);

CREATE TABLE estados (
id_estado SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
uf CHAR ( 2 ) NOT NULL,
estado VARCHAR ( 19 ) NOT NULL UNIQUE
);

INSERT INTO estados VALUES ( NULL , "AC", "Acre");
INSERT INTO estados VALUES ( NULL , "AL", "Alagoas");
INSERT INTO estados VALUES ( NULL , "AP", "Amapá");
INSERT INTO estados VALUES ( NULL , "AM", "Amazonas");
INSERT INTO estados VALUES ( NULL , "BA", "Bahia");
INSERT INTO estados VALUES ( NULL , "CE", "Ceará");
INSERT INTO estados VALUES ( NULL , "DF", "Distrito Federal");
INSERT INTO estados VALUES ( NULL , "ES", "Espirito Santo");
INSERT INTO estados VALUES ( NULL , "GO", "Goiás");
INSERT INTO estados VALUES ( NULL , "MA", "Maranhão");
INSERT INTO estados VALUES ( NULL , "MT", "Mato Grosso");
INSERT INTO estados VALUES ( NULL , "MS", "Mato Grosso do Sul");
INSERT INTO estados VALUES ( NULL , "MG", "Minas Gerais");
INSERT INTO estados VALUES ( NULL , "PA", "Pará");
INSERT INTO estados VALUES ( NULL , "PB", "Paraíba");
INSERT INTO estados VALUES ( NULL , "PR", "Paraná");
INSERT INTO estados VALUES ( NULL , "PE", "Pernambuco");
INSERT INTO estados VALUES ( NULL , "PI", "Piauí");
INSERT INTO estados VALUES ( NULL , "RN", "Rio Grande do Norte");
INSERT INTO estados VALUES ( NULL , "RS", "Rio Grande do Sul");
INSERT INTO estados VALUES ( NULL , "RJ", "Rio de Janeiro");
INSERT INTO estados VALUES ( NULL , "RO", "Rondônia");
INSERT INTO estados VALUES ( NULL , "RR", "Roraima");
INSERT INTO estados VALUES ( NULL , "SC", "Santa Catarina");
INSERT INTO estados VALUES ( NULL , "SP", "São Paulo");
INSERT INTO estados VALUES ( NULL , "SE", "Sergipe");
INSERT INTO estados VALUES ( NULL , "TO", "Tocantins"); </div>
como podem ver é uma tabela apenas para podermos usar no sistema, sao coisas ficticias que usei apenas para passar exemplos uteis de varios campos no banco de dados, talves o unico campo que você nao saiba para que serve nessa tabela é o "preferencias", esse preferencia é para o usuario escolher qual tipo de filme ele gosta, usei esse exemplo para você entender como usar o campo SET() do mysql

 

pessoal eu nao faço codigos html fora do padrao, e todos meus codigos sao valido pelo W3C, mas eu nao me preocupei em deixar os codigos validos pois a ideia é passar mais informação sobre o sistema de cadastro, e se eu for me preoculpar com tudo isso eu nunca iria postar esse tutorial, pois meu tempo anda curto demais.

 

index.html:

<a href="cadastro.php">Cadastrar Usuarios</a><br />
<a href="listar.php">Listar Usuarios</a>
cadastro.php

<?php
//Verifico se o arquivo existe
if(file_exists("init.php")) {
	require "init.php";		
} else {
	echo "Arquivo init.php nao foi encontrado";
	exit;
}
//verifico se a função que eu criei existe, vai que alguem pegou meu script e apagou ela = )
if(!function_exists("Abre_Conexao")) {
	echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
	exit;
}

Abre_Conexao();
$re = mysql_query("select * from estados order by estado");
//verifico se nao deu erro de mysql
if(mysql_errno() != 0) {
                //verifico se a $errros existe, mesma coisa vai que alguem meche no script e apagou ela
	if(!isset($erros)) {
		echo "Erro o arquivo init.php foi auterado, nao existe \$erros";
		exit;
	}
	echo $erros[mysql_errno()];
	exit;
}	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox { border:1px solid gray; width:200px;} 
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar.php">
  <table width="400" border="0" align="center">
    <tr>
      <td width="145">Nome</td>
      <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" /></td>
    </tr>
    <tr>
      <td>Email</td>
      <td><input name="email" type="text" id="email" maxlength="64" class="textBox" /></td>
    </tr>
    <tr>
      <td>Data Nascimento</td>
      <td>
		<?php	
                                                /*aqui eu criei uma função para montar o combo para mim, na propria função a seguir eu explico como ela funciona*/		
			echo monta_select("dia", 1, 31);	
			echo monta_select("mes", 1, 12);	
			echo monta_select("ano", 1940, 1988);
		?>	
	</td>
    </tr>
    <tr>
      <td>---o</td>
      <td><input name="---o" type="radio" value="M" checked="checked" /><label>Masculino</label> 
      <input name="---o" type="radio" value="F" /> <label>Feminino</label></td>
    </tr>
    <tr>
      <td>Preferencias de Filmes </td>
      <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias">
        <option value="R">Romance</option>
        <option value="S">Suspense</option>
        <option value="P">Policial</option>
        <option value="F">Ficção</option>
      </select>
      </td>
    </tr>
    <tr>
      <td>Salario</td>
      <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td>
    </tr>
    <tr>
      <td>Endereco</td>
      <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td>
    </tr>
    <tr>
      <td>Bairro</td>
      <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td>
    </tr>
    <tr>
      <td>Cidade</td>
      <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td>
    </tr>
    <tr>
      <td>Estado</td>
      <td><select name="estados" id="estados" class="textBox" >	  	
<?php
//pego os dados do banco para montar o combo do estados
while($l = mysql_fetch_array($re)) {
	$id     = $l["id_estado"];
	$estado = $l["estado"];
	$uf     = $l["uf"];				
	echo "<option value=\"$id\">$uf - $estado</option>\n";
}
//fecho a conexao com o banco
@mysql_close();
		
?>
      </select>      </td>
    </tr>
    <tr>
      <td>Login</td>
      <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td>
    </tr>
    <tr>
      <td>Senha</td>
      <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
    </tr>
  </table>
</form>
</body>
</html></div>
salvar.php

<?php
/*verifico se os dados estao vindos do formulario, porque se uma pessoa acessar essa pagina diretamente
poderia dar erro, entao eu testo antes*/
if($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = $_POST["nome"];
$email = $_POST["email"];
$data = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}";
$---o = $_POST["---o"];
//if e else simplificado, verifico se foi escolhido alguma preferencia e crio um array
$preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : "";
$salario = $_POST["salario"];
$endereco = $_POST["endereco"];
$bairro = $_POST["bairro"];
$cidade = $_POST["cidade"];
$estados = $_POST["estados"];
$login = $_POST["login"];
$senha = $_POST["senha"];

//aqui ja expliquei, mas denovo: ele verifica se o arquivo existe
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
//ja expliquei, mas ultima vez: verifica se a função que eu vou usar existe
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
if(@mysql_query("INSERT INTO usuarios VALUES ( NULL , '$nome', '$email', '$data' , '$---o',
'$preferencias', '$salario', '$endereco', '$bairro', '$cidade', '$estados', '$login', MD5( '$senha' ) )")) {
//verifiquei acima se deu certo o comando e aqui verifico se foi mesmo gravado o dado no banco
if(mysql_affected_rows() == 1){
echo "Registro efetuado com sucesso<br />";
}

} else {
//verifico se nao estao tentando gravar um dado que ja existe, pois usei UNIQUE na tabela
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar o cadastro";
exit;
}
@mysql_close();
}

}
?>
<a href="index.html">Voltar</a>

 

listar.php

<a href="index.html">Voltar</a>
<?php
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
$re = mysql_query("SELECT * FROM usuarios INNER JOIN estados ON usuarios.fk_estado = estados.id_estado ORDER BY usuarios.nome;");
if(mysql_errno() != 0) {
if(!isset($erros)) {
echo "Erro o arquivo init.php foi auterado, nao existe $erros";
exit;
}
echo $erros[mysql_errno()];
exit;
}
?>

<table width="100%" border="1">
<tr>
<td>Ações</td>
<td>Nome</td>
<td>Email</td>
<td>Data Nasc.</td>
<td>---o</td>
<td>Preferencias</td>
<td>salario</td>
<td>Endereço</td>
<td>Bairro</td>
<td>Cidade</td>
<td>Estado</td>
<td>Login</td>
</tr>
<?php
while($l = mysql_fetch_array($re)) {
$id = $l["id_usuario"];
$nome = $l["nome"];
$email = $l["email"];
$data = implode("/", array_reverse(explode("-", $l["data_nascimento"])));
$---o = $l["---o"] == "M" ? "Masculino" : "Feminino";
$preferencia = Pega_Preferencia($l["preferencias"]);
$salario = $l["salario"];
$endereco = $l["endereco"];
$bairro = $l["bairro"];
$cidade = $l["cidade"];
$estado = $l["estado"];
$login = $l["login"];

echo "
<tr>
<td><a href=\"editar.php?id=$id\">[Editar]</a> <a href=\"excluir.php?id=$id\">[Excluir]</a></td>
<td> $nome</td>
<td> $email</td>
<td> $data</td>
<td> $---o</td>
<td> ". monta_combo($preferencia). "</td>
<td> ". number_format($salario, 2, ",", "."). "</td>
<td> $endereco</td>
<td> $bairro</td>
<td> $cidade</td>
<td> $estado</td>
<td> $login</td>
</tr>\n";
}
@mysql_close();
?>
</table>

 

editar.php

<?php
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$id = $_GET["id"];

Abre_Conexao();
$re = mysql_query("select count(*) as total from usuarios where id_usuario = $id");
$total = mysql_result($re, 0, "total");

if($total == 1) {
$re = mysql_query("select * from usuarios, estados where estados.id_estado = usuarios.fk_estado and usuarios.id_usuario = $id");
$dados = mysql_fetch_array($re);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox { border:1px solid gray; width:200px;}
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar_edicao.php">
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<table width="400" border="0" align="center">
<tr>
<td width="145">Nome</td>
<td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" value="<?php echo $dados["nome"]; ?>" /></td>
</tr>
<tr>
<td>Email</td>
<td><input name="email" type="text" id="email" maxlength="64" class="textBox" value="<?php echo $dados["email"]; ?>" /></td>
</tr>
<tr>
<td>Data Nascimento</td>
<td>
<?php
$arr = explode("-", $dados["data_nascimento"]);

echo Seleciona_Item($arr[2], monta_select("dia", 1, 31));
echo Seleciona_Item($arr[1], monta_select("mes", 1, 12));
echo Seleciona_Item($arr[0], monta_select("ano", 1940, 1988));
?>
</td>
</tr>
<tr>
<td>---o</td>
<td><input name="---o" type="radio" value="M" <?php echo $dados["---o"] == "M" ? "checked=\"checked\"" : ""; ?> /><label>Masculino</label>
<input name="---o" type="radio" value="F" <?php echo $dados["---o"] == "F" ? "checked=\"checked\"" : ""; ?> /> <label>Feminino</label></td>
</tr>
<tr>
<td>Preferencias de Filmes </td>
<td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias">
<?php
$combo = "<option value=\"R\">Romance</option>
<option value=\"S\">Suspense</option>
<option value=\"P\">Policial</option>
<option value=\"F\">Ficção</option>";

$arr = explode(",", $dados["preferencias"]);
for($i = 0; $i < count($arr); $i++) {
$combo = preg_replace("#<option value=\"{$arr[$i]}\">#is", "<option value=\"{$arr[$i]}\" selected=\"selected\">", $combo);
}
echo $combo;
?>

</select>
</td>
</tr>
<tr>
<td>Salario</td>
<td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td>
</tr>
<tr>
<td>Endereco</td>
<td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td>
</tr>
<tr>
<td>Bairro</td>
<td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td>
</tr>
<tr>
<td>Cidade</td>
<td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td>
</tr>
<tr>
<td>Estado</td>
<td><select name="estados" id="estados" class="textBox" >
<option value="0">Selecione</option>
<?php
$re = mysql_query("select * from estados order by estado");
if(mysql_errno() != 0) {
if(!isset($erros)) {
echo "Erro o arquivo init.php foi auterado, nao existe $erros";
exit;
}
echo $erros[mysql_errno()];
exit;
}
while($l = mysql_fetch_array($re)) {
$id = $l["id_estado"];
$estado = $l["estado"];
$uf = $l["uf"];
echo Seleciona_Item($dados["id_estado"], "<option value=\"$id\">$uf - $estado</option>");

}
@mysql_close();

?>
</select> </td>
</tr>
<tr>
<td>Login</td>
<td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td>
</tr>
<tr>
<td>Senha</td>
<td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
</tr>
</table>
</form>
</body>
</html>

 

excluir.php

 

<?php
if($_SERVER["REQUEST_METHOD"] == "GET") {
if(file_exists("init.php")) {
	require "init.php";		
} else {
	echo "Arquivo init.php nao foi encontrado";
	exit;
}

if(!function_exists("Abre_Conexao")) {
	echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
	exit;
}
$id = $_GET["id"];

Abre_Conexao();
if(mysql_query("delete from usuarios where id_usuario = $id")) {
	if(mysql_affected_rows() == 1){
		echo "Registro deletado com sucesso<br />";
	}	
}	
}

?>
<a href="listar.php">Voltar</a>
salvar_edicao.php

<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$data = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}";
$---o = $_POST["---o"];
$preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : "";
$salario = $_POST["salario"];
$endereco = $_POST["endereco"];
$bairro = $_POST["bairro"];
$cidade = $_POST["cidade"];
$estados = $_POST["estados"];
$login = $_POST["login"];
$senha = $_POST["senha"];

if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
if(@mysql_query("UPDATE usuarios SET nome = '$nome',
email = '$email',
---o = '$---o',
preferencias = '$preferencias',
salario = '$salario',
endereco = '$endereco',
bairro = '$bairro',
cidade = '$cidade',
fk_estado = '$estados',
login = '$login',
senha = MD5( '$senha' ) WHERE id_usuario = $id")) {

if(mysql_affected_rows() == 1){
echo "Registro atualizado com sucesso";
}

} else {
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
@mysql_close();
}

}
?>
<a href="listar.php">Voltar</a>

 

 

arquivos completos para download: attachicon.gifattachment

Pessoal qualquer duvida quanto os sistema ou alguma duvida só postar no forum mesmo que responderemos

 

bom espero que esse exemplo seja util

 

versao do sistema de cadastro mais simples

http://forum.imasters.com.br/index.php?showtopic=201046

 

abraços

 

OBS Topico atualizado 24/06/2009 ir para ultimas paginas nelas tem outras atualizações do sistema de cadastro incluindo sistema de login com niveis de acesso

 

Olá Master

Primeiramente parabéns pelo post ótimo cadastro muito completo, gostaria de saber se tem como quando a pessoa se cadastrar, ou apertar o botão de salvar o cadastro ele envie para meu e-mail um aviso de cadastro novo.

Se poder me dar uma ajuda nisso, muito grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo, você está de parabéns!

 

Acabo de ler as 16 páginas do seu post, sinceramente em 12 anos de profissão nunca vi uma pessoa tão dedica e um post tão vivo e com diversas interações do seu criador como este, parabéns.

 

Vou aproveitar o post e criar uma FAQ bem simples aqui, se tiver dúvidas gostaria de contar com a sua ajuda.

 

Que Deus lhe dê em saúde e sucesso o tanto que já ajudou aqui.

Verifiquei todas as versões, exceto a última que como não tem um usuário de teste não consegui logar, mas todos se você for em editar e salvar sem alteração a página fica em branco e não redireciona, pode verificar se procede?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Eugenio

 

legal que voce gostou do topico, só que como voce viu esse topico é de 2006, hoje em dia nao se deve mais usar o php dessa forma pois tem muitas praticas ruim nesse modelo antigo e funções obsoletas

 

recomendo voce estudar sobre PDO

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde!

 

Sim, perfeito.

Fabyo, não sei pode me auxiliar mas preciso de algo simples para concluir uma faq que está me consumindo.

 

Em www.tsmix.com.br/faqd tem um exemplo , quero apenas que ao selecionar o assunto do primeiro combo sejam listados no segundo as faqs correspondentes, mas já tendei de tudo e só da erro estou quase desistindo.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando entro para cadastrar, no campo Data de Nascimento aparece:

Fatal error: Call to undefined function monta_select() in /var/www/html/PHP/cadastro.php on line 57
Alguem pode me ajudar a encontrar o erro? Fui la no código e parece que ele não chama a função, que foi criada no editar.php

como faço pra chamar ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Erika Sena, Seja bem vinda ao fórum !

 

Evite ressuscitar tópicos antigos, este é de 2006, muita coisa mudou no PHP. Sugiro você abrir um novo tópico com sua dúvida.

Mais já adianto que é exatamente o que você disse. A função não existe ou não foi inclusa no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 02/09/2006 at 19:24, Fabyo disse:

Pessoal to dando continuidade nos tutoriais para iniciantes e esse aqui é para quem ja leu:

 

http://forum.imasters.com.br/index.php?showtopic=191441

 

Esse tutorial é para usuarios iniciantes que estao começando agora e querem aprender a mecher com PHP e banco de dados, sei que é dificil achar um tutorial bem mastigado assim, e falta exemplos completos no manual do php, e as vezes a pessoa acaba pegando um script pronto mas nao entende muito e o pior a maioria das vezes o sistema esta mal feito assim o usuario acaba aprendendo errado pensando que é o certo.

 

esse tutorial é bem basico, e criei como exemplo 2 tabelas uma para usuario e outra para estados

e é mais para você aprender mesmo , acabei criando varias funções que ficaram mais para aprendizado do que funcional, mas a ideia é você entender como as coisas funcionam

 

com esse sistema você vai aprender:

 

* Listar os dados de um banco de dados

* Salvar dados do formulario para banco de dados

* Excluir dados do banco

* Editar dados do banco

* Carregar um combobox(select do html) com dados vindos do banco de dados

* Validações especiais para deixar o php funcionando 100% sem erros

* Varios macetes e dicas de uso em sistemas com o uso de um arquivo de verificações basicas o init.php

 

 

tabela.sql

 


CREATE TABLE usuarios (
id_usuario SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR ( 45 ) NOT NULL,	
email VARCHAR ( 64 ) NOT NULL UNIQUE,
data_nascimento DATE NOT NULL,
sexo ENUM ( 'M', 'F' ) NOT NULL,	 
preferencias SET ( 'R', 'S', 'P', 'F' ) NOT NULL COMMENT 'R=Romance;S=Suspense;P=Policial;F=Ficção',
salario DECIMAL ( 10,2 ) NOT NULL,
endereco VARCHAR ( 30 ) NOT NULL,
bairro VARCHAR ( 20 ) NOT NULL,
cidade VARCHAR ( 45 ) NOT NULL,
fk_estado SMALLINT ( 5 ) UNSIGNED NOT NULL,
login VARCHAR ( 40 ) NOT NULL,
senha CHAR ( 32 ) NOT NULL
);

CREATE TABLE estados (
id_estado SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
uf CHAR ( 2 ) NOT NULL,
estado VARCHAR ( 19 ) NOT NULL UNIQUE	
);

INSERT INTO estados VALUES ( NULL , "AC", "Acre");
INSERT INTO estados VALUES ( NULL , "AL", "Alagoas");
INSERT INTO estados VALUES ( NULL , "AP", "Amapá");						
INSERT INTO estados VALUES ( NULL , "AM", "Amazonas");
INSERT INTO estados VALUES ( NULL , "BA", "Bahia");
INSERT INTO estados VALUES ( NULL , "CE", "Ceará");
INSERT INTO estados VALUES ( NULL , "DF", "Distrito Federal");
INSERT INTO estados VALUES ( NULL , "ES", "Espirito Santo");
INSERT INTO estados VALUES ( NULL , "GO", "Goiás");
INSERT INTO estados VALUES ( NULL , "MA", "Maranhão");
INSERT INTO estados VALUES ( NULL , "MT", "Mato Grosso");
INSERT INTO estados VALUES ( NULL , "MS", "Mato Grosso do Sul");
INSERT INTO estados VALUES ( NULL , "MG", "Minas Gerais");
INSERT INTO estados VALUES ( NULL , "PA", "Pará");
INSERT INTO estados VALUES ( NULL , "PB", "Paraíba");
INSERT INTO estados VALUES ( NULL , "PR", "Paraná");
INSERT INTO estados VALUES ( NULL , "PE", "Pernambuco");
INSERT INTO estados VALUES ( NULL , "PI", "Piauí");
INSERT INTO estados VALUES ( NULL , "RN", "Rio Grande do Norte");
INSERT INTO estados VALUES ( NULL , "RS", "Rio Grande do Sul");
INSERT INTO estados VALUES ( NULL , "RJ", "Rio de Janeiro");
INSERT INTO estados VALUES ( NULL , "RO", "Rondônia");
INSERT INTO estados VALUES ( NULL , "RR", "Roraima");
INSERT INTO estados VALUES ( NULL , "SC", "Santa Catarina");
INSERT INTO estados VALUES ( NULL , "SP", "São Paulo");
INSERT INTO estados VALUES ( NULL , "SE", "Sergipe");
INSERT INTO estados VALUES ( NULL , "TO", "Tocantins"); </div>
 

 

como podem ver é uma tabela apenas para podermos usar no sistema, sao coisas ficticias que usei apenas para passar exemplos uteis de varios campos no banco de dados, talves o unico campo que você nao saiba para que serve nessa tabela é o "preferencias", esse preferencia é para o usuario escolher qual tipo de filme ele gosta, usei esse exemplo para você entender como usar o campo SET() do mysql

 

pessoal eu nao faço codigos html fora do padrao, e todos meus codigos sao valido pelo W3C, mas eu nao me preocupei em deixar os codigos validos pois a ideia é passar mais informação sobre o sistema de cadastro, e se eu for me preoculpar com tudo isso eu nunca iria postar esse tutorial, pois meu tempo anda curto demais.

 

index.html:

 


<a href="cadastro.php">Cadastrar Usuarios</a><br />
<a href="listar.php">Listar Usuarios</a>
 

 

 

cadastro.php

 


<?php
//Verifico se o arquivo existe
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
//verifico se a função que eu criei existe, vai que alguem pegou meu script e apagou ela = )
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
$re = mysql_query("select * from estados order by estado");
//verifico se nao deu erro de mysql
if(mysql_errno() != 0) {
               //verifico se a $errros existe, mesma coisa vai que alguem meche no script e apagou ela
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi auterado, nao existe \$erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox { border:1px solid gray; width:200px;} 
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar.php">
 <table width="400" border="0" align="center">
   <tr>
     <td width="145">Nome</td>
     <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" /></td>
   </tr>
   <tr>
     <td>Email</td>
     <td><input name="email" type="text" id="email" maxlength="64" class="textBox" /></td>
   </tr>
   <tr>
     <td>Data Nascimento</td>
     <td>
	<?php	
                                               /*aqui eu criei uma função para montar o combo para mim, na propria função a seguir eu explico como ela funciona*/		
		echo monta_select("dia", 1, 31);	
		echo monta_select("mes", 1, 12);	
		echo monta_select("ano", 1940, 1988);
	?>	
</td>
   </tr>
   <tr>
     <td>Sexo</td>
     <td><input name="sexo" type="radio" value="M" checked="checked" /><label>Masculino</label> 
     <input name="sexo" type="radio" value="F" /> <label>Feminino</label></td>
   </tr>
   <tr>
     <td>Preferencias de Filmes </td>
     <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias">
       <option value="R">Romance</option>
       <option value="S">Suspense</option>
       <option value="P">Policial</option>
       <option value="F">Ficção</option>
     </select>
     </td>
   </tr>
   <tr>
     <td>Salario</td>
     <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td>
   </tr>
   <tr>
     <td>Endereco</td>
     <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td>
   </tr>
   <tr>
     <td>Bairro</td>
     <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td>
   </tr>
   <tr>
     <td>Cidade</td>
     <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td>
   </tr>
   <tr>
     <td>Estado</td>
     <td><select name="estados" id="estados" class="textBox" >	  	
<?php
//pego os dados do banco para montar o combo do estados
while($l = mysql_fetch_array($re)) {
$id     = $l["id_estado"];
$estado = $l["estado"];
$uf     = $l["uf"];				
echo "<option value=\"$id\">$uf - $estado</option>\n";
}
//fecho a conexao com o banco
@mysql_close();

?>
     </select>      </td>
   </tr>
   <tr>
     <td>Login</td>
     <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td>
   </tr>
   <tr>
     <td>Senha</td>
     <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td>
   </tr>
   <tr>
     <td> </td>
     <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
   </tr>
 </table>
</form>
</body>
</html></div>
 

 

salvar.php

 


<?php
/*verifico se os dados estao vindos do formulario, porque se uma pessoa acessar essa pagina diretamente 
poderia dar erro, entao eu testo antes*/
if($_SERVER["REQUEST_METHOD"] == "POST") {
$nome         = $_POST["nome"];
$email        = $_POST["email"];
$data         = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}";
$sexo         = $_POST["sexo"];
//if e else simplificado, verifico se foi escolhido alguma preferencia e crio um array
$preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : "";
$salario      = $_POST["salario"];
$endereco     = $_POST["endereco"];
$bairro       = $_POST["bairro"];
$cidade       = $_POST["cidade"];
$estados      = $_POST["estados"];
$login        = $_POST["login"];
$senha        = $_POST["senha"];

//aqui ja expliquei, mas denovo: ele verifica se o arquivo existe
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
//ja expliquei, mas ultima vez: verifica se a função que eu vou usar existe
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
if(@mysql_query("INSERT INTO usuarios VALUES (	NULL , '$nome', '$email', '$data' , '$sexo', 
'$preferencias', '$salario', '$endereco', '$bairro', '$cidade', '$estados', '$login', MD5( '$senha' ) )")) {
              //verifiquei acima se deu certo o comando e aqui verifico se foi mesmo gravado o dado no banco
if(mysql_affected_rows() == 1){
	echo "Registro efetuado com sucesso<br />";
}	

} else {
               //verifico se nao estao tentando gravar um dado que ja existe, pois usei UNIQUE na tabela 
if(mysql_errno() == 1062) {
	echo $erros[mysql_errno()];
	exit;
} else {	
	echo "Erro nao foi possivel efetuar o cadastro";
	exit;
}	
@mysql_close();
}

}
?>
<a href="index.html">Voltar</a>
 

 

 

listar.php

 


<a href="index.html">Voltar</a>
<?php
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
$re = mysql_query("SELECT * FROM usuarios INNER JOIN estados ON usuarios.fk_estado = estados.id_estado ORDER BY usuarios.nome;");
if(mysql_errno() != 0) {
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi auterado, nao existe $erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}
?>

<table width="100%" border="1">
<tr>
	<td>Ações</td>
	<td>Nome</td>
	<td>Email</td>
	<td>Data Nasc.</td>
	<td>Sexo</td>
	<td>Preferencias</td>
	<td>salario</td>
	<td>Endereço</td>
	<td>Bairro</td>
	<td>Cidade</td>
	<td>Estado</td>
	<td>Login</td>
</tr>
<?php
while($l = mysql_fetch_array($re)) {
$id          = $l["id_usuario"];
$nome        = $l["nome"];
$email       = $l["email"];
$data        = implode("/", array_reverse(explode("-", $l["data_nascimento"])));
$sexo        = $l["sexo"] == "M" ? "Masculino" : "Feminino";
$preferencia = Pega_Preferencia($l["preferencias"]);
$salario     = $l["salario"];
$endereco    = $l["endereco"];
$bairro      = $l["bairro"];
$cidade      = $l["cidade"];
$estado      = $l["estado"];
$login       = $l["login"];

echo "
<tr>
	<td><a href=\"editar.php?id=$id\">[Editar]</a> <a href=\"excluir.php?id=$id\">[Excluir]</a></td>
	<td> $nome</td>		
	<td> $email</td>
	<td> $data</td>
	<td> $sexo</td>
	<td> ". monta_combo($preferencia). "</td>
	<td> ". number_format($salario, 2, ",", "."). "</td>
	<td> $endereco</td>
	<td> $bairro</td>
	<td> $cidade</td>
	<td> $estado</td>
	<td> $login</td>
</tr>\n";
}	
@mysql_close();
?>	
</table>
 

 

 

editar.php

 


<?php
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$id = $_GET["id"];

Abre_Conexao();
$re    = mysql_query("select count(*) as total from usuarios where id_usuario = $id");	
$total = mysql_result($re, 0, "total");

if($total == 1) {
$re    = mysql_query("select * from usuarios, estados where estados.id_estado = usuarios.fk_estado and usuarios.id_usuario = $id");
$dados = mysql_fetch_array($re);		
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox { border:1px solid gray; width:200px;} 
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar_edicao.php">
<input type="hidden" name="id" value="<?php echo $id; ?>" />
 <table width="400" border="0" align="center">
   <tr>
     <td width="145">Nome</td>
     <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" value="<?php echo $dados["nome"]; ?>" /></td>
   </tr>
   <tr>
     <td>Email</td>
     <td><input name="email" type="text" id="email" maxlength="64" class="textBox" value="<?php echo $dados["email"]; ?>" /></td>
   </tr>
   <tr>
     <td>Data Nascimento</td>
     <td>
	<?php			
		$arr = explode("-", $dados["data_nascimento"]);

		echo Seleciona_Item($arr[2], monta_select("dia", 1, 31));	
		echo Seleciona_Item($arr[1], monta_select("mes", 1, 12));	
		echo Seleciona_Item($arr[0], monta_select("ano", 1940, 1988));	
	?>	
</td>
   </tr>
   <tr>
     <td>Sexo</td>
     <td><input name="sexo" type="radio" value="M" <?php echo $dados["sexo"] == "M" ? "checked=\"checked\"" : ""; ?> /><label>Masculino</label> 
     <input name="sexo" type="radio" value="F" <?php echo $dados["sexo"] == "F" ? "checked=\"checked\"" : ""; ?> /> <label>Feminino</label></td>
   </tr>
   <tr>
     <td>Preferencias de Filmes </td>
     <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias">
<?php
$combo = "<option value=\"R\">Romance</option>
       <option value=\"S\">Suspense</option>
       <option value=\"P\">Policial</option>
       <option value=\"F\">Ficção</option>";

$arr = explode(",", $dados["preferencias"]);
for($i = 0; $i < count($arr); $i++) {
$combo = preg_replace("#<option value=\"{$arr[$i]}\">#is", "<option value=\"{$arr[$i]}\" selected=\"selected\">", $combo);
}	
echo $combo;
?>        		

     </select>
     </td>
   </tr>
   <tr>
     <td>Salario</td>
     <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td>
   </tr>
   <tr>
     <td>Endereco</td>
     <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td>
   </tr>
   <tr>
     <td>Bairro</td>
     <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td>
   </tr>
   <tr>
     <td>Cidade</td>
     <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td>
   </tr>
   <tr>
     <td>Estado</td>
     <td><select name="estados" id="estados" class="textBox" >
  	<option value="0">Selecione</option>
<?php
$re = mysql_query("select * from estados order by estado");
if(mysql_errno() != 0) {
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi auterado, nao existe $erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}
while($l = mysql_fetch_array($re)) {
$id     = $l["id_estado"];
$estado = $l["estado"];
$uf     = $l["uf"];			
echo Seleciona_Item($dados["id_estado"], "<option value=\"$id\">$uf - $estado</option>");

}
@mysql_close();

?>
     </select>      </td>
   </tr>
   <tr>
     <td>Login</td>
     <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td>
   </tr>
   <tr>
     <td>Senha</td>
     <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td>
   </tr>
   <tr>
     <td> </td>
     <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
   </tr>
 </table>
</form>
</body>
</html>
 

 

 

excluir.php

 

 


<?php
if($_SERVER["REQUEST_METHOD"] == "GET") {
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$id = $_GET["id"];

Abre_Conexao();
if(mysql_query("delete from usuarios where id_usuario = $id")) {
if(mysql_affected_rows() == 1){
	echo "Registro deletado com sucesso<br />";
}	
}	
}

?>
<a href="listar.php">Voltar</a>
 

 

 

salvar_edicao.php

 


<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$id           = $_POST["id"];
$nome         = $_POST["nome"];
$email        = $_POST["email"];
$data         = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}";
$sexo         = $_POST["sexo"];
$preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : "";
$salario      = $_POST["salario"];
$endereco     = $_POST["endereco"];
$bairro       = $_POST["bairro"];
$cidade       = $_POST["cidade"];
$estados      = $_POST["estados"];
$login        = $_POST["login"];
$senha        = $_POST["senha"];

if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
if(@mysql_query("UPDATE usuarios SET nome = '$nome',
email = '$email',
sexo = '$sexo',
preferencias = '$preferencias',
salario = '$salario',
endereco = '$endereco',
bairro = '$bairro',
cidade = '$cidade',
fk_estado = '$estados',
login = '$login',
senha = MD5( '$senha' ) WHERE id_usuario = $id")) {

if(mysql_affected_rows() == 1){
	echo "Registro atualizado com sucesso";
}	

} else {
if(mysql_errno() == 1062) {
	echo $erros[mysql_errno()];
	exit;
} else {	
	echo "Erro nao foi possivel efetuar a edição";
	exit;
}	
@mysql_close();
}

}
?>
<a href="listar.php">Voltar</a>
CARA O AQUIVO TA CORROMPIDO, NAO CONSEGUI BAIXAR O AQUIVO FUNCOES.PHP. ALGUEM TEM ELE?

 

 

 

arquivos completos para download: Cadastro.zip

Pessoal qualquer duvida quanto os sistema ou alguma duvida só postar no forum mesmo que responderemos

 

bom espero que esse exemplo seja util

 

versao do sistema de cadastro mais simples

http://forum.imasters.com.br/index.php?showtopic=201046

 

abraços

 

OBS Topico atualizado 24/06/2009 ir para ultimas paginas nelas tem outras atualizações do sistema de cadastro incluindo sistema de login com niveis de acesso

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, esse tópico é de 2006. Fazem mais de 10 anos... você espera mesmo que tenham esse arquivo ainda? rs

Recomendo o estudo de CRUD em PHP, e faça o seu próprio sistema! É mais simples do que imagina.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citar

Está faltando o exemplo do arquivo init.php, CADE?

 

 

Em 02/09/2006 at 18:24, Fabyo disse:

Pessoal to dando continuidade nos tutoriais para iniciantes e esse aqui é para quem ja leu:

 

http://forum.imasters.com.br/index.php?showtopic=191441

 

Esse tutorial é para usuarios iniciantes que estao começando agora e querem aprender a mecher com PHP e banco de dados, sei que é dificil achar um tutorial bem mastigado assim, e falta exemplos completos no manual do php, e as vezes a pessoa acaba pegando um script pronto mas nao entende muito e o pior a maioria das vezes o sistema esta mal feito assim o usuario acaba aprendendo errado pensando que é o certo.

 

esse tutorial é bem basico, e criei como exemplo 2 tabelas uma para usuario e outra para estados

e é mais para você aprender mesmo , acabei criando varias funções que ficaram mais para aprendizado do que funcional, mas a ideia é você entender como as coisas funcionam

 

com esse sistema você vai aprender:

 

* Listar os dados de um banco de dados

* Salvar dados do formulario para banco de dados

* Excluir dados do banco

* Editar dados do banco

* Carregar um combobox(select do html) com dados vindos do banco de dados

* Validações especiais para deixar o php funcionando 100% sem erros

* Varios macetes e dicas de uso em sistemas com o uso de um arquivo de verificações basicas o init.php

 

 

tabela.sql

 


CREATE TABLE usuarios (
id_usuario SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR ( 45 ) NOT NULL,	
email VARCHAR ( 64 ) NOT NULL UNIQUE,
data_nascimento DATE NOT NULL,
sexo ENUM ( 'M', 'F' ) NOT NULL,	 
preferencias SET ( 'R', 'S', 'P', 'F' ) NOT NULL COMMENT 'R=Romance;S=Suspense;P=Policial;F=Ficção',
salario DECIMAL ( 10,2 ) NOT NULL,
endereco VARCHAR ( 30 ) NOT NULL,
bairro VARCHAR ( 20 ) NOT NULL,
cidade VARCHAR ( 45 ) NOT NULL,
fk_estado SMALLINT ( 5 ) UNSIGNED NOT NULL,
login VARCHAR ( 40 ) NOT NULL,
senha CHAR ( 32 ) NOT NULL
);

CREATE TABLE estados (
id_estado SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
uf CHAR ( 2 ) NOT NULL,
estado VARCHAR ( 19 ) NOT NULL UNIQUE	
);

INSERT INTO estados VALUES ( NULL , "AC", "Acre");
INSERT INTO estados VALUES ( NULL , "AL", "Alagoas");
INSERT INTO estados VALUES ( NULL , "AP", "Amapá");						
INSERT INTO estados VALUES ( NULL , "AM", "Amazonas");
INSERT INTO estados VALUES ( NULL , "BA", "Bahia");
INSERT INTO estados VALUES ( NULL , "CE", "Ceará");
INSERT INTO estados VALUES ( NULL , "DF", "Distrito Federal");
INSERT INTO estados VALUES ( NULL , "ES", "Espirito Santo");
INSERT INTO estados VALUES ( NULL , "GO", "Goiás");
INSERT INTO estados VALUES ( NULL , "MA", "Maranhão");
INSERT INTO estados VALUES ( NULL , "MT", "Mato Grosso");
INSERT INTO estados VALUES ( NULL , "MS", "Mato Grosso do Sul");
INSERT INTO estados VALUES ( NULL , "MG", "Minas Gerais");
INSERT INTO estados VALUES ( NULL , "PA", "Pará");
INSERT INTO estados VALUES ( NULL , "PB", "Paraíba");
INSERT INTO estados VALUES ( NULL , "PR", "Paraná");
INSERT INTO estados VALUES ( NULL , "PE", "Pernambuco");
INSERT INTO estados VALUES ( NULL , "PI", "Piauí");
INSERT INTO estados VALUES ( NULL , "RN", "Rio Grande do Norte");
INSERT INTO estados VALUES ( NULL , "RS", "Rio Grande do Sul");
INSERT INTO estados VALUES ( NULL , "RJ", "Rio de Janeiro");
INSERT INTO estados VALUES ( NULL , "RO", "Rondônia");
INSERT INTO estados VALUES ( NULL , "RR", "Roraima");
INSERT INTO estados VALUES ( NULL , "SC", "Santa Catarina");
INSERT INTO estados VALUES ( NULL , "SP", "São Paulo");
INSERT INTO estados VALUES ( NULL , "SE", "Sergipe");
INSERT INTO estados VALUES ( NULL , "TO", "Tocantins"); </div>
 

 

como podem ver é uma tabela apenas para podermos usar no sistema, sao coisas ficticias que usei apenas para passar exemplos uteis de varios campos no banco de dados, talves o unico campo que você nao saiba para que serve nessa tabela é o "preferencias", esse preferencia é para o usuario escolher qual tipo de filme ele gosta, usei esse exemplo para você entender como usar o campo SET() do mysql

 

pessoal eu nao faço codigos html fora do padrao, e todos meus codigos sao valido pelo W3C, mas eu nao me preocupei em deixar os codigos validos pois a ideia é passar mais informação sobre o sistema de cadastro, e se eu for me preoculpar com tudo isso eu nunca iria postar esse tutorial, pois meu tempo anda curto demais.

 

index.html:

 


<a href="cadastro.php">Cadastrar Usuarios</a><br />
<a href="listar.php">Listar Usuarios</a>
 

 

 

cadastro.php

 


<?php
//Verifico se o arquivo existe
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
//verifico se a função que eu criei existe, vai que alguem pegou meu script e apagou ela = )
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
$re = mysql_query("select * from estados order by estado");
//verifico se nao deu erro de mysql
if(mysql_errno() != 0) {
               //verifico se a $errros existe, mesma coisa vai que alguem meche no script e apagou ela
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi auterado, nao existe \$erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox { border:1px solid gray; width:200px;} 
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar.php">
 <table width="400" border="0" align="center">
   <tr>
     <td width="145">Nome</td>
     <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" /></td>
   </tr>
   <tr>
     <td>Email</td>
     <td><input name="email" type="text" id="email" maxlength="64" class="textBox" /></td>
   </tr>
   <tr>
     <td>Data Nascimento</td>
     <td>
	<?php	
                                               /*aqui eu criei uma função para montar o combo para mim, na propria função a seguir eu explico como ela funciona*/		
		echo monta_select("dia", 1, 31);	
		echo monta_select("mes", 1, 12);	
		echo monta_select("ano", 1940, 1988);
	?>	
</td>
   </tr>
   <tr>
     <td>Sexo</td>
     <td><input name="sexo" type="radio" value="M" checked="checked" /><label>Masculino</label> 
     <input name="sexo" type="radio" value="F" /> <label>Feminino</label></td>
   </tr>
   <tr>
     <td>Preferencias de Filmes </td>
     <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias">
       <option value="R">Romance</option>
       <option value="S">Suspense</option>
       <option value="P">Policial</option>
       <option value="F">Ficção</option>
     </select>
     </td>
   </tr>
   <tr>
     <td>Salario</td>
     <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td>
   </tr>
   <tr>
     <td>Endereco</td>
     <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td>
   </tr>
   <tr>
     <td>Bairro</td>
     <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td>
   </tr>
   <tr>
     <td>Cidade</td>
     <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td>
   </tr>
   <tr>
     <td>Estado</td>
     <td><select name="estados" id="estados" class="textBox" >	  	
<?php
//pego os dados do banco para montar o combo do estados
while($l = mysql_fetch_array($re)) {
$id     = $l["id_estado"];
$estado = $l["estado"];
$uf     = $l["uf"];				
echo "<option value=\"$id\">$uf - $estado</option>\n";
}
//fecho a conexao com o banco
@mysql_close();

?>
     </select>      </td>
   </tr>
   <tr>
     <td>Login</td>
     <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td>
   </tr>
   <tr>
     <td>Senha</td>
     <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td>
   </tr>
   <tr>
     <td> </td>
     <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
   </tr>
 </table>
</form>
</body>
</html></div>
 

 

salvar.php

 


<?php
/*verifico se os dados estao vindos do formulario, porque se uma pessoa acessar essa pagina diretamente 
poderia dar erro, entao eu testo antes*/
if($_SERVER["REQUEST_METHOD"] == "POST") {
$nome         = $_POST["nome"];
$email        = $_POST["email"];
$data         = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}";
$sexo         = $_POST["sexo"];
//if e else simplificado, verifico se foi escolhido alguma preferencia e crio um array
$preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : "";
$salario      = $_POST["salario"];
$endereco     = $_POST["endereco"];
$bairro       = $_POST["bairro"];
$cidade       = $_POST["cidade"];
$estados      = $_POST["estados"];
$login        = $_POST["login"];
$senha        = $_POST["senha"];

//aqui ja expliquei, mas denovo: ele verifica se o arquivo existe
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
//ja expliquei, mas ultima vez: verifica se a função que eu vou usar existe
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
if(@mysql_query("INSERT INTO usuarios VALUES (	NULL , '$nome', '$email', '$data' , '$sexo', 
'$preferencias', '$salario', '$endereco', '$bairro', '$cidade', '$estados', '$login', MD5( '$senha' ) )")) {
              //verifiquei acima se deu certo o comando e aqui verifico se foi mesmo gravado o dado no banco
if(mysql_affected_rows() == 1){
	echo "Registro efetuado com sucesso<br />";
}	

} else {
               //verifico se nao estao tentando gravar um dado que ja existe, pois usei UNIQUE na tabela 
if(mysql_errno() == 1062) {
	echo $erros[mysql_errno()];
	exit;
} else {	
	echo "Erro nao foi possivel efetuar o cadastro";
	exit;
}	
@mysql_close();
}

}
?>
<a href="index.html">Voltar</a>
 

 

 

listar.php

 


<a href="index.html">Voltar</a>
<?php
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
$re = mysql_query("SELECT * FROM usuarios INNER JOIN estados ON usuarios.fk_estado = estados.id_estado ORDER BY usuarios.nome;");
if(mysql_errno() != 0) {
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi auterado, nao existe $erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}
?>

<table width="100%" border="1">
<tr>
	<td>Ações</td>
	<td>Nome</td>
	<td>Email</td>
	<td>Data Nasc.</td>
	<td>Sexo</td>
	<td>Preferencias</td>
	<td>salario</td>
	<td>Endereço</td>
	<td>Bairro</td>
	<td>Cidade</td>
	<td>Estado</td>
	<td>Login</td>
</tr>
<?php
while($l = mysql_fetch_array($re)) {
$id          = $l["id_usuario"];
$nome        = $l["nome"];
$email       = $l["email"];
$data        = implode("/", array_reverse(explode("-", $l["data_nascimento"])));
$sexo        = $l["sexo"] == "M" ? "Masculino" : "Feminino";
$preferencia = Pega_Preferencia($l["preferencias"]);
$salario     = $l["salario"];
$endereco    = $l["endereco"];
$bairro      = $l["bairro"];
$cidade      = $l["cidade"];
$estado      = $l["estado"];
$login       = $l["login"];

echo "
<tr>
	<td><a href=\"editar.php?id=$id\">[Editar]</a> <a href=\"excluir.php?id=$id\">[Excluir]</a></td>
	<td> $nome</td>		
	<td> $email</td>
	<td> $data</td>
	<td> $sexo</td>
	<td> ". monta_combo($preferencia). "</td>
	<td> ". number_format($salario, 2, ",", "."). "</td>
	<td> $endereco</td>
	<td> $bairro</td>
	<td> $cidade</td>
	<td> $estado</td>
	<td> $login</td>
</tr>\n";
}	
@mysql_close();
?>	
</table>
 

 

 

editar.php

 


<?php
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$id = $_GET["id"];

Abre_Conexao();
$re    = mysql_query("select count(*) as total from usuarios where id_usuario = $id");	
$total = mysql_result($re, 0, "total");

if($total == 1) {
$re    = mysql_query("select * from usuarios, estados where estados.id_estado = usuarios.fk_estado and usuarios.id_usuario = $id");
$dados = mysql_fetch_array($re);		
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cadastro</title>
<style>
<!--
.textBox { border:1px solid gray; width:200px;} 
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="salvar_edicao.php">
<input type="hidden" name="id" value="<?php echo $id; ?>" />
 <table width="400" border="0" align="center">
   <tr>
     <td width="145">Nome</td>
     <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" value="<?php echo $dados["nome"]; ?>" /></td>
   </tr>
   <tr>
     <td>Email</td>
     <td><input name="email" type="text" id="email" maxlength="64" class="textBox" value="<?php echo $dados["email"]; ?>" /></td>
   </tr>
   <tr>
     <td>Data Nascimento</td>
     <td>
	<?php			
		$arr = explode("-", $dados["data_nascimento"]);

		echo Seleciona_Item($arr[2], monta_select("dia", 1, 31));	
		echo Seleciona_Item($arr[1], monta_select("mes", 1, 12));	
		echo Seleciona_Item($arr[0], monta_select("ano", 1940, 1988));	
	?>	
</td>
   </tr>
   <tr>
     <td>Sexo</td>
     <td><input name="sexo" type="radio" value="M" <?php echo $dados["sexo"] == "M" ? "checked=\"checked\"" : ""; ?> /><label>Masculino</label> 
     <input name="sexo" type="radio" value="F" <?php echo $dados["sexo"] == "F" ? "checked=\"checked\"" : ""; ?> /> <label>Feminino</label></td>
   </tr>
   <tr>
     <td>Preferencias de Filmes </td>
     <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias">
<?php
$combo = "<option value=\"R\">Romance</option>
       <option value=\"S\">Suspense</option>
       <option value=\"P\">Policial</option>
       <option value=\"F\">Ficção</option>";

$arr = explode(",", $dados["preferencias"]);
for($i = 0; $i < count($arr); $i++) {
$combo = preg_replace("#<option value=\"{$arr[$i]}\">#is", "<option value=\"{$arr[$i]}\" selected=\"selected\">", $combo);
}	
echo $combo;
?>        		

     </select>
     </td>
   </tr>
   <tr>
     <td>Salario</td>
     <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td>
   </tr>
   <tr>
     <td>Endereco</td>
     <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td>
   </tr>
   <tr>
     <td>Bairro</td>
     <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td>
   </tr>
   <tr>
     <td>Cidade</td>
     <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td>
   </tr>
   <tr>
     <td>Estado</td>
     <td><select name="estados" id="estados" class="textBox" >
  	<option value="0">Selecione</option>
<?php
$re = mysql_query("select * from estados order by estado");
if(mysql_errno() != 0) {
if(!isset($erros)) {
	echo "Erro o arquivo init.php foi auterado, nao existe $erros";
	exit;
}
echo $erros[mysql_errno()];
exit;
}
while($l = mysql_fetch_array($re)) {
$id     = $l["id_estado"];
$estado = $l["estado"];
$uf     = $l["uf"];			
echo Seleciona_Item($dados["id_estado"], "<option value=\"$id\">$uf - $estado</option>");

}
@mysql_close();

?>
     </select>      </td>
   </tr>
   <tr>
     <td>Login</td>
     <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td>
   </tr>
   <tr>
     <td>Senha</td>
     <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td>
   </tr>
   <tr>
     <td> </td>
     <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
   </tr>
 </table>
</form>
</body>
</html>
 

 

 

excluir.php

 

 


<?php
if($_SERVER["REQUEST_METHOD"] == "GET") {
if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$id = $_GET["id"];

Abre_Conexao();
if(mysql_query("delete from usuarios where id_usuario = $id")) {
if(mysql_affected_rows() == 1){
	echo "Registro deletado com sucesso<br />";
}	
}	
}

?>
<a href="listar.php">Voltar</a>
 

 

 

salvar_edicao.php

 


<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$id           = $_POST["id"];
$nome         = $_POST["nome"];
$email        = $_POST["email"];
$data         = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}";
$sexo         = $_POST["sexo"];
$preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : "";
$salario      = $_POST["salario"];
$endereco     = $_POST["endereco"];
$bairro       = $_POST["bairro"];
$cidade       = $_POST["cidade"];
$estados      = $_POST["estados"];
$login        = $_POST["login"];
$senha        = $_POST["senha"];

if(file_exists("init.php")) {
require "init.php";		
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}

if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}

Abre_Conexao();
if(@mysql_query("UPDATE usuarios SET nome = '$nome',
email = '$email',
sexo = '$sexo',
preferencias = '$preferencias',
salario = '$salario',
endereco = '$endereco',
bairro = '$bairro',
cidade = '$cidade',
fk_estado = '$estados',
login = '$login',
senha = MD5( '$senha' ) WHERE id_usuario = $id")) {

if(mysql_affected_rows() == 1){
	echo "Registro atualizado com sucesso";
}	

} else {
if(mysql_errno() == 1062) {
	echo $erros[mysql_errno()];
	exit;
} else {	
	echo "Erro nao foi possivel efetuar a edição";
	exit;
}	
@mysql_close();
}

}
?>
<a href="listar.php">Voltar</a>
 

 

 

 

arquivos completos para download: Cadastro.zip

Pessoal qualquer duvida quanto os sistema ou alguma duvida só postar no forum mesmo que responderemos

 

bom espero que esse exemplo seja util

 

versao do sistema de cadastro mais simples

http://forum.imasters.com.br/index.php?showtopic=201046

 

abraços

 

OBS Topico atualizado 24/06/2009 ir para ultimas paginas nelas tem outras atualizações do sistema de cadastro incluindo sistema de login com niveis de acesso

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.