Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie+Rejestracja
Forum PHP.pl > Forum > Przedszkole
ExtazyPro
Witam wszystkich użytkowników smile.gif.
Mam 2 skrypty Logowanie i Rejestracje ,i mam parę pytań odnoście moich skryptów,jestem trochę początkujący smile.gif
Teraz podam skrawki skryptów ,reszty nie trzeba.
1.Logowanie
  1. <!-- strona -->
  2. <div class="cbox-ui cbox-title"><h2>Logowanie</h2></div>
  3. <div class="cbox-ui cbox-content">
  4. <div class="clearfix"></div>
  5. <?php echo "<table align='center' cellpadding='40' cellspacing='40'><tr><td><a href=\"java script:history.back();\">Użytkownik nie istnieje lub podałeś złe hasło!</a></table></tr></td>";
  6. }else{
  7. require_once("ustaw/config.php");
  8. mysql_select_db("authme");
  9. $exec="*from authme where username='$userid' and Password=password('$password')";
  10. $result=mysql_query($exec);
  11. $rs=mysql_fetch_object($result);
  12. if($rs){
  13. $_SESSION["ID"] = $rs->id;
  14. $_SESSION["UserID"] = $rs->Login;
  15. $_SESSION["email"] = $rs->email;
  16. $_SESSION["vip"] = $rs->vip;
  17.  
  18. header("location: index.php");
  19.  
  20. }else{
  21. echo "<table align='center' cellpadding='40' cellspacing='40'><tr><td><a href=\"java script:history.back();\">Użytkownik nie istnieje lub podałeś złe hasło!</a></table></tr></td>"
  22. ;exit;
  23. }
  24. }







