Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie nowego urzytkownika
Forum PHP.pl > Forum > Gotowe rozwiązania
Początkujący_
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?
sobstel
1. uzywaj bbcode do wklejania kodu na forum
2. http://dev.mysql.com/doc/mysql/en/applicat...ssword-use.html
Początkujący_
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
nospor
w przypadku gdy się logujesz i sprawdzasz czy gościiu podal poprawne haslo, to musisz to haslo najpierw zaszufrowac przed sprawdzeniem, robisz tak?
Początkujący_
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
sobstel
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
nospor
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"
Początkujący_
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. ?>

?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.