Jump to content
champy

[Ajuda] Alterar Password PHP

Recommended Posts

champy

Boa tarde.

Eu estou com um problema , em que não consigo alterar a minha password através da minha página.

      <?php
		if (isset($_POST["Password"]))
		{

		$fpass= $_POST["Password"];

		session_start(); 
		$fnum_utili= $_SESSION['num_utili'];
			//echo $_SESSION["num_utili"];			

		$query = mysql_query(" UPDATE Username	 SET Password='$fpass' where num_utili=$fnum_utili ");

		if($query){
			echo "alterado com sucesso.";
		}else{
			echo "Erro ao alterar! Erro:".mysql_error()."";
		}
	}
?>

Queria que ele fizesse update da nova password na minha base de dados.

Agradeço pela ajuda.

Share this post


Link to post
Share on other sites
laboss

da algum erro?

troca isto:

$query = mysql_query(" UPDATE Username   SET Password='$fpass' where num_utili=$fnum_utili ");

por

 $query = mysql_query(" UPDATE Username   SET Password='$fpass' where num_utili=$fnum_utili ") or die(mysql_error());

Share this post


Link to post
Share on other sites
softklin

Experimenta por umas plicas em torno do nome de utilizador também. Quanto à verificação se alterou ou não, acho que deves também verificar se houve registos alterados.

                        if(mysql_affected_rows($query) == 1){
                                echo "alterado com sucesso.";
                        }else{
                                echo "Erro ao alterar! Erro:".mysql_error()."";
                        }


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
champy

Será que o problema está a ser o botão submit ?

é que sinceramente não sei se isto está bem, andei aqui a mexericar tanto, que agora nao sei o qué que fiz -.-

Sabem fazer um botão para fazer submit neste codigo php ?

é que queria ter certeza que é mesmo do problema php antes de estar a mexer nele também :s

Vou apresentar o código que andei aqui a "estragar" -.-  :

<div align="center">Inserir Nova Password <form method="post" enctype="multipart/form-data" name="formulario" action=action="$query = mysql_query(" UPDATE Username	 SET Password='$fpass' where num_utili=$fnum_utili ");" onSubmit?"return valida();"> 
          <input name="Password" type="Password" class="style2" style="height: 24px; width: 270px;" size="20" />
      </div>

Eu estou bastante confuso, porque andei desde as 2 horas a mexer nisto, e sinceramente já nem sei o que fiz e o que refiz -.-

Share this post


Link to post
Share on other sites
softklin

Atenção que o servidor "corre" primeiro todo o PHP que encontrar na página e só depois envia os resultados juntamente com o HTML, logo esse último código que colocaste não serve.

Precisas, no mínimo, de algo como:

<form method="post" action="pagina/onde/tens/codigo.php">
Introduzir nova password: <input type="password" name="Password" />
<input type="submit" name="MudarPassword" value="Alterar" />
</form>

Isto cria-te um simples form com uma text para pores a nova password, e um botão para enviar. Atenção: o action é o caminho para o ficheiro PHP que vai alterar a password (o do teu primeiro post). Se o código estiver num único ficheiro (HTML + PHP), não precisas de definir o action, porque ele envia para a própria pagina.

De resto, o PHP parece-me correto.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
champy

Sr. André silva.

Para já obrigado pela sua ajuda, mas penso que tenho apenas 1 único obstáculo antes de isto estar resolvido.

Agora, aparece este erro :

"Notice: Undefined index: num_utili in C:\xampp\htdocs\trab\admin\alterapass.php on line 28

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

$fnum_utili= $_SESSION['num_utili'];

esta, é a linha nº28

Eu não estou a perceber, porque eu coloquei a variavel "num_utili" que é a minha chave primária na minha tabela "admin".

O que estou a fazer aqui errado ?

Share this post


Link to post
Share on other sites
softklin

Sr. André silva.

Por favor, não é preciso formalismos :thumbsup:

Para já obrigado pela sua ajuda, mas penso que tenho apenas 1 único obstáculo antes de isto estar resolvido.

Agora, aparece este erro :

"Notice: Undefined index: num_utili in C:\xampp\htdocs\trab\admin\alterapass.php on line 28

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

$fnum_utili= $_SESSION['num_utili'];

esta, é a linha nº28

Eu não estou a perceber, porque eu coloquei a variavel "num_utili" que é a minha chave primária na minha tabela "admin".

O que estou a fazer aqui errado ?

Quanto ao erro, aparentemente a sessão não tem esse campo 'num_utili' definido (está vazio). Uma solução rápida pode ser substituir essa linha por:

$fnum_utili= (empty($_SESSION['num_utili']) ? '' : $_SESSION['num_utili']);

Isto é uma versão resumida de

if (empty($_SESSION['num_utili'])) {
  $fnum_utili= '';
} else {
  $fnum_utili= $_SESSION['num_utili];
}

Dessa forma, se houver um utilizador que não esteja com sessão iniciada, dá sempre o erro "Erro a alterar (...)".


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
champy

Continua a dar o mesmo erro meu amigo.

"Notice: Undefined index: num_utili in C:\xampp\htdocs\trab\admin\alterapass.php on line 28

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

Uma questão, eu não percebi muito bem o que o seu código faz.

Ainda outra questão,

Eu tenho colocado isto :

<?php

session_start();
?>

em todos os ficheiros php que encontro depois da secção de login, será algo a ver com esse problema ?

será que isto simplesmente não reconhece o num_utili logado ?

EDIT :

meu deus.. eu sou tão burro, só agora que reparei que é Num_utili

:wallbash:

vou testar, já digo algo.

EDIT2:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

Estranho.. Mesma coisa :s

Share this post


Link to post
Share on other sites
brunoais

Mostra o q é q é enviado para o MySQL sff.

Executa um echo da query.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
champy

  $query = mysql_query(" UPDATE Username   SET Password='$fpass' where Num_utili=$fNum_utili ") or die(mysql_error());
				   echo $query;

assim presumo ?

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

Obrigado também por ter tomado atenção ao meu tópico.

Share this post


Link to post
Share on other sites
softklin

A julgar pelo erro da query, pode ser que fpass esteja vazio. Para testar os valores, experimenta assim:

var_dump($fpass);
$q = " UPDATE Username   SET Password='$fpass' where Num_utili=$fNum_utili ";
var_dump($q);

mysql_query($q) or die(mysql_error());

isto também vai mostrar a query que estás a fazer ao Mysql.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.