Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Fox

[Resolvido] Problemas com o uso de NULL

Recommended Posts

Olá Pessoal,

 

Estou com um problema. Estou criando um pequeno gerenciador de noticias para um site.

Quero fazer o seguinte. Quando o usuario não completar todos os campos (no caso são 2), não se registre nada no banco de dados.

Então pra isso eu coloquei em um determinado momento,

 

if ($titulo == null || $texto == null)
{echo "<p class='erro'>Erro: Preencha todos os campos!</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>";}
else {
$sql = mysql_query($sql)
or die ("<p class='erro'>Houve erro na gravação dos dados.</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>");

Mas o problema é que sempre tá dando o erro..Como se o usuario não registrase nada.

 

O que estou fazendo de errado?

 

segue o codigo completo da pagina.

 

<?
session_start();
require("verifica.php"); /* aqui, inclui o arquivo verifica.php */
/* Conecta ao Banco de Dados */
include 'conexao.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
<head>
<title></title>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body onload="linkfocus(); tooltip.init(); externalLinks();">

<? include 'topo.php'; ?>
<p> </p>
<?
$texto1 = str_replace('[link=', '<a rel="external" href="', $_POST['texto']);
$texto2 = str_replace('[show=', '<a rel="pop" href="show.php?id=', $texto1);
$texto3 = str_replace('[secao=', '<a rel="ajax" href="', $texto2);
$texto4 = str_replace('[/]', '</a>', $texto3);
$texto5 = str_replace(']', '">', $texto4);
/*
* monta query em SQL para insercao
*/
$sql = "INSERT INTO noticias (
dia,
mes,
ano,
titulo,
texto
) VALUES (
'".$_POST['dia']."',
'".$_POST['mes']."',
'".$_POST['ano']."',
'".$_POST['titulo']."',
'".$texto5."'
)";

if ($titulo == null || $texto == null)
{echo "<p class='erro'>Erro: Preencha todos os campos!</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>";}
else {
$sql = mysql_query($sql)
or die ("<p class='erro'>Houve erro na gravação dos dados.</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>");
/* Grava os dados no Log */
$nome = $_SESSION["login_user"];
$titulo_log = $_POST['titulo'];
$texto_log = $_POST['texto'];
$h1 = gmdate(H)-3;
if ($h1<0) {$hora=$h1+24;}
if ($h1>=0) {$hora=$h1;}
$time = $hora.":".date(i).":".date(s);
$conteudo =
"
Às $time, $nome publicou a seguinte notícia:
$titulo_log
$texto_log

";
include 'criar_log.php';
echo "<p class='sucesso'>Notícia publicada com sucesso!</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>";}
?>
<p></p>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Dessa forma também não adianta..

 

eu procurei fazer assim..

 

if(($_POST['titulo']=="") && ($_POST['texto']==""))

 

e rolou...

 

Agora estou fazendo o mesmo, que deu certo nesse, em outro formulario..e não rola nenhuma das opções..

 

Cara, vou ficar maluco..

 

<?

/* Conecta ao Banco de Dados */
include 'conexao.php';

/* Variáveis */
$nome = $_POST['nome'];
$email = $_POST['email'];

echo $nome"<br>";
echo $email;

/*
 * monta query em SQL para inserção
 */
$sql = "INSERT INTO carta (
nome,
email
) VALUES (
'".$_POST['nome']."',
'".$_POST['email']."'
)";

/*
 * monta query em SQL para exclusão
 */
$sql2 = "DELETE FROM carta WHERE nome='".$_POST['nome']."' AND email='".$_POST['email']."'";

if(($_POST['nome']=="") && ($_POST['email']==""))
{echo "<p class='erro'>Erro: Preencha todos os campos!</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>";}