2.Rejestracja

  1. <div class="cbox-ui cbox-title"><h2>Rejestracja</h2></div>
  2. <div class="cbox-ui cbox-content">
  3. <div class="clearfix"></div>
  4. <center>
  5. <?php
  6. include ("ustaw/database_cfg.php");
  7. ?>
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-type" content="text/html; charset=SHA256" />
  11. <link href="CSS/Style.css" rel="stylesheet" type="text/css">
  12. </head>
  13. <body>
  14. <center>
  15. <form action="?action=register" method="post">
  16. <font color="#black" size="2,3px">Login:<br><br> <input type="text" name="id" class='pole'><br>
  17. <br>Hasło:<br><br> <input type="password" name="passwd" class='pole'><br>
  18. <br>Powtórz hasło:<br><br> <input type="password" name="rpt_passwd" class='pole'><br>
  19. <br>Imię:<br><br> <input type="text" name="real_name" class='pole'><br>
  20. <br>E-mail<br><br> <input type="text" name="email" class='pole'><br>
  21. <br><br> </font>
  22. <input type="reset" value="Wyczysc pola!" class='button'> <input type="submit" value="Zarejestruj!" class='button'>
  23. </form></center>
  24. <?php
  25. $message['success'] = "Konto zostało pomyślnie założone!";
  26. $message['err_acc'] = "Wystąpił błąd podczas zakładania konta!";
  27. $message['err_pass'] = "Poadne hasła nie pasują do siebie!";
  28. $message['exist'] = "Takie konto już istnieje!";
  29. if($_REQUEST['action']=="register") //tutaj się pojawia błąd, bo ten indeks istnieje tylko, gdy formularz zostnie wysłany, dlatego trzeba dodać sprawdzsanie istnienia klucza
  30. if(isset($_REQUEST['action']) && $_REQUEST['action']=="register")
  31. {
  32. $error = FALSE;
  33. $id = $_REQUEST['id'];
  34. if (empty($id)) { //reszta analogicznie i nie łącz wszystkich, dla każdego daj osobne
  35. $error = TRUE; //kluczowym jest tutaj ustawienie true dla error, inaczej konto będzie się zakładać zawsze
  36. echo "ID nie może być puste";
  37. }
  38. $passwd = $_REQUEST['passwd']; //pamię?aj, żeby sprawdzać czy hasło nie jest puste, a nie tylko czy zgadza się z powtórzonym
  39. $rpt_passwd = $_REQUEST['rpt_passwd'];
  40. $real_name = $_REQUEST['real_name'];
  41. $email = $_REQUEST['email'];
  42. $db = mysql_select_db("authme");
  43. if($passwd == $rpt_passwd && !$error) //dodane sprawdzanie czy error jest FALSE
  44. {
  45. if(mysql_num_rows(mysql_query("SELECT * FROM authme WHERE username='$id'")) > 0)
  46. {
  47. echo '<script type="text/javascript">alert("'.$message['exist'].'");</script>';
  48. }
  49. else
  50. {
  51. $passwd = hash('sha256', $passwd);
  52. $mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email` VALUES('".$id."','".$real_name."','".$passwd."','".$email."'));") or die(mysql_error());
  53. if($mq = true)
  54. {
  55. echo '<script type="text/javascript">alert("'.$message['success'].'");</script>';
  56. }
  57. else
  58. {
  59. echo '<script type="text/javascript">alert("'.$message['err_acc'].'");</script>';
  60. }
  61. }
  62. }
  63. else
  64. {
  65. echo '<script type="text/javascript">alert("'.$message['err_pass'].'");</script>';
  66. }
  67. }
  68. ?>
  69. <div class="clearfix"></div>
  70. </div>
  71. <div class="cbox-ui cbox-end"></div>
  72.  
  73. <div class="clearfix"></div>
  74. </div>
  75. <div class="cui cbottom"></div>
  76.  
  77. </div>

Wiem trochę długie biggrin.gif
Jak widać w tym kodzie mam Hasowanie do SHA256 i jak już wpisze hasło to hasuje do SHA256 ,lecz chce aby przed całym zakodowany hasłem był napis "$SHA$".


Ok przejdźmy do logowana tu już jest łatwiej bo mam tylko problem z tym własnie rozkodowywanie hasłe ,chyba wiecie o co chodzi smile.gif

Jeszcze taki 1 mały problemik też z rejestracją ,ale ten kod mi jest potrzebny do porgramu

  1. <?
  2. mysql_connect("localhost", "root", "");
  3. mysql_select_db("moja_baza");
  4. $login = mysql_real_escape_string($_POST['login']);
  5. $haslo = mysql_real_escape_string($_POST['haslo']);
  6. $zap = mysql_query("SELECT `id` FROM `uzytkownicy`");
  7. $r = mysql_fetch_array($zap);
  8. if ($r['id'] >= 0)
  9. echo '1';
  10. ?>

Tu tylko aby dało się logować jak jest hasło zahasowane do SHA256 i przed hasłem zakodowanym jest $SHA$
Z góry wszystkim dziękuje!
radziopoke
Może by tak nauczyć się czytać błędy. Chodzi dokładnie o błąd składni.
Ten kod:
  1. INSERT INTO authme (`username`, `password`, `real_name`, `email` VALUES('".$id."','".$real_name."','".$passwd."','".$email."'))

powinien wyglądać tak:
  1. "INSERT INTO authme (`username`, `password`, `real_name`, `email`) VALUES('".$id."','".$real_name."','".$passwd."','".$email."')


Po prostu w złym miejscu domknąłeś jeden z nawiasów.
ExtazyPro
Własnie zauważyłem i juz dawno poprawiłem,ale dzięki biggrin.gif

@Ref smile.gif

Pomoże ktoś ,to ważne! sad.gif
Ruch Radzionków
jak mamsz zakodowane to tego nie odkodujesz możesz tylko zakodowac hasło kture ktoś wpisze i sprawdzic czy jest takie haslo ktore jest w bazie
ExtazyPro
widać że się znasz biggrin.gif "Kture" smile.gif,da się da.nie wiem gdzie ale trzeba wpisać SHA256.Jak się da z MD5 to jeak sie z SHA256 nie da ?
Ruch Radzionków
wszystko da sie odkowawac tylko to musisz miec specjalny skrypt zeby odkodowac. a szybciej jest zeby zakodowac i tak samo sprawdzac
Wazniak96
Po co takie hashowanie skoro można by było w prosty sposób odwrócić .? Bez sensu. A kolega wyżej chciał Ci przekazać, żebyś hasło podane przy logowaniu także potraktował sha256 i wtedy oba zakodowane hasła sobie porównał. smile.gif

A do tych błędów też musiałeś się przyczepić... biggrin.gif
ExtazyPro
czyli lepiej zrobić tak ?
  1. $password= SHA256 ($_POST["password"]);

czy
  1. $password=hash('SHA256', $password);

a później porównać oba kodowania?
a przed tymi kodowaniami jak dodać $SHA$ ? bo to musi być ...i jak to jeszcze zabezpieczyć cookies czy cos takiego biggrin.gif
Ruch Radzionków
powiec mi jakie uzywasz kodowanie to po pierwsze a po 2 to do hasła chesz dodac to $SHA$ questionmark.gif
ExtazyPro
tak przed zakodowanym hasłem
Ruch Radzionków
nie wiem jakim kodowaniem to chcesz zrobic bbo nie napisałeś ale jak chcesz umieścic to z hasłem to wystarczy zrobic cos takiego:

  1. $text = "$SHA$'.$_POST[password].'";

i potem np kodowanie:

  1. $rezultat = md5($text);
ExtazyPro
Chodzi mi oto aby hasło było kodowane do SHA256 i przed zakodowanym hasłem było $SHA$ oddzielnie
NP: $SHA$[zakodowanehasło]

Pomoże ktoś to pilne !:)
minolone
Gdy dodajesz do bazy nowego użytkownika masz zmienną $passwd,
  1. $passwd = hash('sha256', $passwd);

czy tak ciężko dodać
  1. $passwd = '$SHA$' . hash('sha256', $passwd);

i tak samo robisz gdy logujesz użytkownika
ExtazyPro
Dzięki stary ratujesz mi życie!Mogę prosić moderator/Admin o usunięcie moich kodów? i zamknięcie tematu.
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.