Ir para conteúdo

Arquivado

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

Araan Chagas

[Resolvido] Pagina de cadastro

Recommended Posts

Bom sou meio Novato ainda em php, e estou vendo alguns cursos gratis na net, e achei um so que é com smarty, então to ralando pra aprender ele no php puro =D

 

Bom eu fiz uma pagina de cadastro, so que ele esta pegando perfeitamente, o problema é que n estou conseguindo fazer com que se ele cadastre retornar uma msg de sucesso....

 

Meu codigo ta assim...

 

funcoes.php

<?php
include ('config.php');

function adicionar($nome,$sobrenome,$nick,$idade,$email,$cidade,$trabalho) {
	$sql = "Insert into `membro` (nome,sobrenome,nick,idade,email,cidade,trabalho) ";
	$sql.= "Values('$nome','$sobrenome','$nick','$idade','$email','$cidade','$trabalho')";
	mysql_query($sql);
}

function alterar($id,$nome,$sobrenome,$nick,$idade,$email,$cidade,$trabalho) {
	$sql = "Update `membro` set nome='$nome',sobrenome='$sobrenome',nick'$nick',idade='$idade',email='$email',cidade='$cidade',trabalho='$trabalho' ";
	$sql.= "where id=$id";
	mysql_query($sql);	
}

function apagar($id) {
	$sql = "delete from `membro` where id=$id";
	mysql_query($sql);
}

function listar() {
	$sql = "select * from membro order by nome";
	$res = mysql_query($sql);
	$ret = array();
		if(mysql_num_rows($res)>0) {
			for($i=0;$i<mysql_num_rows($res);$I++){
				$ret[] = mysql_fetch_array($res);
			}
		}
		return $ret;
}

function get($id) {
	$sql = "select * from where id=$id";
	$res = mysql_query($sql);
	$ret = array();
		if(mysql_num_rows($res)==1){
			$ret = mysql_fetch_row($res);
		}
		return $ret;
}
?>

 

signup.php

<?php
include ('funcoes.php');

if(isset($_REQUEST['submit']))
adicionar(
$_REQUEST['nome'],
$_REQUEST['sobrenome'],
$_REQUEST['nick'],
$_REQUEST['idade'],
$_REQUEST['email'],
$_REQUEST['cidade'],
$_REQUEST['trabalho']
);
?>

<h2>Cadastro de Membros</h2>

<form action="" method="post">
	<input type="hidden" name="signup" value="0" />
<fieldset>
	<label>Nome: <input type="text" name="nome" value="" /></label><br />
   	<label>Sobrenome: <input type="text" name="sobrenome" value="" /></label><br />
   	<label>Nick: <input type="text" name="nick" value="" /></label><br />
   	<label>Idade: <input type="number" name="idade" value="" /></label><br />
   	<label>Email: <input type="email" name="email" value="" /></label><br />
   	<label>Cidade: <input type="text" name="cidade" value="" /></label><br />
   	<label>Trabalho: <input type="text" name="trabalho" value="" /></label>
</fieldset>
<input type="submit" name="submit" value="Salvar" />
<input type="reset" name="reset" value="Limpar" />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um return antes da função que executa a query no mysql. Ele retornará true/false.

 

       function adicionar($nome,$sobrenome,$nick,$idade,$email,$cidade,$trabalho) {
               $sql = "Insert into `membro` (nome,sobrenome,nick,idade,email,cidade,trabalho) ";
               $sql.= "Values('$nome','$sobrenome','$nick','$idade','$email','$cidade','$trabalho')";
               return mysql_query($sql);
       }

 

Depois, na chamada da função, faça a verificação se cadastrou com sucesso ou não.

 

if(isset($_REQUEST['submit']))
if(adicionar(
       $_REQUEST['nome'],
       $_REQUEST['sobrenome'],
       $_REQUEST['nick'],
       $_REQUEST['idade'],
       $_REQUEST['email'],
       $_REQUEST['cidade'],
       $_REQUEST['trabalho']
) == TRUE)
{
       echo "Cadastro efetuado com sucesso!";
}else
{
       echo "Não foi possível cadastrar.";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa funcionou, mais o que presisava é quando fosse enviado os dados pro banco de dados, ele n aparecesse o form, e retornasse a msg, sem o form... Dessa forma que você apassou ele aparece a msg em cima, e continua aparecendo o form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca o form dentro do condicional:

if(isset($_POST['submit']))
{
 //faz a operação no banco
}
else
{//não mostra o form depois que ele for enviado.
?>
<form>...
<?php
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim...

 

if(isset($_REQUEST['submit']))
}
adicionar($_REQUEST['nome'],$_REQUEST['sobrenome'],$_REQUEST['nick'],$_REQUEST['idade'],$_REQUEST['email'],$_REQUEST['cidade'],$_REQUEST['trabalho'])
{
else
{
?>

Form...

<?php
}
?>

 

Mais ainda tou errando em algo.. sera se tenho que colocar a função na msm pagina ou é outra coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais ainda tou errando em algo..

pq ? apareceu algum erro ? qual?

não aconteceu oque você queria ?

 

Ali no lugar de Form você colocou:

else
{
?>
<h2>Cadastro de Membros</h2>

<form action="" method="post">
   <input type="hidden" name="signup" value="0" />
   <fieldset>
      <label>Nome: <input type="text" name="nome" value="" /></label><br />

    ....
<?php
}
?>

ne?!

prefira usar $_POST no lugar do $_REQUEST, já que você sabe qual é a requisição que está vindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei eles pra POST, mais ta dando o seguinte erro...

 

Parse error: syntax error, unexpected '}' in C:\Morph\site\signup.php on line 7

 

e na linha 7 ta o fechando as chaves do if

 

{
adicionar($_POST['nome'],$_POST['sobrenome'],$_POST['nick'],$_POST['idade'],$_POST['email'],$_POST['cidade'],$_POST['trabalho'])
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou ; (ponto e virgula) na linha de cima:

$_POST['trabalho']);

 

geralmente esses erros, você deve olhar pra linha de cima também.

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.