Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudação mano
to tentando otimizada esse script
mais eu estou reparando, que ele ficou com muito ser ou não ser, alguem
poderia por me dar uma ideia, dica, suporte ou uma pedra para eu melhorar
esse script .
<?
$desejo = $_POST['desejo'];
$email = $_POST['email'];
include "admin/config.php";
if($desejo==cadastra){
$n = mysql_query("SELECT * FROM $tb3 WHERE email='$email'");
$linhas = mysql_num_rows($n);
if ($linhas==1){
echo "Desculpe mas este e-mail já está cadastrado";
echo "<meta http-equiv='refresh' content='3;URL=cadastro.html'>";
} else{
$sql = mysql_query("INSERT INTO $tb3 (email) VALUES ('$email')");
echo "E-Mail Cadastrado com sucesso";
echo "<meta http-equiv='refresh' content='3;URL=cadastro.html'>";
}
}
if($desejo==remover){
$sql = mysql_query("DELETE FROM $tb3 WHERE email='$email'");
echo "E-Mail Removido com sucesso";
echo "<meta http-equiv='refresh' content='3;URL=cadastro.html'>";
}
?>
########
cadastro.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cadastro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="estilos.css" rel="stylesheet" type="text/css">
</head>
<body>
<form name="F1" method="post" action="cadastra.php">
<table width="15%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">E-mail:
<input name="email" type="text" class="form" size="25"></td>
</tr>
<tr>
<td width="79%">
<select name="desejo" class="form" id="desejo">
<option value="cadastra">Cadastrar</option>
<option value="remover">Remover</option>
</select>
</td>
<td width="21%">
<div align="right">
<input name="bt" type="button" class="botao" value="OK" >
</div></td>
</tr>
</table>
</form>
</body>
</html>
#########
essa e a parte do mysql
-- phpMyAdmin SQL Dump
-- version 2.6.2-pl1
--
-- Servidor: localhost
-- Tempo de Geração: Dez 09, 2005 as 12:47 PM
-- Versão do Servidor: 4.1.12
-- Versão do PHP: 5.0.4
--
-- Banco de Dados: design
--
-- --------------------------------------------------------
--
-- Estrutura da tabela emails
--
CREATE TABLE IF NOT EXISTS `emails` (
`email` varchar(250) NOT NULL default '',
PRIMARY KEY (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Extraindo dados da tabela emails
--
############
A principio na minha maquina esta funcionando legal mais eu quer ele poderia ser mais
inteligente ,eu me enrolo todo com switch ,e ser poder dar um opinião sobre o script
para melhorar .
a ideia do script e pegar o email do usuario e ser ele existir no banco ,avisar o usuario que seu email
exister ,senão ele cadastrar e ser desejo for remover procurar no banco de dados o email
e ser exister remova ele senão informer ao usuario esse email não exister ou email removido
essa e um pouco da minha logica .to aprendendo ,desculpe ser não for muito boa .
por isso me ajuder
henrique
você esta esquencendo das aspas para delimitar string
if($desejo==cadastra){
o certo é if($desejo=="cadastra"){
arrume todos
outra dica é você identar esse codigo ta muito garancho da os espaços necessarios senao vai chegar um dia nem você entende o codigo
para redirecionar uma pagina use header("Location: pagina.html");
no começo para evitar erros você precisa testar se existe a variavel que veio do formulario, porque se uma pessoa acessar essa pagina direto ira dar um erro dizendo que nao existe $_POST["desejo"] nem a $_POST["email"];
entao faça isso:
$desejo = isset($_POST['desejo']) ? $_POST['desejo'] : "";
As duas dicas foram maneras.Mas a minha duvida em relação a script e a relação ao" foreach" quando eu tenho um form com varios campos,eu trabalho assim: <input type ="text" name = campo[0] value=campo[0] >.....ate name=campo[20]para pegar os campos com o php $form=$_POST["campo"]e pego tudo com arrayecho $form [1]....mais valeu pela dicas em especial ao "foreach" e uma nova opção depois eu jogo um exemplo mais completo e coloco para geral ver e pratico tambem a minha duvida que no script ele tem muito ser ou não ser eu pensei em trabalhar com switch porque eu pensei ele avaliar um condição e vai e ganhar um break no finalachei manero o isset (tinha esquecido esse ponto tambem) porque o switch e mais rapido o algo com comando "for" mais a dicas foram positivas de ambas partes eu to aprendendo a programar agora e no livro que estou lendo .a biblia eles falam de programarotimizando codigo e trabalhar de maneira profissional.mais valeu pelas dicas postei hj a minha duvidas e ja tiver suporte . estou feliz pelas dicas um abraçohenrique
Achei interessante seu post.
Tipo, ali no começo, onde tá:
você pode deixar assim:
foreach ($_POST as $chave=>$valor) $$chave = $valor;
// isto criara as var $desejo e $email automaticamente. Imagina como seria útili num form com 20 campos ! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
######################################################################
Nestes if´s eu faria assim (supondo q se tenha vários if):
ou então:
Do mais tá maneiro. Eu sempre procuro utilizar o mínimo de linhas possíveis nos meus scripts, e se você começar a pensar assim vai descobrir muitas formas interessantes de se fazer a mesma coisa.