Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktywacja konta przez e-mail do tego skryptu
Forum PHP.pl > Forum > PHP
MrGohut
  1. <?php
  2. require_once 'config.php';
  3. require_once 'user.class.php';
  4. ?>
  5. <!doctype HTML>
  6. <html>
  7. <head>
  8. <meta charset="utf-8" />
  9. <title>Testowa Strona WWW</title>
  10. <meta name="Description" content="" />
  11. <meta name="Keywords" content="" />
  12. <link rel="stylesheet" href="main.css" />
  13. <!--[if lt IE 9]>
  14. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  15. <![endif]-->
  16. </head>
  17. <body>
  18. <header>
  19. <h1 id="link"><a href="http://www.bundlelist.ugu.pl/">BundleList.pl</a></h1>
  20. <nav>
  21. <ul id="menu">
  22. <li><a href="#">Forum</a></li>
  23. <li>
  24. <a href="pages/humblebundle.php">Humble Bundle</a>
  25. <ul>
  26. <li><a href="pages/weeklysale.php">Humble Weekly Sale</a></li>
  27. </ul>
  28. </li>
  29. <li><a href="pages/indiegala.php">Indie Gala</a></li>
  30. <li><a href="pages/indieroyale.php">Indie Royale</a></li>
  31. <li><a href="pages/groupees.php">Groupees</a></li>
  32. </ul>
  33. </nav>
  34. </header>
  35. <div id="panel">
  36. <div id="logowanie_rejestracja">
  37. <?php
  38. if (user::isLogged()) {
  39. $user = user::getData('', '');
  40.  
  41. echo '<p id="witaj">Jesteś zalogowany, witaj <a href="profile.php?id='.$user['id'].'">'.$user['login'].'</a>!</p>';
  42. echo '<a id="wyloguj" href="logout.php">Wyloguj</a>';
  43. }
  44. else {
  45. echo '
  46. <p id="nie_zalogowany">Nie jesteś zalogowany. </p>
  47. <p id="nie_zalogowany2"><a href="login.php">Zaloguj</a> się lub <a href="register.php">zarejestruj</a> jeśli jeszcze nie masz konta.</p>
  48. ';
  49. }
  50. ?>
  51. </div>
  52. </div>
  53. <main>
  54. <div id="box1">
  55. <?php
  56. /**
  57.  * Skrypt i formularz rejestracji
  58.  * @author Sobak
  59.  * @package User System
  60.  */
  61.  
  62. /**
  63.  * Sprawdź czy formularz został wysłany
  64.  */
  65. if ($_POST['send'] == 1) {
  66. // Zabezpiecz dane z formularza przed kodem HTML i ewentualnymi atakami SQL Injection
  67. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  68. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  69. $pass_v = mysql_real_escape_string(htmlspecialchars($_POST['pass_v']));
  70. $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
  71. $email_v = mysql_real_escape_string(htmlspecialchars($_POST['email_v']));
  72.  
  73. /**
  74.   * Sprawdź czy podany przez użytkownika email lub login już istnieje
  75.   */
  76. $existsLogin = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login='$login' LIMIT 1"));
  77. $existsEmail = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE email='$email' LIMIT 1"));
  78.  
  79. $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły
  80.  
  81.  
  82. // Sprawdź, czy nie wystąpiły błędy
  83. if (!$login || !$email || !$pass || !$pass_v || !$email_v ) $errors .= '- Musisz wypełnić wszystkie pola<br />';
  84. if ($existsLogin[0] >= 1) $errors .= '- Ten login jest zajęty<br />';
  85. if ($existsEmail[0] >= 1) $errors .= '- Ten e-mail jest już używany<br />';
  86. if ($email != $email_v) $errors .= '- E-maile się nie zgadzają<br />';
  87. if ($pass != $pass_v) $errors .= '- Hasła się nie zgadzają<br />';
  88.  
  89. /**
  90.   * Jeśli wystąpiły jakieś błędy, to je pokaż
  91.   */
  92. if ($errors != '') {
  93. echo '<p class="error">Rejestracja nie powiodła się, popraw następujące błędy:<br />'.$errors.'</p>';
  94. }
  95.  
  96. /**
  97.   * Jeśli nie ma żadnych błędów - kontynuuj rejestrację
  98.   */
  99. else {
  100.  
  101. // Posól i zasahuj hasło
  102. $pass = user::passSalter($pass);
  103.  
  104. // Zapisz dane do bazy
  105. mysql_query("INSERT INTO users (login, email, pass, adresip) VALUES('$login','$email','$pass','{$_SERVER['REMOTE_ADDR']}');") or die ('<p class="error">Wystąpił błąd w zapytaniu i nie udało się zarejestrować użytkownika.</p>');
  106. echo '<p class="success">'.$login.', zostałeś zarejestrowany.
  107. <br /><a href="login.php">Logowanie</a></p>';
  108. }
  109. }
  110. ?>
  111.  
  112. <form method="post" action="">
  113. <label for="login">Login:</label>
  114. <input maxlength="32" type="text" name="login" id="login" />
  115.  
  116. <label for="pass">Hasło:</label>
  117. <input maxlength="32" type="password" name="pass" id="pass" />
  118.  
  119. <label for="pass_again">Hasło (ponownie):</label>
  120. <input maxlength="32" type="password" name="pass_v" id="pass_again" />
  121.  
  122. <label for="email">Email:</label>
  123. <input type="text" name="email" maxlength="50" id="email" />
  124.  
  125. <label for="email_again">Email (ponownie):</label>
  126. <input type="text" maxlength="255" name="email_v" id="email_again" /><br />
  127.  
  128.  
  129. <input type="hidden" name="send" value="1" />
  130. <input id="zarejestruj" type="submit" value="Zarejestruj" />
  131. </form>
  132. </div>
  133. <aside>
  134. <h2 class="bg">Facebook</h2>
  135. <div class="fb-like-box" data-href="http://www.facebook.com/bundlelistpl" data-width="340" data-height="300" data-colorscheme="light" data-show-faces="true" data-header="false" data-stream="false" data-show-border="false"></div>
  136. <h2 class="bg">Obecne Bundle</h2>
  137. <ul>
  138. <li class="bundle_spis"><a href="#"><img class="bundle_img" src="images/1.png" alt="Humble Bundle with android 7" /><p>Coś tutaj pisze .... to tylko napis</p></a></li>
  139. <li class="bundle_spis"><a href="#"><img class="bundle_img" src="images/1.png" alt="Humble Bundle with android 7" /><p>Coś tutaj pisze .... to tylko napis</p></a></li>
  140. <li class="bundle_spis"><a href="#"><img class="bundle_img" src="images/1.png" alt="Humble Bundle with android 7" /><p>Coś tutaj pisze .... to tylko napis</p></a></li>
  141. <li class="bundle_spis"><a href="#"><img class="bundle_img" src="images/1.png" alt="Humble Bundle with android 7" /><p>Coś tutaj pisze .... to tylko napis</p></a></li>
  142. <li class="bundle_spis"><a href="#"><img class="bundle_img" src="images/1.png" alt="Humble Bundle with android 7" /><p>Coś tutaj pisze .... to tylko napis</p></a></li>
  143. <li class="bundle_spis"><a href="#"><img class="bundle_img" src="images/1.png" alt="Humble Bundle with android 7" /><p>Coś tutaj pisze .... to tylko napis</p></a></li>
  144. </ul>
  145. </aside>
  146. </main>
  147. <div id="fb-root"></div>
  148. <script>(function(d, s, id) {
  149. var js, fjs = d.getElementsByTagName(s)[0];
  150. if (d.getElementById(id)) return;
  151. js = d.createElement(s); js.id = id;
  152. js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
  153. fjs.parentNode.insertBefore(js, fjs);
  154. }(document, 'script', 'facebook-jssdk'));
  155. </script>
  156. <footer>
  157. <div id="copyright"><a href="http://www.bundlelist.pl/">BundleList.pl</a> &copy; 2013. Wszystkie prawa zastrzeżone.</div>
  158. </footer>
  159. </body>
  160. </html>


