Ir ao conteúdo
  • Cadastre-se

Formulário php [Ajuda]


makiesan

Posts recomendados

Bom dia a todos

Estou com problemas no formulário que montei. O formulário é bem simples, é somente para cadastro de usuários, mas não está funcionando.

Criei dois arquivos (Cadastro.php) e (Inserir.php)

Eu utilizo o Xampp e o Dreamweaver CS5. A conexão com o banco de dados está funcionando normalmente.

Segue abaixo a tabela e o código:

`cad_usuario`
--

CREATE TABLE IF NOT EXISTS `cad_usuario` (
`Id` int(2) NOT NULL AUTO_INCREMENT,
`Nome` varchar(100) NOT NULL,
`Email` varchar(30) NOT NULL,
`Login` varchar(30) NOT NULL,
`Senha` varchar(20) NOT NULL,
`preferência` tinyint(1) NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

cadastro.php

   <body>
<form name="form1" method="POST" action="<?php echo $editFormAction; ?>">


<p class="titulo"><b>Faca ja o seu cadastro!!</b></p>
<br>

<table>
<tr>
<td class="teste"><label><b>*Nome:</b></label></td>
<td><input type="text" name="Nome" size="40" value="<?php echo $_SESSION['Nome']?>"></td>
</tr>

<tr>
<td class="teste"><label><b>*Email:</b></label></td>
<td><input type="text" name="Email1" size="40" value="<?php echo $_SESSION['Email1']?>"></td>
</tr>

<tr>
<td class="teste"><label><b>*Confirme seu email:</b></label></td>
<td><input type="text" name="Email2" size="40" value="<?php echo $_SESSION['Email2']?>"></td>
</tr>

<tr>
<td class="teste"><label><b>*Senha:</b></label></td>
<td><input type="password" name="Senha1" size="40" value="<?php echo $_SESSION['Senha1']?>"></td>
</tr>

<tr>
<td class="teste"><label><b>*Confirme sua senha:</b></label></td>
<td><input type="password" name="Senha2" size="40" value="<?php echo $_SESSION['Senha2']?>"></td>
<td class="teste"><label>Minimo 6 caracteres</label></td>
</tr>

</table>
<p><b> * Campos de preenchimento obrigatorio</b></p>
<p><label><b> Selecione a sua preferência:</b></label></p>
<input type="checkbox" name="interesses1"><b>Doce</b>
<input type="checkbox" name="interesses2"><b>Salgado</b>

<p><input type="submit" value="Enviar">
<input type="reset" value="Limpar" /></p>

<input type="hidden" name="MM_insert" value="form1">

</form>

</body>

inserir.php

<?php require_once('Connections/conexao.php'); ?>

<?php
error_reporting(0);
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . $_SERVER['QUERY_STRING'];
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO cad_usuario (Nome, Email, Senha, Doce, Salgado) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['Nome'], "text"),
GetSQLValueString($_POST['Email'], "text"),
GetSQLValueString($_POST['Senha1'], "text"),
GetSQLValueString($_POST['Doce'], "text"),
GetSQLValueString($_POST['Salgado'], "text"));


$_SESSION["Nome"] = $_POST['Nome'];
$_SESSION["Email"] = $_POST['Email'];
$_SESSION["Senha1"] = $_POST['Senha1'];
$_SESSION["Senha2"] = $_POST['Senha2'];

if ($_POST['Nome'] == "")
{
echo "<center>Por favor preencha o campo <b>nome</b>.</center><br>";
include "Cadastro.php";
exit;
}


if ($_POST['Email'] == "")
{
echo "<center>Por favor preencha o campo <b>email</b>.</center><br>";
include "Cadastro.php";
exit;
}

if ($_SESSION["senha1"] != $_SESSION["senha2"])
{
echo "<center>Os valores de <b>senha</b> não conferem, por favor, tente de novo. </center><br>";
include "Cadastro.php";
exit;
}

if ($_POST['senha1'] == "")
{
echo "<center>Por favor preencha o campo <b>senha</b>.</center><br>";
include "Cadastro.php";
exit;
}

if ($_POST['senha2'] == "")
{
echo "<center>Preencha o campo <b>senha</b> novamente.</center><br>";
include "Cadastro.php";
exit;
}

mysql_select_db($database_conexao, $conexao);
$Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

$insertGoTo = "finalizar.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
?>

Quando eu rodo o Cadastro.php ele apresenta o seguinte erro em todos os campos (Nome, email, confirmação de email, senha e confirme sua senha)

<br /><b>Notice</b>: Undefined variable: _SESSION in <b>D:\Programas\xampp\htdocs\TCC\Cadastro.php</b> on line <b>31</b><br />

O que pode ser??

Grata

Link para o comentário
Compartilhar em outros sites

Olá,

O erro diz que a variável não está criada.

Porém notei que você está trabalhando com variáveis de sessão, só que não vi nos eu código você abrindo uma sessão.

Quando se trabalha com variáveis $_SESSION, é OBRIGATÓRIO abrir uma sessão antes de qualquer coisa.

Então, na primeira linha, antes de qualquer coisa nas páginas que tem a variável $_SESSION, coloque isto:


<?php session_start() ?>

REPETINDO: Este código deve aparecer em todos os arquivos PHP que tem variáveis de sessão e OBRIGATORIAMENTE antes de qualquer código.

Este é um problema, não sei se tem outros. Teste e nos avise.

Link para o comentário
Compartilhar em outros sites

  • Moderador

Olá,

provavelmente estas usando as variáveis de sessão de forma errônea.

Recomendo que faça seu script de forma mais simples do que estas que estas usando.

exemplo:

formulário:


<form method="post" action="processaDados.php">
<input type="text" name="nome" />
<input type="text" name="email" />

<input type="submit" value="Cadastrar" />
</form>


<php
include 'conexao.php';

$nome = $_POST['nome'];
$email = $_POST[''email'];

$cadastra = mysql_query(" insert into tabela.... ");

if($cadastra){
mensagem de sucesso
}else{
mensagem de erro
}

adapte para suas necessidades

Link para o comentário
Compartilhar em outros sites

  • Moderador

Sim,

pois não há necessidade real de usar sessions para um formulário.. onde o usuário que preenche.. retire as sessions.. e faça um script que receba os dados de forma mais simples.. como eu mostrei no exemplo.

as sessions são usadas quando é preciso resgatar os dados. os exemplos mais comuns de uso são em logins, carrinhos de compras... e etc

Link para o comentário
Compartilhar em outros sites

Boa noite dif

Trago boas notícias...

Fiz o que você me recomendou. Retirei do formulário o código

 value="<?php echo $_SESSION['Nome']?>"></td>

e rodou, porém ele apresentou uma mensagem "acesso proibido".

Pois bem, eu pesquisei em alguns fóruns sobre esse erro e nenhum deles informava muita coisa sobre essa mensagem.

Fiz uma alteração no código também. A invés de deixar assim:

 <form name="form1" method="POST" action="<?php echo $editFormAction; ?>">

Eu deixei assim:

<form name="form1" method="POST" action="inserir.php">

E funcionou.

Agradeço a atenção e a ajuda de todos.

Obrigado.

Link para o comentário
Compartilhar em outros sites

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...