Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 17:28 17.07.25 
Компютри и Интернет
   >> PHP
*Кратък преглед

Тема PHP регистрация с база даннинови  
Авторlvan (Нерегистриран)
Публикувано06.02.07 14:37



Здравейте, експериментирам с един скрипт за логване, но когато се стигне до валидирането на юзер нейма и паролата дава: "Грешна парола"
иначе в базата акаунта е създаден коректно, но явно при сравняването става грека. Ето кода:
<?
//проверява дали потребителя няма сетната бисквитка
if(isset($_COOKIE['ID_my_site']))

//ако има ви логва автоматично и ви пренасочва към последно запазената страница
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: include/members.php");

}
}
}

//ако формата е изпълнена
if (isset($_POST['submit'])) {

// проверява дали полетата са попълнени
if(!$_POST['username'] | !$_POST['pass']) {
die('Не сте попълнили нужните полета.');
}
// проверява дали има такъв потребител с такава парола

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());

//дава гершка ако няма
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('Няма такъв потребител. <a href=include/add.php>Натиснете тук, за да се регистрирате</a>');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Грешна парола, опитайте пак!.');
}
else
{

// ако всичко е наред сетваме бисквитка
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

//след това пренасочва към потребителската секция
header("Location: include/members.php");
}
}
}
else
{

// ако не е вече влязъл потребителя
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td>Име:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Парола:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}
?>
Приемам всякакви съвети, благодаря предварително.



Тема Re: PHP регистрация с база даннинови [re: lvan]  
Автор chernobyl (бръмбар)
Публикувано06.02.07 16:07



Значи, не знам по какъв начин е създаден акаунта в базата, но така като гледам, скриптът не сравнява самата парола, а нейния md5 хеш.
Така че вътре в базата данни паролата също трябва да е кодирана с md5.

Тоест, примерно, при промяна на паролата, вместо SET password = 'parola' трябва да се ползва SET password=MD5('parola')

Освен това гледам, че в този си вид скриптът може лесно да бъде хакнат с

. Препоръчително е там, където пише:

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}



Да се добави:


if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
$_POST['username'] = addslashes($_POST['username']);
$_POST['pass'] = addslashes($_POST['pass']);

}


Надявам се да съм помогнал малко... поне повече от уважаемите колеги съфорумци с имена на лекарства

---
Life is too short so love the one you got
Cause you might get run over or you might get shot

Тема Re: PHP регистрация с база даннинови [re: chernobyl]  
Авторlvan (Нерегистриран)
Публикувано06.02.07 20:00



Благодаря за отговора, паролата в базата също е криптирана, но нещо явно при сравнението става грешката.
Както и да е намерих друг скрипт който ми свърши работа.
Захванал съм се да го у4а това пхп, но като ги гледам тия скриптове и ме заболява главата, не знам колко време ще ми е нужно преди аз да почна сам да ги пиша





Тема Re: PHP регистрация с база даннинови [re: lvan]  
Автор Bълk (умора няма)
Публикувано06.02.07 22:49



а ти на какво си програмирал до сега?



Тема Ти да нямаш ... [re: lvan]  
Автор ro6aviaМодератор (усер френдли)
Публикувано07.02.07 09:04



Двама потребители в базата с един и същи user и различни пароли ?

а и още един коментар ...
$info['password'] = stripslashes($info['password']);

ако е MD5 и 100000000 пъти да пуснеш функцията се тая ;-)

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy



*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.