Może mi ktoś powiedzieć co / gdzie powinienem zrobić, aby dodać aktywację przez e-mail ? aktualnie w bazie mam dodane 2 tabele:
"Klucz_aktywacyjny" - wiadomo o co chodzi
"aktywacja" domyśla wartość 0, jeżeli jest 1 to użytkownik potwierdził konto.
fizzlebubble
Bardzo ładny makaron, aż nabrałem ochoty na pizze tongue.gif. Masz już zaimplementowaną jakąkolwiek logikę aktywacji, czy po prostu pobrałeś gotowy kod i chcesz go rozszerzyć?
rad11
http://www.youtube.com/watch?v=erFZWX9aGUc
com
Naprawdę questionmark.gif
  1. if ($_POST['send'] == 1) {
  2. // Zabezpiecz dane z formularza przed kodem HTML i ewentualnymi atakami SQL Injection
  3. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  4. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  5. $pass_v = mysql_real_escape_string(htmlspecialchars($_POST['pass_v']));
  6. $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
  7. $email_v = mysql_real_escape_string(htmlspecialchars($_POST['email_v']));
  8.  
  9. /**
  10.   * Sprawdź czy podany przez użytkownika email lub login już istnieje
  11.   */
  12. $existsLogin = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login='$login' LIMIT 1"));
  13. $existsEmail = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE email='$email' LIMIT 1"));
  14.  
  15. $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły
  16.  
  17.  
  18. // Sprawdź, czy nie wystąpiły błędy
  19. if (!$login || !$email || !$pass || !$pass_v || !$email_v ) $errors .= '- Musisz wypełnić wszystkie pola<br />';
  20. if ($existsLogin[0] >= 1) $errors .= '- Ten login jest zajęty<br />';
  21. if ($existsEmail[0] >= 1) $errors .= '- Ten e-mail jest już używany<br />';
  22. if ($email != $email_v) $errors .= '- E-maile się nie zgadzają<br />';
  23. if ($pass != $pass_v) $errors .= '- Hasła się nie zgadzają<br />';
  24.  
  25. /**
  26.   * Jeśli wystąpiły jakieś błędy, to je pokaż
  27.   */
  28. if ($errors != '') {
  29. echo '<p class="error">Rejestracja nie powiodła się, popraw następujące błędy:<br />'.$errors.'</p>';
  30. }
  31.  
  32. /**
  33.   * Jeśli nie ma żadnych błędów - kontynuuj rejestrację
  34.   */
  35. else {
  36.  
  37. // Posól i zasahuj hasło
  38. $pass = user::passSalter($pass);
  39.  
  40. // Zapisz dane do bazy
  41. mysql_query("INSERT INTO users (login, email, pass, adresip) VALUES('$login','$email','$pass','{$_SERVER['REMOTE_ADDR']}');") or die ('<p class="error">Wystąpił błąd w zapytaniu i nie udało się zarejestrować użytkownika.</p>');
  42. echo '<p class="success">'.$login.', zostałeś zarejestrowany.
  43. <br /><a href="login.php">Logowanie</a></p>';
  44. }
  45. }


