Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie nowego urzytkownika, problem z dodaniem hasla do mysql
Początkujący_
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 6.06.2005

Ostrzeżenie: (30%)
XX---


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
sobstel
post
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
Go to the top of the page
+Quote Post
Początkujący_
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 6.06.2005

Ostrzeżenie: (30%)
XX---


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
Go to the top of the page
+Quote Post
nospor
post
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?
Go to the top of the page
+Quote Post
Początkujący_
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 6.06.2005

Ostrzeżenie: (30%)
XX---


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
Go to the top of the page
+Quote Post
sobstel
post
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
Go to the top of the page
+Quote Post
nospor
post
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"
Go to the top of the page
+Quote Post
Początkujący_
post
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 6.06.2005

Ostrzeżenie: (30%)
XX---


Czyli zamiast
  1. <?php
  2.  
  3. $query = &#092;"insert into user (host, user, password) values ('localhost', '$user', password('$password'))\"
  4. ?>

mam wstawić:
  1. <?php
  2.  
  3. $query = &#092;"insert into user (host, user, password) values ('localhost', '$user', SHA1('$password'))\"
  4. ?>

?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:28