Влизане на потребител.

cracking

Registered
Иксам да си направя да се регистрират потребители. Всъщност аз си написъх такъв скрипт. Потребители се регистрират но друг е проблема :cry: Немога да си направя след това скрипта който да обработва вече влезлия потребител.Да си напише ника паролата и да влезе в страниците в който преди това не е можел и навсякаде да му изписва ника.
Може по нататъка да изпраща E-mail при забравена парола и да си сменя паролата сам потребителя :roll:

А и боби А и какво стана с онова с форума което щеше да ми пишеш като урок. ??? :wink:
 
cracking каза:
Иксам да си направя да се регистрират потребители. Всъщност аз си написъх такъв скрипт. Потребители се регистрират но друг е проблема :cry: Немога да си направя след това скрипта който да обработва вече влезлия потребител.Да си напише ника паролата и да влезе в страниците в който преди това не е можел и навсякаде да му изписва ника.
Може по нататъка да изпраща E-mail при забравена парола и да си сменя паролата сам потребителя :roll:

А и боби А и какво стана с онова с форума което щеше да ми пишеш като урок. ??? :wink:

Дай да видиме скрипта с който се регистрират.
ТЕ явно се записват в база данни.
Примерно в MySQL -db:log, таблица user?
как ги записваш в базата данни?
Какво преставлява таблицата където ги записваш?
Как са имената на полетата в тази таблица?
Колко са полетата?
Криптирани ли са паролите?

КАква е структурата на таблицата ти за усерите и как са записани?
Така ще може да ти кажа и как да си ги сверяваш.
След като ги свериш трябва да пуснеш и една сесиина променлива
за да го следиш къде ходи.
 
Код:
<html><head><title>Регистрация</title></head>
<body>
<?php
$self = $_SERVER['PHP_SELF'];
$ime = $_REQUEST['ime'];
$familia = $_REQUEST['familia'];
$nick = $_REQUEST['nick'];
$pass = $_REQUEST['pass'];
$email = $_REQUEST['email'];
$city = $_REQUEST['city'];
$country = $_REQUEST['country'];
$age = $_REQUEST['age'];


if( (!$ime) or (!$familia) or (!$nick) or (!$pass) or (!$email) or (!$city) or (!$country) or (!$age) )
{
  $form ="Моля въведете всички данни";
  $form.="<form action=\"$self\"";
  $form.=" method=\"post\"><br><b>Име: ";
  $form.="<input type=\"text\" name=\"ime\"";
  $form.=" valie=\"ime\"><br>Фамилия: ";
  $form.="<input type=\"text\" name=\"familia\"";
  $form.=" value=\"$familiq\"><br>Потребителско име";
  $form.="<input type=\"text\" name=\"nick\"";
  $form.=" value=\"$nick\"><br>Парола:   ";
  $form.="<input type =\"text\" name=\"pass\"";
  $form.=" value=\"$pass\"><br>E-mail:";
  $form.="<input type =\"text\" name=\"email\"";
  $form.=" value=\"$email\"><br>Град:";
  $form.="<input type =\"text\" name=\"city\"";
  $form.=" value=\"$city\"><br>Държава:";
  $form.="<input type =\"text\" name=\"country\"";
  $form.=" value=\" $country\"><br>Години:";
  $form.="<input type =\"text\" name=\"age\"";
  $form.=" value=\"$age\"><br>";
  $form.="<input type=\"submit\" value=\"Регистрация\">";
  $form.="</form>";
   echo($form);
}


