![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.06.2005 Ostrzeżenie: (30%) ![]() ![]() |
Witam
Chciałem zrobić skrypt dodający nowego użytkownika do bazy mysql, który ma ograniczone prawa. Wszystko działa ładnie i się dodaje, ale nie mogę sie zalogować na nowym haśle. Podejrzewam że przyczyną może być to, że zaszyfrowane hasła w mysql mają mają inną długość, tzn są znacznie dłuższe od tych ktrórych używam do logowania się. POMOCY! Mój skryt do dodawania nowych użytkowników wygląda następująco: <? session_start(); if(session_is_registered("prawid_uzyt")) { echo "<h1>hasła</h1>"; $connection = mysql_connect("localhost", $legitymacja , $haslo ); mysql_select_db("mysql", $connection); if ($co == 'dodaj') { $query = "insert into user (host, user, password) values ('localhost', '$user', password('$password'))"; $wynik = mysql_query ($query, $connection); } $wynik = mysql_query ("SELECT * FROM user", $connection) or die ("błąd w pytaniu"); Print "<table cellpadding=5 border=1>"; Print "<TR><TD>user</TD><TD>haslo</TD></TR>\n"; while ($rekord = mysql_fetch_row ($wynik)) { $user = $rekord[1]; $password = $rekord[2]; Print "<TR><TD>$user</TD><TD>$password</TD><td>"; } Print "</table>"; print '<form method="post">Nowy wpis:'; print '<input type="hidden" name="co" value="dodaj"><table>'; print '<tr><td>user:</td><td><input type="text" name="user"></td></tr><tr><td>password:</td><td><input type="text" name="password"</td></tr>'; print '</table><input type="submit" value="dodaj"></form>'; } echo '<b>Nie masz uprawnienia</b><p>'; echo "<a href=\"uwierz_glowny.php\">Powrót do strony głównej</a>"; ?> Co jest tu nie tak? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
1. uzywaj bbcode do wklejania kodu na forum
2. http://dev.mysql.com/doc/mysql/en/applicat...ssword-use.html |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.06.2005 Ostrzeżenie: (30%) ![]() ![]() |
Ok.
Przeczytałem to sobie, ale angielskiego to nie bardzo rozumiem, więc zbytnio nie wiem co mam teraz zrobić. Ja mam php Version 4.3.11 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
w przypadku gdy się logujesz i sprawdzasz czy gościiu podal poprawne haslo, to musisz to haslo najpierw zaszufrowac przed sprawdzeniem, robisz tak?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.06.2005 Ostrzeżenie: (30%) ![]() ![]() |
Proces logowania odbywa się poprzez skrypt php. Oto ten fragment:
<? session_start(); if($legitymacja && $haslo) { $bd_lacz=mysql_connect("localhost", $legitymacja, $haslo); mysql_select_db("mysql", $bd_lacz); $wynik = mysql_query("select * from user " ."where user='$legitymacja' " ." and password=password('$haslo')", $bd_lacz); if($wynik>0) { $prawid_uzyt=$legitymacja; session_register("prawid_uzyt"); } ................. tak to się odbywa. także jest password('$haslo') mi się wydaje że wszystko jest dobrze. chociaż sam już nie wiem |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
1. uzywaj bbcode!!!!!
2. pisze tam, ze z password sa problemy na nowszych wersjach MySQL (nie chodzi o php). uzywaj MD5 albo SHA1 zamiast PASSWORD |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Mistrzuniu, a czemu ty sprawdzasz czy zostaly zwrócone wyniki poprzez
if ($wynik>0) poczytaj se o mysql_query. ono zwraca false lub resource a nie liczbę powinno być if (mysql_num_rows($wynik) > 0) pozatym sprawdzaj czy zapytanie jest poprawne, czyli if (!$wynik) echo "zle zapytanie" |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.06.2005 Ostrzeżenie: (30%) ![]() ![]() |
Czyli zamiast
mam wstawić:
? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:28 |