![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 0 Dołączył: 2.11.2007 Skąd: Włocławek Ostrzeżenie: (10%) ![]() ![]() |
mam problem z aktualizacja hasla w bazie ktore hashowanie md5. to jest login.php
baza
rejestracja.php <?php // rozpoczêcie buforowania (jest to potrzebne by nie mieæ b³êdów typu headers already sent) ob_start(); // start sesji session_start(); // po³¹czenie z mysql require('funkcje.php'); include ('top.php'); // nag³ówek if($_SESSION['logged']) { // wyœwietlamy userowi jego dane echo '<div class="error">Nie możesz wykonać rejestracji jak jestes zalogowany!</div>'; } else { echo '<h2>Rejestracja</h2>'; // tworzymy prosty formularz echo '<form action="register.php" method="POST"> <table width="380" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td>Login:</td> <td><input type="text" name="nick" /></td> </tr> <tr> <td>Haslo:</td> <td><input type="password" name="pass" /></td> </tr> <tr> <td>Potwierdz haslo:</td> <td><input type="password" name="pass2" /></td> </tr> <tr> <td>Imie:</td> <td><input type="text" name="imie" id="imie" /></td> </tr> <tr> <td>Nazwisko:</td> <td><input type="text" name="nazwisko" id="nazwisko" /></td> </tr> <tr> <td>numer telefonu:</td> <td><input type="text" name="telefon" id="telefon" /></td> </tr> <tr> <td>Twój E-mail:</td> <td><input type="text" name="mail" id="mail" /></td> </tr> <tr> <td>Powtórz E-mail</td> <td><input type="text" name="mail2" id="mail2" /></td> </tr> <tr> <td><input type="reset" value="Reset" /></td> <td><input type="submit" name="ok" value="Rejestruj" /></td> </tr> <tr> <td colspan=2><div class="error">Aby rejestracja przebiegła pomyślnie to wszystkie pola muszą być uzupełnione!</div></td> </tr> </table> </form>'; // jeœli zostanie naciœniêty przycisk "Rejestruj" if(isset($_POST['ok'])) { $nick = $_POST['nick']; $pass = $_POST['pass']; $pass2 = $_POST['pass2']; $imie = $_POST['imie']; $nazwisko = $_POST['nazwisko']; $telefon = $_POST['telefon']; $mail = $_POST['mail']; $mail2 = $_POST['mail2']; // sprawdzamy czy wszystkie dane zosta³y podane if(empty($nick) || empty($pass) || empty($pass2) || empty($imie) || empty($nazwisko) || empty($telefon) || empty($mail) || empty($mail2) ) echo '<div class="error">Wpisz wszystkie pola!</div>'; // jeœli tak... else { // filtrujemy dane $nick = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($nick)))); $pass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($pass)))); // sprawdzamy czy jest ju¿ u¿ytkownik o takim loginie $result = mysql_query("SELECT * FROM users WHERE nick='$nick'"); // jeœli ju¿ istnieje if(mysql_num_rows($result)!=0) echo '<div class="error">Juz istnieje konto z takim loginem!</div>'; // jeœli nie... if ($pass!=$pass2) echo '<div class="error">Hasla sie niezgadzaja!</div>'; // sprawdzenie poprawnosci adresu mail // w zmiennej $email mamy e-mail do sprawdzenia //sprawdzanie czy sia adresy email zgadzaja if ($mail!=$mail2) { echo '<div class="error">Adresy E-mail sie niezgadzaja!</div>'; } elseif(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$mail)) { echo '<div class="error">Adres E-mail jest nieprawidlowy!</div>'; } else { // pobieramy aktualn¹ datê $data = time(); // kodujemy has³o $pass = md5($pass); // tworzymy zapytanie $query = "INSERT INTO users (nick , pass, data_rejestracji, imie, nazwisko, telefon, mail) VALUES ('$nick', '$pass', '$data', '$imie', '$nazwisko', '$telefon', '$mail')"; // jeœli zapytanie wykona siê poprawnie to zostanie wyœwietlony stosowny komunika if(mysql_query($query)) echo 'Zostales poprawnie zarejestrowany! Mozesz sie teraz <a href="login.php">zalogować</a>'; } } } } include 'botom.php'; // roz³¹czenie z baz¹ danych mysql_close(); // koniec buforowania ob_end_flush(); ?> i moj nie udolnie napisany pliczek ;/ <?php $pass = $_SESSION['pass']; $a = trim($_GET['a']); $id = trim($_GET['id']); if($a == 'edit' and !empty($id)) { /* zapytanie do tabeli */ $wynik = mysql_query("SELECT * FROM users WHERE id='$id'") or die('Błąd zapytania'); /* wyświetlamy wyniki, sprawdzamy, czy zapytanie zwróciło wartość większą od 0 */ if(mysql_num_rows($wynik) > 0) { /* odczytujemy zawartość wiersza z tabeli */ $r = mysql_fetch_assoc($wynik); echo '<form action="login.php?change=pass" method="POST"> <table border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td>Stare hasło</td> <td><input type="password" name="pass" id="pass" /></td> </tr> <tr> <td>Nowe hasło</td> <td><input type="password" name="npass" id="npass" /></td> </tr> <tr> <td>Ponowenie nowe hasło</td> <td><input type="password" name="npass2" id="npass2" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="ok" value="Zaloguj" /> </td> </tr> </table> </form>'; } } elseif($a == 'save') { $pass = $_POST['pass']; $npass = $_POST['npass']; $npass2 = $_POST['npass2']; // sprawdzamy czy wszystkie dane zosta³y podane if(empty($pass) || empty($npass) || empty($npass2)) echo '<div class="error">Wpisz wszystkie pola!</div>'; // jeœli tak... else { // filtrujemy dane $pass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($pass)))); $npass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($npass)))); $npass2 = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($npass2)))); // kodujemy has³o $npass = md5($npass); mysql_query("UPDATE users SET pass='$npass' WHERE id='$id'") or die('Błąd zapytania'); echo 'Dane zostały zaktualizowane'; echo '<meta http-equiv="Refresh" content="1; url=login.php" />'; } } ?> ostatnie pliczki musialem tak zrobic bo bbcode bo tresc jest za dluga ;/ Ten post edytował michu9010 13.01.2010, 17:15:36 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Nie ma takiej opcji. Musisz wygenerować nowe hasło, zapisujesz w bazie i wysyłasz do usera w e-mailu podanym przy rejestracji.
Użyj codebox, to się kod zmieści. Ten post edytował Kshyhoo 13.01.2010, 17:25:50 -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 0 Dołączył: 2.11.2007 Skąd: Włocławek Ostrzeżenie: (10%) ![]() ![]() |
a ja mam juz pliczek tylko on nie wyswietla formularza a tym bardziej nie zmieni hasla ;/;/
nie wiem jak to poprawic zeby dzialalo ;/ |
|
|
![]()
Post
#4
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Podpowiedź:
Ze względów bezpieczeństwa wysyłasz tylko hasło, login user musi pamiętać. To tylko przykład, musisz go sobie dopasować. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 0 Dołączył: 2.11.2007 Skąd: Włocławek Ostrzeżenie: (10%) ![]() ![]() |
troszke nie bardzo zrozumialem to co napisales
![]() ![]() moje haslo jest kodowane md5 ( a tak na marginesie jest jakas metoda zeby to od hashowac i pokazac ten zahaszkowany wyraz??) dziekuje wszystkim za odp o podpowiedzi |
|
|
![]()
Post
#6
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Są strony, które się tym trudnią, ale wydaje mi się, że po prostu zapisują w bazie hasło i hash, żeby później porównywać, niż rzeczywiście je łamią... MD5 to kodowanie w jedną stronę i lepiej nie zaprzątać sobie głowy odkodowaniem. Chcesz się w to bawić, zmień forum na tematykę hack ;p
Ten kod, który podałem jest dość prosty, łatwo go zaadoptujesz. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 0 Dołączył: 2.11.2007 Skąd: Włocławek Ostrzeżenie: (10%) ![]() ![]() |
troszke przerobilem i pare rzeczy od siebie ale nadla nie dziala dokladnie nie porownuje hasla z sessji z tym w polu stare haslo;/;/
Ten post edytował michu9010 14.01.2010, 22:50:08 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
To Ty chcesz pozwolić zmienić hasło userowi, czy wysłać mu nowe? Zmiana hasła przez usera:
To przykład, bez autoryzacji usera... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:18 |