else
{   //свързване на MySQL
    $conn = @mysql_connect("localhost", "root", "")
    or die("връската неможе да бъде осъществена с MySQL");
    //селектиране на база данни
    $BD = @mysql_select_db("klienti", $conn)
    or die ("Базата данни неможе да бъде открита");
    //създаване на SQL заявка
    $zaqvka = "insert into potrebiteli(ime, familia, nick, pass, email, city, country, age)
    values (\"$ime\", \"$familia\", \"$nick\", password(\"$pass\"), \"$email\", \"$city\", \"$country\", \"$age\")";
    //изпълнение на заявката
    $rez = @mysql_query($zaqvka, $conn)
    or die("Заявката неможе да бъде изпълнена");
    if($rez)
    { echo("Новият потребител {$nick} е добавен"); }
}
   

?>
</body></html>
Това е скрипта за регистрация .
Всичко става регистрира се потребителя но след това немога да го направя :roll:
 
Надявам се работиш с phpmyadmin и по това разбираш, че всичко работи.

Караш го да попълни формуляр чрез който да напише своето име
и парола.
И после с това проверяваш дали в базата данни има такова ime
и срешу него дали има такъв pas.

Код:
$ime = $_REQUEST['ime']; 
$pass = $_REQUEST['pass'];


 mysql_connect(localhost,"root","");
@mysql_select_db("klienti") or die( "Unable to select database");

$query="SELECT * from potrebiteli
  where ime like '$ime' and pass like '$pass' ";
$result=mysql_query($query);

 if (mysql_num_rows($result) >0 )
  {echo"OK"}
else
 {echo"Грешно име или парола"}

И още един проблем.
По твоя метод за логване може да има два еднакви user-a с различни пароли.
Тоест няма проверка дали вече това име не съществува.
Ако в този сайт беше така то всеки може при регистрацията да
си направи user -> admin или user ->cracking и да се представи от твое име.
Просто при syzdawaneto na akaunta ще
пиша ime->cracking парола->дърабъра и после при проверката
скрипта гледа дали има повече от 0 съвпадения между име и парола
и ме пуска.
Трябва да направиш така, че ако има създаден юзър с име cracking
друг да не може да направи такъв.
Ако пък се опита да му изписва " Има вече такъв user".
Затова на скрипта който си дал за пример трябва да му сложиш ето
тази проверка преди да запишеш потребителя в база данни.


Код:
mysql_connect(localhost,"root","");
@mysql_select_db("klienti") or die( "Unable to select database");

$query="SELECT * from potrebiteli
where ime like '$ime'  ";
$result=mysql_query($query);


mysql_close();



if (mysql_num_rows($result)>0)
{echo"Има вече такъв user";
exit;}
 
Кодовете нещо небачкат :roll:
За първия код:
Нестава регистрирах няколко usara но невлиза все пише, че е грешна паролата :? .

А за втория скрипт небачка също.Регистрирам няколко ючъра с един и същ ник но не ми дава "Има вече такъв user" :roll:
 
cracking каза:
Кодовете нещо небачкат :roll:
За първия код:
Нестава регистрирах няколко usara но невлиза все пише, че е грешна паролата :? .

А за втория скрипт небачка също.Регистрирам няколко ючъра с един и същ ник но не ми дава "Има вече такъв user" :roll:

провери дали съм написал правилно името паролата и акаунта на базата данни.
 
Разбрах какъв е проблема 8) Това, че когато се регистрира потребителя паролата е кодирана в самия MySQL :wink: с функцията md5 или в случея по горе " password(\"$pass\")" И затова ми казва, че юзъра или паролата са грешни. Но ако го направя без това кодиране и направо си пише паролата в базата данни тогава става всичко и ми изписва това "ОК" сега трябва да направя това със сесиите и да разбера как да решифрира това md5 :roll:
 
cracking каза:
Разбрах какъв е проблема 8) Това, че когато се регистрира потребителя паролата е кодирана в самия MySQL :wink: с функцията md5 или в случея по горе " password("$pass")" И затова ми казва, че юзъра или паролата са грешни. Но ако го направя без това кодиране и направо си пише паролата в базата данни тогава става всичко и ми изписва това "ОК" сега трябва да направя това със сесиите и да разбера как да решифрира това md5 :roll:

Не може да го решифрираш.
Трябва да направиш следното:
След като в базата данни ти е записано кодирано трябва да проверяваш така:
md5('$pass')=това което е в базата данни.
Или по точен пример:
Код:
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");

$query="SELECT * from $table
 where user like '$user' and pass like md5('$pass')";
 
Не ве нестава така как ли несъм пробвъл. :evil: Сигурно 3-4 различни начина и все нестава дори и не кодирана парола неми отваря незнам защо. Но като махна това md5 пред $pss става мога да вляза с не кодирана парола . Но защо да не е защитено ? :roll:
Абе как да направя така , че да може само с логнат юзър да влизам в определени страници? :wink:
 
cracking каза:
Не ве нестава така как ли несъм пробвъл. :evil: Сигурно 3-4 различни начина и все нестава дори и не кодирана парола неми отваря незнам защо. Но като махна това md5 пред $pss става мога да вляза с не кодирана парола . Но защо да не е защитено ? :roll:
Абе как да направя така , че да може само с логнат юзър да влизам в определени страници? :wink:

Не прочете ли урока.
Много ясно е написано.
http://www.web-tourist.net/login/login/view.php?st=300
 
Мерси много за този урок :) Вече ми стана по ясно зако става въпрос. :wink: Може и без кодиране на паролите но нали всичко се стреми към безопасноста :twisted: Абе ще видим.Благодаря ти макар , че незнам сега ти Бобито ли си или????
Ако си какво стана с онова което щеше да ми даваш за форум ?? :?:
 
cracking каза:
Мерси много за този урок :) Вече ми стана по ясно зако става въпрос. :wink: Може и без кодиране на паролите но нали всичко се стреми към безопасноста :twisted: Абе ще видим.Благодаря ти макар , че незнам сега ти Бобито ли си или????
Ако си какво стана с онова което щеше да ми даваш за форум ?? :?:

Нещо напоследък яко ме мързи.
Не ми се пише нищо.
НЯмам никаква муза.
 

Горе