else {
	if ($acao=="Cadastrar") {
		$sql3 = mysql_query("SELECT email FROM carta WHERE email='".$_POST['email']."'") or die ("<p>Ocorreu o seguinte erro:". mysql_error()."</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>"); /* consulta no bd */
		$num = mysql_num_rows($sql3); /* vê quantos registros tem no bd */
		if($num >= "1"){ /* se tiver 1 ou mais registros, mostra a mensagem a seguir */
		 echo "<p>O email fornecido já está cadastrado.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		} else {
		$sql = mysql_query($sql)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");
		$msg = "Bem-Vindo à Carta de Notícias".$_POST['nome'].". Periodicamente, você receberá as novidades em relação à banda.";
		$headers = "From: Badogue <diego.fox001@gmail.com>\r\n";
		mail($_POST['email'], "Badogue - Carta de Notícias", $msg, $headers);
		echo "<p>Obrigado, ".$_POST['nome'].".</p>";
		echo "<p>O e-mail ".$_POST['email']." foi cadastrado com sucesso.</p>";
		echo "<p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		}
	}
	else if ($acao=="Descadastrar") {
		$sql4 = mysql_query("SELECT email FROM carta WHERE email='".$_POST['email']."'") or die ("<p>Ocorreu o seguinte erro:". mysql_error()."</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>"); /* consulta no bd */
		$num = mysql_num_rows($sql4); /* vê quantos registros tem no bd */
		if($num == "0"){ /* se não tiver nenhum registro, mostra a mensagem a seguir */
		 echo "<p>O email fornecido não está cadastrado.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		} else {
		$sql5 = mysql_query($sql2)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");
		echo "<p>Pronto, ".$_POST['nome'].".</p>";
		echo "<p>O e-mail ".$_POST['email']." foi descadastrado com sucesso.</p>";
		echo "<p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		}
	}
}

?>

Já usei $nome e $email... já usei NULL, já usei ""...

 

Não é possivel isso..

 

O que estou fazendo de errado?

 

obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa Alarte,

 

eu colei o codigo errado..

 

é assim..

 

<?

/* Conecta ao Banco de Dados */
include 'conexao.php';

/* Variáveis */
$nome = $_POST['nome'];
$email = $_POST['email'];

/*
 * monta query em SQL para inserção
 */
$sql = "INSERT INTO carta (
nome,
email
) VALUES (
'".$_POST['nome']."',
'".$_POST['email']."'
)";

/*
 * monta query em SQL para exclusão
 */
$sql2 = "DELETE FROM carta WHERE nome='".$_POST['nome']."' AND email='".$_POST['email']."'";

if(($_POST['nome']=="") && ($_POST['email']==""))
{echo "<p class='erro'>Erro: Preencha todos os campos!</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>";}

else {
	if ($acao=="Cadastrar") {
		$sql3 = mysql_query("SELECT email FROM carta WHERE email='".$_POST['email']."'") or die ("<p>Ocorreu o seguinte erro:". mysql_error()."</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>"); /* consulta no bd */
		$num = mysql_num_rows($sql3); /* vê quantos registros tem no bd */
		if($num >= "1"){ /* se tiver 1 ou mais registros, mostra a mensagem a seguir */
		 echo "<p>O email fornecido já está cadastrado.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		} else {
		$sql = mysql_query($sql)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");
		$msg = "Bem-Vindo à Carta de Notícias".$_POST['nome'].". Periodicamente, você receberá as novidades em relação à banda.";
		$headers = "From: Badogue <diego.fox001@gmail.com>\r\n";
		mail($_POST['email'], "Badogue - Carta de Notícias", $msg, $headers);
		echo "<p>Obrigado, ".$_POST['nome'].".</p>";
		echo "<p>O e-mail ".$_POST['email']." foi cadastrado com sucesso.</p>";
		echo "<p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		}
	}
	else if ($acao=="Descadastrar") {
		$sql4 = mysql_query("SELECT email FROM carta WHERE email='".$_POST['email']."'") or die ("<p>Ocorreu o seguinte erro:". mysql_error()."</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>"); /* consulta no bd */
		$num = mysql_num_rows($sql4); /* vê quantos registros tem no bd */
		if($num == "0"){ /* se não tiver nenhum registro, mostra a mensagem a seguir */
		 echo "<p>O email fornecido não está cadastrado.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		} else {
		$sql5 = mysql_query($sql2)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");
		echo "<p>Pronto, ".$_POST['nome'].".</p>";
		echo "<p>O e-mail ".$_POST['email']." foi descadastrado com sucesso.</p>";
		echo "<p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		}
	}
}

?>

Você poderia me passar um exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, você nao pode comparar a variavel com null pq por padrao td variavel no PHP é null, ja que nao temos que declara-las ....

 

outra coisa

 

/* Variáveis */
$nome = $_POST['nome'];
$email = $_POST['email'];

if(($_POST['nome']=="") && ($_POST['email']==""))

você usa nome e email e depois verifica no post ?? pra que ???

 

faz assim,

 

$nome = (str)trim($_POST['nome']);

$email= (str)trim($_POST['email']);

 

e verifica em cima de $nome e $email

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Diogo,

 

Realmente ficou sem porque isso que usei..

Eu apenas mudei a verificação para ($_POST['nome']) e ($_POST['email']) e deixei lá em cima a variavel..

 

Ou seja, já tinha tentado dessa forma e não deu certo mesmo.

Agora coloquei como você me disse...

 

$nome = (str)trim($_POST['nome']);

$email= (str)trim($_POST['email']);

 

E também não dá certo...

 

Já revisei o meu formulario...

E não acho erro nos campos. Estão certos.

 

<?

/* Conecta ao Banco de Dados */
include 'conexao.php';

?>
<div id="box2">
	<h3>Carta de Notícias</h3>
	<p><span class="aviso">Cadastre-se aqui!</span></p>
	<form action="form_newsletter.php"  id="formulario_newsletter" onsubmit="return checkForm2();" onreset="limpaForm();">
	<fieldset>
	 <p id="erro">Preencha corretamente!</p>
	 <label for="nome"><span style="text-decoration:underline;">N</span>ome:</label>
	 <input name="nome" type="text" id="nome" tabindex="1" accesskey="n" size="18" value="" /><br /><br />
	 <label for="email"><span style="text-decoration:underline;">E</span>-mail:</label>
	 <input name="email" type="text"  id="email" tabindex="2" accesskey="e" size="18" value="" /><br /><br />
	 <label for="acao">Ação:</label> 
	 <select name="acao" id="acao" tabindex="3">
	  <option value="Cadastrar">Cadastrar</option>
	  <option value="Descadastrar">Descadastrar</option>
	 </select><br /><br />
	 <button type="submit" tabindex="4">Enviar</button> <button type="reset" tabindex="5">Limpar</button>
	</fieldset>
	</form>
   </div>
</body>
</html>

A duvida segue,...

 

Mas obrigado assim mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verdade,

 

Não está passando..

 

Acho que a forma que eu fiz um formulario, deve tá errado..

Agora é descobrir o que é...

 

Ai Meu Santo Deus..

 

EU vou ficar louco...hehehehe...

 

 

Eu mudei para

 

<form action="form_newsletter.php"  method="post" id="formulario_newsletter">

E agora não apareceu nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!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>Untitled Document</title>
</head>

<body>
<?

/* Conecta ao Banco de Dados */
include 'conexao.php';


?>
<div id="box2">
	<h3>Carta de Notícias</h3>
	<p><span class="aviso">Cadastre-se aqui!</span></p>
	<form action="form_newsletter.php"  id="formulario_newsletter" onsubmit="return checkForm2();" onreset="limpaForm();">
	<fieldset>
	 <p id="erro">Preencha corretamente!</p>
	 <label for="nome"><span style="text-decoration:underline;">N</span>ome:</label>
	 <input name="nome" type="text" id="nome" tabindex="1" accesskey="n" size="18" value="" /><br /><br />
	 <label for="email"><span style="text-decoration:underline;">E</span>-mail:</label>
	 <input name="email" type="text"  id="email" tabindex="2" accesskey="e" size="18" value="" /><br /><br />
	 <label for="acao">Ação:</label> 
	 <select name="acao" id="acao" tabindex="3">
	  <option value="Cadastrar">Cadastrar</option>
	  <option value="Descadastrar">Descadastrar</option>
	 </select><br /><br />
	 <button type="submit" tabindex="4">Enviar</button> <button type="reset" tabindex="5">Limpar</button>
	</fieldset>
	</form>
   </div>
</body>
</html>

Tá na mão...

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo..

 

você tem que passar a variavel ação!

 

<select name="acao" id="acao" tabindex="3">
	  <option value="Cadastrar">Cadastrar</option>
	  <option value="Descadastrar">Descadastrar</option>
	 </select>

ponha isso no seu cabeçario..

 

$acao = $_POST['acao'];

 

testa ai e retorna..

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é cara,

 

Nem assim rolou..

Eu acabei fazendo tudo novamente e diferente..

agora rolou...Mas agora o problema é mais na frente...

 

mudei até os nomes dos arquivos pra dá sorte, hehehe...

 

fiz assim...

 

FORMULARIO: cartinha.php

<?
session_start();
require("verifica.php"); /* aqui, inclui o arquivo verifica.php */
/* Conecta ao Banco de Dados */
include 'conexao.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
<head>
<title></title>
<meta http-equiv="Content-Type"  content="text/html; charset=iso-8859-1" />
<meta name="author" content="Diego Matos Pereira (diego.fox001@gmail.com)" />
<meta name="language" content="pt-br" />
<link rel="shortcut icon" href="icone.ico" />
<link href="" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scripts.js"></script>
</head>
<body onload="linkfocus(); tooltip.init(); externalLinks();">

<p> </p>



<form action="insertcartinha.php" method="post" id="inserir_cartinha">
 <fieldset>
   <legend>Cadastrar Email</legend>
   <div id="preview"></div>
   <div id="form">
	<label></label>
	<br />
	<br />
	<label for="titulo"><span style="text-decoration:underline;">N</span>ome:</label>
	<input name="nome" id="nome" type="text" tabindex="1" accesskey="t" /><br /><br />
	<label for="texto"><span style="text-decoration:underline;">E</span>-mail:</label>
	<input name="email" id="email" type="text" tabindex="1" accesskey="t" /><br /><br />
	<label for="acao">Ação:</label> 
	 <select name="acao" id="acao" tabindex="3">
	  <option value="Cadastrar">Cadastrar</option>
	  <option value="Descadastrar">Descadastrar</option>
	 </select><br /><br />
   </div>
   <p> </p>
   <div id="options">
	<p><button type="submit">Enviar</button><button type="reset" onclick="limp()">Limpar</button></p>
   </div>
 </fieldset>
</form>
<p> </p>

</body>
</html>

ENVIO PHP: insertcartinha.php

 

<?
session_start();
require("verifica.php"); /* aqui, inclui o arquivo verifica.php */
/* Conecta ao Banco de Dados */
include 'conexao.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
<head>
<title></title>
<meta http-equiv="Content-Type"  content="text/html; charset=iso-8859-1" />
<meta name="author" content="Diego Matos Pereira (diego.fox001@gmail.com)" />
<meta name="language" content="pt-br" />
<link rel="shortcut icon" href="../../icone.ico" />
<link href="" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scripts.js"></script>
</head>
<body onload="linkfocus(); tooltip.init(); externalLinks();">

<p> </p>
<?

/*
 * monta query em SQL para insercao
 */
$sql = "INSERT INTO carta (
nome, 
email
) VALUES (
'".$_POST['nome']."',
'".$_POST['email']."')";

if(($_POST['nome']=="") && ($_POST['email']==""))
{echo "<p class='erro'>Erro: Preencha todos os campos!</p><p class='voltar'><a href='java script:history.back()' title='Voltar'>« Voltar</a></p>";}

else {
	if ($_POST['acao']=="Cadastrar") {
		$sql3 = mysql_query("SELECT email FROM carta WHERE email='".$_POST['email']."'") or die ("<p>Ocorreu o seguinte erro:". mysql_error()."</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>"); /* consulta no bd */
		$num = mysql_num_rows($sql3); /* vê quantos registros tem no bd */
		if($num >= "1"){ /* se tiver 1 ou mais registros, mostra a mensagem a seguir */
		 echo "<p>O email fornecido já está cadastrado.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		} else {
		$sql = mysql_query($sql)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");
		$msg = "Bem-Vindo à Carta de Notícias".$_POST['nome'].". Periodicamente, você receberá as novidades em relação à banda.";
		$headers = "From: Badogue <diego.fox001@gmail.com>\r\n";
		mail($_POST['email'], "Badogue - Carta de Notícias", $msg, $headers);
		echo "<p>Obrigado, ".$_POST['nome'].".</p>";
		echo "<p>O e-mail ".$_POST['email']." foi cadastrado com sucesso.</p>";
		echo "<p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		}
	}
	else if ($_POST['acao']=="Descadastrar") {
		$sql4 = mysql_query("SELECT email FROM carta WHERE email='".$_POST['email']."'") or die ("<p>Ocorreu o seguinte erro:". mysql_error()."</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>"); /* consulta no bd */
		$num = mysql_num_rows($sql4); /* vê quantos registros tem no bd */
		if($num == "0"){ /* se não tiver nenhum registro, mostra a mensagem a seguir */
		 echo "<p>O email fornecido não está cadastrado.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		} else {
		$sql5 = mysql_query($sql2)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");
		echo "<p>Pronto, ".$_POST['nome'].".</p>";
		echo "<p>O e-mail ".$_POST['email']." foi descadastrado com sucesso.</p>";
		echo "<p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>";
		}
	}
}
?>
<p></p>

</body>
</html>

Agora, quando eu cadastro um email e nome, fica tudo ok. Vai para o banco de dados certinho.

O lance é quando vou descastrar o nome e email...

Fiquei preso no meu erro...

 

$sql5 = mysql_query($sql2)
		or die ("<p>Houve um erro na gravação dos dados.</p><p><a href='java script:window.close()' title='Fechar'>[X] Fechar</a></p>");

do arquivo, insertcartinha.php

 

 

E desculpa os meus problemas?

 

:blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aê André,

 

ACHOOOOOOOOOOOOO!!

 

HEHEHE

 

 

$sql2 = "DELETE FROM carta WHERE nome='".$_POST['nome']."' AND email='".$_POST['email']."'";

mi isquici..

 

hehehheehhe

 

 

UHUU...

 

Valeu galera...

 

 

Agora vou postar outro topico com outra duvida ainda mais cabulosa..heheh

 

Rabusky, obrigadão 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.