Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Zmiana hasła konta.


Rekomendowane odpowiedzi

Opublikowano

Witam. :)

Mam niby banalny błąd, ale nie mogę sobie z nim poradzić.. ;P

Nakombinowałem się ale widocznie idę w złym kierunku. Dlatego piszę tutaj, aby ktoś bardziej doświadczony mi pomógł z moim problemem :)

Mianowicie próbowałem napisać skrypt, dzięki któremu możemy zmienić hasło do swojego konta.

Najpierw sprawdza czy stare hasło jest zgodne, później czy nowe hasło jest identyczne w polu "Powtórz hasło" itp.

Gdy wypełnię wszystko poprawnie, nie wyświetla żadnego błędu, pisze "Twoje hasło zostało zmienione." ale w bazie dalej jest takie samo..więc domyślam się że błąd leży w zapytaniu ale nic nie mogę wykombinować..A o to mini-skrypcik :if(!empty($_POST)) {

if(!empty($_POST)) {
	if(!empty($_POST['stare_haslo']) && !empty($_POST['nowe_haslo']) && !empty($_POST['powtorz_haslo'])) {
		if(md5($_POST['stare_haslo']) == $player['haslo']) {
			if($_POST['nowe_haslo'] != $player['login']) {
				if($_POST['nowe_haslo'] == $_POST['powtorz_haslo']) {
					$nowe_haslo = $_POST['nowe_haslo'];
					
					echo "Twoje hasło zostało zmienione";
					mysql_query("UPDATE gracze SET haslo = $nowe_haslo where id = ".$player['id']);
				} else echo "Hasła muszą być identyczne.<br>";
			} else echo "Nowe hasło nie może być takie samo jak login gracza.<br>";
		} else echo "Podano nieprawidłowe hasło.<br>";
	} else echo "Nie wypełniono poprawnie wszystkich pól.<br>";
}
?>

No i formularz, oczywiście w tym samym pliku :

<form action="index.php?a=ustawienia" method="POST">
	<table>
        <tr align="left">
            <td>Stare hasło:</td>
            <td><input type='password' name='stare_haslo' placeholder="Stare hasło.."/></td>
        </tr>
		<tr align="left">
            <td>Nowe hasło:</td>
            <td><input type='password' name='nowe_haslo' placeholder="Nowe Hasło.."/></td>
        </tr>
        <tr align="left">
            <td>Powtórz hasło:</td>
            <td><input type='password' name='powtorz_haslo' placeholder="Powtórz hasło.."/></td>
        </tr>
		<tr>
            <td></td>
            <td><center><input type='submit' style="width: 100px" value='Zmień hasło'/></center></td>
        </tr>
    </table>
</form> 

Z góry dzięki za pomoc, oczywiście będzie like jeśli kogoś to zachęca :)

Opublikowano

Że niby co tutaj ma sprawdzać czy podane hasło jest prawidłowe? Poza tym, popracowałbym na twoim miejscu nad zabezpieczeniami jeśli cokolwiek stąd chcesz wprowadzać w internet. :)

Opublikowano

Wydaje mi się, że podałeś zły skrypt. Twój skrypt odpowiada raczej za logowanie. Nie ma w nim nawet komunikaty "Twoje hasło zostało zmienione."

gamedevmania.com

Opublikowano

Tak to jest jak się robi kilka rzeczy na raz..i to z plikami archiwalnymi..
Jak będę na PC to wrzucę poprawny skrypt..
@Matzar, na razie i tak pracuję na localu..

 

@EDIT :
Tutaj daje poprawny skrypt i zaktualizuje też pierwszego posta :P

if(!empty($_POST)) {
	if(!empty($_POST['stare_haslo']) && !empty($_POST['nowe_haslo']) && !empty($_POST['powtorz_haslo'])) {
		if(md5($_POST['stare_haslo']) == $player['haslo']) {
			if($_POST['nowe_haslo'] != $player['login']) {
				if($_POST['nowe_haslo'] == $_POST['powtorz_haslo']) {
					$nowe_haslo = $_POST['nowe_haslo'];
					
					echo "Twoje hasło zostało zmienione";
					mysql_query("UPDATE gracze SET haslo = $nowe_haslo where id = ".$player['id']);
				} else echo "Hasła muszą być identyczne.<br>";
			} else echo "Nowe hasło nie może być takie samo jak login gracza.<br>";
		} else echo "Podano nieprawidłowe hasło.<br>";
	} else echo "Nie wypełniono poprawnie wszystkich pól.<br>";
}
?>
Opublikowano

Powinieneś sprawdzać co zwraca funkcja mysql_query.

$update = mysql_query("UPDATE gracze SET haslo = '".$nowe_haslo."' where id = '".$player['id']."'");

if(!$update) {
  die('Could not update data: ' . mysql_error());
}

gamedevmania.com

Opublikowano

@Written - masz rację taki styl "debugowania" też jest okey ,ale ja osobiście preferuję:

 

echo "UPDATE gracze SET haslo = '".$nowe_haslo."' where id = '".$player['id']."'";

;)

 

A no i @Koder. - błąd popełniłeś bo tekst dajemy w '' lub w " " ;). A ty dałeś tu zwyczajnie jako liczba czyli.

Jako liczba:

 

SET haslo=".$nowe_haslo."

Jako tekst:

 

SET haslo='".$nowe_haslo."'
Opublikowano

Dziękuję Kongo i Writen ;)

Wykorzystałem sposób Writen'a, żeby w razie czego widzieć jaki błąd, oczywiście wszystko ładnie działa :)

Opublikowano

koder i tego nowego hasła nie kodujesz w Md5 po wylogowaniu nie zalogujesz sie (obstawiam ze rejestrujesz hasło w Md5).

hcq0.png


Opublikowano

Nygol, aż takim laik'iem nie jestem :) Koduję w md5, i po tym co mi podał Writen i Kongo zedytowałem również skrypt żeby kodował do md5 :)
Logowanie po zmianie hasła działa cacy.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...