Ir ao conteúdo
  • Cadastre-se

Php + sql


BBREIS

Posts recomendados

  • Moderador

você esta fazendo a validaçao no lugar errado.

tente assim:



$nome = $_POST["nome"];

if(strlen($nome) < 4)){
echo"<script>
alert('É necessário pelo menos 4 caracteres.');
history.go(-1);
</script>";
exit;
}[COLOR="Red"]else[/COLOR]{

$insere = "INSERT INTO teste (... ) VALUES ( ... )";
$cadastro = mysql_query($insere);

}


Link para o comentário
Compartilhar em outros sites

  • Moderador

sim, esta dando esse erro, pois o codigo que passei ali foi um exemplo... pra nao ter q digitar tudo e você ter uma ideia do que fazer..

aquele INSERT INTO teste(...) quer dizer que tem parametros ali dentro e nao "pontinhos" rsrs ..

você tem que colocar a verificaçao antes da inserçao. pense neste algoritimo:

se o nome tiver menos de 4 caracteres, apresenta mensagem de erro.

Senao, executa o insert into.

traduzindo isso em codigos:

if (sua verificaçao ){
mensagem do erro
}else{
codigo do insert aqui
}

Link para o comentário
Compartilhar em outros sites

Bom dia pessoal...

Bem fiz a expressão, porém continua inserindo no banco...

if(strlen($nome)<4) { //verifica se o nome tem menos de 4 caracteres.

echo "<script>

alert('Nome deve conter mais de 4 digitos. ');

history.go(-1);

</script>";

exit;

}else{

$insere = "INSERT INTO teste (nome) VALUES ('$nome')";

$cadastro = mysql_query($insere);

}

Link para o comentário
Compartilhar em outros sites

Más mesmo assim continua inserindo os dados no banco.. isso que ta pegando..

if(isset($nome)||strlen(trim($nome))<4) {

echo "<script>

alert('Nome deve conter mais de 4 digitos. ');

history.go(-1);

</script>";

exit;

}else{

$insere = "INSERT INTO teste (nome) VALUES ('$nome')";

$cadastro = mysql_query($insere);

}

Link para o comentário
Compartilhar em outros sites

Não vou colocar uma imagem porque o cod ja ta grande.... Vamos ver o que to fazendo de lenha rsrs

<?php

// o include faz referencia a um arquivo conexão que contem as informações para conectar no banco

include 'conexao.php';

// declaração de variaveis

$nome = $_POST["nome"];

$email = $_POST["email"];

$end = $_POST["end"];

// insere os dados na tabela

$insere = "INSERT INTO teste (nome, email,end) VALUES ('$nome', '$email','$end')";

$cadastro = mysql_query($insere);

//verifica se o nome tem menos de 4 caracteres.

if(strlen($nome)<4) {

echo "<script>

alert('Nome deve conter mais de 4 digitos. ');

history.go(-1);

</script>";

exit;

}else{

$insere = "INSERT INTO teste (nome) VALUES ('$nome')";

$cadastro = mysql_query($insere);

}

if ($cadastro)

{

echo "<script>

alert('Cadastro efetuado corretamente');

window.location='form.php';

</script>";

exit;

}else{

echo "<script>

alert('Erro ao cadastrar');

history.go(-1);

</script>";

exit;

}

?>

Link para o comentário
Compartilhar em outros sites

Senhores,

Estou vendo que isso de programar exige bastante atenção, tem q se pensar em tudo que o user pode fazer ao fazer um cadastro por exemplo... Bem e seguindo esse raciocínio gostaria de saber se tem alguma função PHP para não deixar por exemplo que números sejam digitados no campo de nome...

Abraço!

Link para o comentário
Compartilhar em outros sites

Já estou fazendo, consegui 1 para o campo e-mail.

if( !eregi("@", $email)){

echo "<script>

alert('O campo E-mail deve conter @. ');

history.go(-1);

</script>";

exit;

}else{

$insere = "INSERT INTO teste (email) VALUES ('$email')";

$cadastro = mysql_query($insere);

}

Agora estou vendo outro aqui para evitar que tenha espaço no campo e-mail, vê se ta certinho por favor dif...

if (trim($email)) {

echo "<script>

alert('O campo E-mail não deve conter espaço. ');

history.go(-1);

</script>";

exit;

}else{

$insere = "INSERT INTO teste (email) VALUES ('$email')";

$cadastro = mysql_query($insere);

}

valeu

Link para o comentário
Compartilhar em outros sites

  • Moderador

é +- isso.. mas ainda você tem redundancias que ja venho alertando você.

por exemplo nao faça inserçoes picotadas. faça apenas uma inserçao com todos os dados.

a validaçao do email é interessante você verificar se tem @ e pelo menos 1 ponto. obrigatorio por exemplo.. se você validar com seu verificador.. se eu colocasse dif@dif ele deixaria passar, portanto pra um email ser válido.. ele deve conter o "arroba" e pelo menos um "ponto".

sobre retirar os espaços.. é isso mesmo, a funçao trim() retira os espaços em branco. mas.. nao faça as inserçoes do jeito que estão.. otimize seu codigo, faça primeiro as verificaçoes e validaçoes e depois faça a inserçao.

Link para o comentário
Compartilhar em outros sites

  • Moderador

a funçao eregi ta depreciada... use preg_match() com expressao regular

exemplo:


function validaEmail($email)
{
//Variavel auxiliar
$verificacao = "";
if (preg_match ("/^[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*\\.[A-Za-z0-9]{2,4}$/", $email)) {
$verificacao= "O e-mail é válido!";
} else {
$verificacao= "O e-mail é inválido!";
}
return $verificacao;
}

Link para o comentário
Compartilhar em outros sites

Meus nobres, resolvi fazer o projeto cadastro todo novamente para aperfeiçoar o que vocês me ensinaram aqui, inseri mais alguns campos e gostaria de saber como posso fazer uma checagem caso..

-Na hora do cadastro o login digitado ja existir retornar mensagem, sei q pra isso tem q ter uma consulta no banco, mas como?

-Ainda cadastrando no campo senha, para confirmar a senha coloquei 2 campos... no banco também tem que ser criado 2 campos para senha e fazer a comparação?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Moderador

Bem, vamos lá.

o esquema é o mesmo da pesquisa do nome.

você faz uma consulta para ver se ja exista o login, se existir você apresenta a mensagem de erro, senao você joga no bloco do insert into..

é um simples if- else.

para a senha, nesse caso nao precisa criar outro campo no banco. basta um.. você faz as verificaçao da seguinte maneira:


$senha = $_POST["senha"];
$senha2 = $_POST["senha2"];

if ($senha2 != $senha){
mensagem de erro
exiit;
}

...

segue o resto do codigo

lembrrando que a li na "mensagem de erro.. você coloca sua mensagem.. pode ser javascript... uma div .. qualquer coisa..

Link para o comentário
Compartilhar em outros sites

Bem dif acho q o meu problema está sendo com lógica... criei a rotina aqui porém está com algo errado...

Outra coisa... depois destas 2 verificações queria colocar o resto... tipo, email, login, como ficaria o bloco? E seriam somente 2 blocos? um de verificação para ver se atente as condições o outro caso correto inserir no banco?

Outra dúvida, em uma mesma linha posso colocar mais de uma verificação tipo:

elseif ($senha != $senha2) OR ($senha) = NULL

....

post-903961-13884960326534_thumb.jpg

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!