pomógbym ale jak to widze to wychodzę... Nie wiem skad to wziołeś ale ten ktoś to robi dokładnie tak jak tego sie nie robi wiec poszykaj czewgoś lepszego jak sam napisac nie potrafisz smile.gif moze ten tutek z yt pomoże biggrin.gif
NetBeans
Nikt za darmo nie będzie paprał się w tak syfskim kodzie. Napisz w dziale zlecenia.
MrGohut
lol nie wiedziałem że taki syf biggrin.gif Są lepsze kody logowania / rejestracji na necie za free ?
i niby czemu taki syf ? D:
com
nie pisz do mnie na priv, bo on nie jest od tego jak chcesz mieć gotowca z neta to puszukaj, nikt Ci nie powie czy są bo to forum słuzy do tego żeby rozwiazywac problemy własne a nie kogoś kto nie ma pojecia i pisze coś a potem wrzuca do neta i inni co nie maja pojecia to powielaja, prawie taki sam kod pojawił się tu na forum niedawno.. nie bd sie powtarzał, pod frazą logawanie i rejestracja znadziesz 430 tematów tu na forum, wiec tam znajdziesz napewno odp, a jak nie to tak jak napisano zlec komuś i Ci to zrobi wink.gif
Micchaleq
Po co się brać za coś o czym nie ma się kompletnie pojęcia?

fizzlebubble
Bo rozumiem, że Ty gdy zabierałeś się za PHP/* wiedziałeś o tym wszystko. Z wiedzą IT nikt się nie rodzi, tylko nabywa i albo autor wątku się ogarnie i sam zgłębi temat, ale się po prostu podda, who cares.
MrGohut
Ja pierdole że tak się wyrażę, niektórzy chyba wchodzą tu po to aby kogoś dobić. Po diabła teksty typu "po co się za to brać jak się o tym pojęcia nie ma" przecież takiego człowieka to tylko .. ;_;
Ty wszystko od urodzenia umiałeś ? Chyba po to jest forum, aby się spytać / dopytać ....
Taka pomoc.
fizzlebubble
MrGohut nie przejmuj się :-). Co teraz musisz zrobić to po prostu przejżeć jakiś tutorial dot rejestracji/logowania userów (jest tego w CHOLERĘ) i na podstawie wiedzy, której dzięki temu nabędziesz dopisać to czego potrzebujesz. Zasada aktywacji jest prosta, user w bazie ma dodatkową kolumnę, np status lub activated z wartością 0 lub 1 i np jakimś hashem md5. Po jego rejestracji wysyłasz meila do gościa z linkiem np /activate.php?=hash i w samym pliku sprawdzasz który user posiada taki hash i zmieniasz mu status aktywacji z 0 na 1, simple as that :-).
Micchaleq
Cytat(MrGohut @ 11.11.2013, 21:08:56 ) *
Ja pierdole że tak się wyrażę, niektórzy chyba wchodzą tu po to aby kogoś dobić. Po diabła teksty typu "po co się za to brać jak się o tym pojęcia nie ma" przecież takiego człowieka to tylko .. ;_;
Ty wszystko od urodzenia umiałeś ? Chyba po to jest forum, aby się spytać / dopytać ....
Taka pomoc.


Oczywiście po to jest forum aby się dopytać doskonale to ująłeś. Co do mjej osoby może byłem gorszym tłukiem od ciebie, ale jak kopiowałem kogos kod to pierwsze co robiłem to go analizowałem i zastanawiałem się dlaczego tak a nie inaczej to działa. Po czym następnie pisałem od początku po swojemu i wtedy miałem pojęcie gdzie należy coś dodać chcąć dodać jakąś funkcjonalność. Ty za to wrzuciłeś kogoś kod i wymagasz aby ktoś za Ciebie wykonał prace. Albo robisz coś konkretnego z czym masz problem i każdy chętnie Ci pomoże w tym ja ( jeżeli bym umiał ), albo kup dobrą książe i się ucz.
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.