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


Rekomendowane odpowiedzi

Opublikowano

Siema mam pewnie problem (dopiero się uczę ;p) a więc chciałem zrobić zmianę hasła lecz mi coś nie wychodzi

 

 

if(!empty($_POST['haslo'])){
$_POST['haslo'] = md5($_POST['haslo']);
$_POST['haslo2'] = md5($_POST['haslo']);




if($_POST['haslo'] != $_POST['haslo2']) {
$error = "Podaj poprawne hasło!";
}
if($_POST['haslo'] == $_POST['haslo2']) {
mysql_query("update gracze set haslo = '".md5($_POST['haslo'])."' where gracz = ".$player['gracz']);
$error = "<center>Zapisano zmiany</center>";
}
}

 

zabardzo się nie znam ale jak zmienię niby hasło tym kodem to podczas logowania wywala złe hasło ;/

a i jeszcze jedno podczas logowania jest takie sprawdzenie:

 

 

$query = "
SELECT * FROM gracze
WHERE login = '".$_POST['login']."'
AND haslo = '".sha1(md5($_POST['haslo']))."'
LIMIT 1
";

jak można naprawić ten kod zmieniający hasło ? ;p

Opublikowano

Ehh naprawdę nie myślisz. Idź coś zjedz jak nie jadłeś lub zrób coś co cie ożywi :

w logowaniu masz sha1(md5()) ,a w zmianie dajesz md5(md5()) (bo wcześniej dajesz MD5 i w zapytaniu po raz kolejny.

Taki kod powinien być :

if(!empty($_POST['haslo'])){
$_POST['haslo'] = sha1(md5($_POST['haslo']));
$_POST['haslo2'] = sha1(md5($_POST['haslo']));




if($_POST['haslo'] != $_POST['haslo2']) {
$error = "Podaj poprawne hasło!";
}
if($_POST['haslo'] == $_POST['haslo2']) {
mysql_query("update gracze set haslo = '".$_POST['haslo']."' where gracz = ".$player['gracz']);
$error = "<center>Zapisano zmiany</center>";
}
}

PS: Taki kod nie ma sensu bo to samo pole pobiera 2x do różnych zmiennych więc zawsze podał poprawne hasło.

Opublikowano

PS: Taki kod nie ma sensu bo to samo pole pobiera 2x do różnych zmiennych więc zawsze podał poprawne hasło.

 

No trochę dziś nie myślę ;p Znaczy się działa ;p A więc jak ten kod powinien wyglądać aby miał sens ?

Opublikowano

Dam ci to co ja do zmiany hasła stosuję byś sobie zobaczył :

echo"<h2>Zmień hasło :</h2>";
$haslo = mysql_fetch_Array(mysql_query("SELECT * FROM Users WHERE Id=".$uzytkownik['Id']));

if(isset($_GET['zmien'])) {
$stare_haslo = MD5($_POST["stare_haslo"]);
$nowe_haslo = mysql_real_escape_string($_POST["nowe_haslo"]);
$powtorz_haslo = mysql_real_escape_string($_POST["powtorz_haslo"]);
$wpiszhaslo = MD5($_POST["nowe_haslo"]);
$wpiszhaslo = mysql_escape_string($wpiszhaslo);

if($stare_haslo == $haslo['Password']){
if($nowe_haslo == $powtorz_haslo) {
$zmienhaslo = mysql_query("UPDATE Users SET Password='$wpiszhaslo' WHERE Id=".$uzytkownik['Id']);
$efekt = 'Hasło zmienione !';
} else {
$efekt = 'Hasła nie są zgodne !';
}
} else {
$efekt = 'Niepoprawnie wpisano stare hasło !';
}
echo '<b>'.$efekt.'</b>';
}
echo'
<table border="0" align="center">
<form action="?opt=haslo&zmien" method="POST">
<tr><td>Stare hasło :<td><input type="password" name="stare_haslo"><br />
<tr><td>Nowe hasło :<td><input type="password" name="nowe_haslo"><br />
<tr><td>Powtórz hasło :<td><input type="password" name="powtorz_haslo"><br />
<tr><td colspan="2"><input type="submit" value="Zmień hasło">
</form>
</table>';

 

Lub kolejność jaką musisz skminić :

Osoba musi podać stare hasło, nowe i powtórzyć nowe hasło by nie popełnił błędu w 99%

Potem musisz w PHP sprawdzić czy stare hasło się zgadza ,jeśli tak to czy nowe i powtórzenie nowego też się zgadzają. Jak tak - zmienia

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...