Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com sistema de cadastro !


yfoliveira

Pergunta

Olá pessoal sou iniciante em PHP, e em meus estudos estava fazendo um sistema de cadastro, mas esta dando um erro que não consigo resolver, se possível gostaria de uma ajuda.

Grato desde já.

Notice: Undefined index: acao in C:\Program Files\EasyPHP-12.0\www\sistema de cadastro\cadastro\cadastro.php on line 4

Notice: Undefined variable: error in C:\Program Files\EasyPHP-12.0\www\sistema de cadastro\cadastro\cadastro.php on line 63

<?php

include ('C:\Program Files\EasyPHP-12.0\www\sistema de cadastro\cadastro\configuração\conn.php');

$acao = $_GET['acao'];

if ($acao == "cadastro") {

// recebendo os valores

$nome = $_POST['nome'];

$email = $_POST['email'];

$nascimento = $_POST['nascimento'];

$telefone = $_POST['telefone'];

$info = $_POST['info'];

//nome

if ($nome == "") {

$error[0] = "Preencha o campo nome";

}

//email

if (!preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $email)) {

$error[1] = "Preencha um email valido";

}

//data de nascimento

if (nascimento == "") {

$error[2] = "Preencha a data de nascimento";

}

else if

(!preg_match('/^\d{1,2}\/\d{1,2}\/\d{4}$/', $nascimento)) {

$error[2] = "Data em formato invalido";

}

//telefone

if ($telefone == "") {

$error[3] = "Preencha o campo telefone";

}

else if (!preg_match('/^(\(?[2-9]{1}[0-9]{2}\)?|[0-9]{3,3}[-. ]?)[ ][0-9]{3,3}[-. ]?[0-9]{4,4}$/', $telefone))

{

$error[3] = "Telefone em formato invalido";

}

//verifica os valores dentro do array !!!!!!!!!!!!!!!

if (sizeof($error) == 0) {

//comando para inserir os valores no banco de dados !!!!!!!!

$sql = mysql_query("INSERT INTO clientes VALUES ('', '$nome', '$email', '$nascimento', '$telefone', '$info') ");

// verifica todos os comandos acimea do cadastro !!!!!!!!!!!!!

if ($sql) {

echo "&lt;script language = 'javascript'> alert ('Cadastro efetuado com sucesso')</script>";

} else {

echo "&lt;script language = 'javascript'> alert ('Não foi possivel realizar o cadastro no momento')</script>";

}

}

}

?>

<?php

if (sizeof($error) != 0) {

// foreach exibe todos os erros de um array !!!!!!!!!!!!!!!!!

// ($error as $err) esse codigo transforma os $error em $err

foreach ($error as $err) {

echo $err . "<br/>";

}

}

?>

<h1>Cadastro de Clientes</h1>

<HTML>

<HEAD>

<TITLE>Documento PHP</TITLE>

</HEAD>

<BODY>

<form method="POST" action = "cadastro.php?acao=cadastro" >

Nome:<br/>

<input type="text" name = "nome" size="20"><p>

Email:<br/>

<input type="text" name = "email" size="20"><p>

Data de Nascimento:<br/>

<input type="text" name= "nascimento" size="20"><i>(Ex: dd/mm/aaaa)</i><p>

Telefone:<br/>

<input type="text" name = "telefone" size="20"><i>(Ex: 14 3210-1234)</i><p>

Informações adicionais:<br/>

<textarea cols = "30" rows = "3" name= "info"></textarea><p>

</form>

<input type="button" value="Enviar">

</p>

<?

?>

</BODY>

</HTML>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

yfoliveira,

1º - Seu script está esperando a variável acao vindo de sua query string. Ou seja, você não esta passando esta variável para seu script:

Por exemplo:

http://seuservidor.com.br/seuscript.php?acao=cadastro

2 º - Inicialize seu array $error, pois do jeito que você está fazendo, o PHP vai verificar uma variável do tipo array inexistente.

Faça assim:

<?php
include ('C:\Program Files\EasyPHP-12.0\www\sistema de cadastro\cadastro\configuração\conn.php')

$acao = $_GET['acao'];

//Inicializar variáveis 
$error = array();

Link para o comentário
Compartilhar em outros sites

  • 0

Olha cara você pode resolver temporariamente o problema da seguinte forma

substitua

$acao = $_GET['acao'];
por
$acao = isset($_GET['acao']) ? $_GET['acao'] : "";

     faça a mesma coisa para a variavel $erro (não sei se a do erro vai dar certo)

     $erro = isset($erro) ? $erro : "";

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...