Ir para conteúdo
Fórum Script Brasil
  • 0

Banco de dados não responde!


Fell Massy

Pergunta

<?php

include "conexao.php";

$email = $_POST['email']; // Email digitado

$antiga= $_POST['antiga']; // Senha Antiga digitada

$nova = $_POST['nova']; // Senha Nova digitada

$nova2 = $_POST['nova2']; // Confirmação da senha digitada

$procura = mysql_query("SELECT * FROM tabela de usuarios WHERE email = '$email'"); //Faz a procura no banco de dados

$encontrado=mysql_fetch_array($procura); // Imprime o resultado do banco de dados

$db_email = $encontrado['email']; //Renomeia a coluna email

$db_senha = $encontrado['senha']; //Renomeia a coluna senha

$db_nome = $encontrado['nome']; //Renomeia a coluna nome

$query="UPDATE usuarios_metlife SET senha='$senhaok' WHERE email = '$email' "; //Renomeia a ação de update

if ($nova==$nova2){$senhaok=$nova;}else {echo "Senhas novas não coicidem";}; //Verifica as 2 senha novas digitadas

if ($email==$db_email){}else{echo "E-mail não existe";}; //Verifica E-mail digitado com E-mail do banco de dados

if($senhaok==$db_senha){$qry;}else{echo "Senha antiga incorreta";}; //Verifica senha antiga digitada com senha do banco de dados

?>

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Se o bd não responde a query, pode ser que não esteja conectado.. já verificou ??

se sim...

$procura = mysql_query("SELECT * FROM tabela de usuarios WHERE email = '$email'"); //Faz a procura no banco de dados

depois do FROM, verifica se a tabela é essa mesmo que você digitou.. eu acho que não.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
O nome da tabela esta correto por que se não apareceria a mensagem:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/public_html/alteracao_de_senha/mudar.php on line 13

seu código sql está errado.

primeiro: o nome da tabela não pode ficar entre espaço em branco.

segundo: essa tabela ai ta muito escrota rs....

faz o seguinte. acessa a base de dados.

e verifica o nome da tabela.

pega o nome correto dela. ( o nome que ta lá na tabela) e substitui no lugar de

tabela de usuarios

se dé erro cola o nome da tabela aqui pra eu ver.

Link para o comentário
Compartilhar em outros sites

  • 0

hummmm

se você que manipular os dados do array tem q colocar num laço for ou while

para acessar os dados no array.

$encontrado=mysql_fetch_array($procura); // Imprime o resultado do banco de dados

apaga isso

tenta assim cara

while ($encontrado = mysql_fetch_array($procura)) {

$db_email = $encontrado[0] ; // 0 para email. o numero vai depender das colunas q você tem no banco

$db_senha = $encontrado[1]; /

$db_nome = $encontrado[2]; /

}

da uma olhada nessa função no http://php.net/manual/pt_BR/function.mysql-fetch-array.php

essa função que você esta usando ela salva os indices como números..

para salvar os indices de acordo com o nome da tabela lá na base é essa

mysql_fetch_assoc(); ai sim você pode colocar $encontrado['email] que e o nome q ta la na tabela.

e você tava querendo setar os valores sem precorrer o array.

foi mal ai pelos meus erros gramaticais.

abraços...

Editado por Rodrigo Mafra
Link para o comentário
Compartilhar em outros sites

  • 0

aqui diz que o e-mail e a senha estão incorretos.

a sua logica esta completamente errada

Primeiro fazemos os IF de comparação se não houver erros fazemos o Update e não precisia colocar na variaveis tantas vezes, é disperdiço de tempo digitando códigos como de tempo de execução ocm linhas a mais desnecessarias...

Fiz um de exemplo para você ver, ele altera senha de acordo com o e-mai digitado analisando a senha antiga com a nova mais uma confirmação...

Verifica se o e-mail realmente existe, se a senha atual confore com a do banco e se as 2 novas estão de acordo e já imprimi a mensagem dexei comentado tambem para melhor entender.

<?php
//Este arquivo conecta um banco de dados MySQL - Servidor = localhost
$dbname="teste"; // Indique o nome do banco de dados que será aberto
$usuario="root"; // Indique o nome do usuário que tem acesso
$password=""; // Indique a senha do usuário
//1º passo - Conecta ao servidor MySQL
if(!($id = mysql_connect("localhost",$usuario,$password))) {
   echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador.";
   
}
//2º passo - Seleciona o Banco de Dados
if(!($con=mysql_select_db($dbname,$id))) {
   echo "Não foi possível estabelecer uma conexão com o gerenciador MySQL. Favor Contactar o Administrador.";
   }
   ?>    
   
   <form action="" method="post">
<table align="center" border="0" cellpadding="1" cellspacing="1">
  <tr>
   
    <td><center>EMAIL</center></td>
    <td><center>SENHA ATUAL</center></td>
    <td><center>SENHA</center></td>
    <td><center>CONFIRMA SENHA</center></td>
  </tr>

    <tr>
      <td><input type="text" name="email" /></td>
      <td><input type="text" name="senha_atual" /></td>
      <td><input type="text" name="senha" /></td>
      <td><input type="text" name="senha2" /></td>      
    </tr>
   <tr> 
   <td> </td> 
   <td><input type="submit" value="Alterar Senha" /> </td>
   <td> </td>
   </tr>
</table>
</form>



<?php 

// se exister alguma ação do metodo POST executa os comandos abaixo.
if($_POST) {
$erro = 0; // variavel erro recebe 0


if(($_POST['senha']) != ($_POST['senha2']) or empty($_POST['senha'])) { // se as 2 senhas digitadas não coincidirem erro recebe valor 1 e imprimi mensagem de erro.

echo '<h5 style="color:red;"> Senhas não conferem </h5>';
$erro = 1;
}

if($erro == 0){ // se não houver erro executa essa parte do script

$email = $_POST['email']; 
$senha = $_POST['senha'];
$senha_atual = $_POST['senha_atual'];

$query = mysql_query("SELECT * FROM user WHERE email = '$email'"); // seleciona os dados que foi digitado
$num = mysql_num_rows($query); // pega o numero de registros com o mesmo e-mail
$array = mysql_fetch_assoc($query); // colcoa em array os valore dos campos
if($num != 1) { // caso o numero de registro seja diferente de 1 a variavel erro recebe 1
$erro = 1;
}

if($erro == 0 and $array['senha'] == $senha_atual and $array['email'] == $email ) { // se a variavel erro for = 0 a senha digitada for = a do banco e o e-mail digitado for = a do banco faça.

$exe = mysql_query("UPDATE user SET senha = '$senha' WHERE email = '$email' "); // atualiza a senha igual a que esta digitada de acordo com o email

echo 'Senha Atualizada com Sucesso!'; // imprime mensagem de sucesso.
} else { // caso a condição acima for errada imprimi mensagem de erro.

echo '<h5 style="color:red;"> Senha atual ou Email digitado não confere. </h5>'; 

}
}
}
?>

se você estiver com duvida em algo é so falar.

Editado por JaguA
Link para o comentário
Compartilhar em outros sites

  • 0
Vlw Rodrigão tinha me esquecido do While.

De boa cara.

Eu só respondi o que você tinha perguntado, e arrumar aquele erro que você mostrou, Por que minha intensão era pra que você entenda o erro pra não errar mais.. rs..

+ também gostei da atitude do jaguar em ter feito bonitinho para você rs.. ( Eu acho que ele ficou com intrigado com seu código e resolveu fazer um novo pra você . rs.. zuera cara, não leva a mal).

Abraços.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...