![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio napisałem ciekawy i prosty skrypt'cik do rejestracji opierający się na PHP i MySQL.
Skrypt rejestracji składa się z 4 pól: Login, Hasło, Powtórz Hasło i E-Mail. Jego zadaniem jest Określić:
- Czy wpisywane informacje mają odpowiednią ilość znaków, - Czy pola Hasło i Powtórz Hasło są takie same, - Czy Login I adres E-Mail nie są już zajęte. Gdy zostanie to zrobione i któryś z powyższych warunków nie zostanie spełniony, bądź tez pole zostanie uzupełnione poprawnie, zostaniemy o tym poinformowani. W praktyce będzie wyglądać to tak: ![]() Aby osiągnąć taki efekt należy użyć następujących kodów: ZAPYTANIE MySQL: Kod -- -------------------------------------------------------- -- -- Tworzymy Baze danych o nazwie BAZA -- Baza danych: `baza` -- CREATE DATABASE `baza` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `baza`; -- -- -------------------------------------------------------- -- -- Tworzymy tabele Która będzie Składować konta nowych urzytkowników -- Struktura tabeli dla `users` -- CREATE TABLE `users` ( `user_id` tinyint(10) unsigned NOT NULL auto_increment, `user_name` varchar(13) collate latin1_general_cs NOT NULL, `user_password` varchar(40) collate latin1_general_cs NOT NULL, `user_password_short` varchar(17) collate latin1_general_cs NOT NULL, `user_email` text collate latin1_general_cs NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=3; -- -- -------------------------------------------------------- Teraz kolej na Sam Skrypt: PLIK REJESTRACJA.PHP: Kod <?php include ('includes/config_includes.php'); // Odniesienie Do pliku który łączy nas z DB //jesli byl wyslany formularz przechodzimy do obsługi danych if(isset($_POST['wyslij'])) { //Obrabiamy wszystkie zmienne przekazane metodą POST foreach ($_POST AS $klucz => $wartosc) { $wartosc= trim($wartosc);//usuwamy białe znaki if (get_magic_quotes_gpc()) $wartosc= stripslashes($wartosc); $wartosc=htmlspecialchars($wartosc, ENT_QUOTES); $_POST[$klucz]=$wartosc; } $login=$_POST['login']; $haslo=$_POST['haslo']; $re_haslo=$_POST['re_haslo']; $email=$_POST['email']; $blad_txt=''; $blad=false; //Sprawdzamy czy użytkownik o danym Loginie nie jest juz zajęty $zapytanie_sprawdz_usera= "select * from users where user_name='$login' "; $wynik = mysql_query($zapytanie_sprawdz_usera); if(!$wynik) { echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej .'; exit; } if(mysql_num_rows($wynik)>0) { $sprawdz_login=1; } // Sprawdzamy czy adres email sie nie powtarza. $zapytanie_sprawdz_email= "select * from users where user_email ='$email' "; $wynik_email = mysql_query($zapytanie_sprawdz_email); if(!$wynik_email) { echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej .'; exit; } if(mysql_num_rows($wynik_email)>0) { $sprawdz_email=1; } //sprawdzamy czy poprawnie jest wypełnine pole login if(empty($login)){ $info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>'; $blad=true; } else if($sprawdz_login==1){ $info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Login o takiej nazwie już istnieje.</font>'; $blad=true; } else if(strlen($login)<5){ $info_txt_nick.='<font color="#B20000">Login jest za krótki.</font>'; $blad=true; } else if(strlen($login)>12){ $info_txt_nick.='<img src="x.gif" /> <font color="#B20000"> Nie poprawna nazwa loginu, max 12 znaków.</font>'; $blad=true; } else{ $info_txt_nick.='<img src="v.gif" /> <font color="#207C07"> OK.</font>'; } //sprawdzamy czy jest prawidlowe haslo if(empty($haslo)){ $info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>'; $blad=true; } else if(strlen($haslo)<=6) { $info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Hało jest za krótkie.</font>'; $blad=true; } else if(strlen($haslo)>16){ $info_txt_haslo.='<img src="x.gif" /> <font color="#B20000"> Hasło może składać sie z Max 16 znaków.</font>'; $blad=true; } else{ $info_txt_haslo.='<img src="v.gif" /> <font color="#207C07"><b> OK.</b></font>'; } //sprawdzamy czy jest 2 hasło if(empty($re_haslo)){ $info_txt_re_harlo.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>'; $blad=true; } else if($haslo != $re_haslo){ $info_txt_re_harlo.='<img src="x.gif" /> <font color="#B20000"> Hała muszą być takie same.</font>'; $blad=true; } else{ $info_txt_re_harlo.='<img src="v.gif" /> <font color="#B20000"><font color="#207C07"> OK.</font>'; } //sprawdzamy czy jest podany prawidłowy adres e-mail if(empty($email)){ $info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Pole nie zostało wypełnione.</font>'; $blad=true; } else if($sprawdz_email==1){ $info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Adres email o takiej nazwie już istnieje.</font>'; $blad=true; } else if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)){ $info_txt_email.='<img src="x.gif" /> <font color="#B20000"> Adres email jest nie prawidłowy.</font>'; $blad=true; } else{ $info_txt_email.='<img src="v.gif" /> <font color="#207C07"> OK.</font>'; } if(!$blad) { //poprawne dane - robmy z nimi co trzeba (zapisujemy do bazy danych itp.) $pokaz_form=true; // Wysyłamy zapytanie do bazy danych $zapytanie_add_user = "INSERT INTO `users` values(NULL, '".$login."', '".sha1($haslo)."', '".$haslo."', '".$email."')"; // Odpowiedz $odpowiedz = mysql_query($zapytanie_add_user); if($odpowiedz > 0){ echo 'Rojestracja przebiegła pomyślnie do konca.<br /><ul><li>Twój nick to: '.$login.'</li><li>haslo: '.$haslo.'</li><li>re_haslo: '.$re_haslo.'</li><li>email: '.$email.'</li></ul>'; } else{ $pokaz_form=false; echo 'Problem z MySQL.'; } } else { //cos jest zle – wyświetlamy stosowne komunikaty // echo $blad_txt; $pokaz_form=false; } } else { //wypelniamy zmienne pustymi danymi jesli formularz nie został jeszcze wysłany $login=''; $haslo=''; $re_haslo=''; $email=''; } //wyswietlamy formularz if($pokaz_form!=true){ ?> <style> table.form{ margin-left: 120px; font-size: 12px; } td.title{ vertical-align: bottom; text-align: right; } td.info{ vertical-align: bottom; text-align: left; } </style> <form action="<? $_SERVER['PHP_SELF']; ?>" method="POST"> <table class="form" name="form" border="0px" cellpadding="3px" cellspacing="0px"> <tbody> <tr> <td style="width:80px;"></td> <td>REJESTRACJA</td> </tr> <tr> <td class="title">Login:</td> <td class="info"> <input type="text" name="login" value="<? echo $login; ?>"> <? echo $info_txt_nick; ?> </td> </tr> <tr> <td class="title">Hasło:</td> <td class="info"> <input type="text" name="haslo" value="<? echo $haslo; ?>"> <? echo $info_txt_haslo; ?> </td> </tr> <tr> <td class="title">Powtórz Hasło:</td> <td class="info"> <input type="password" name="re_haslo" value="<? echo $re_haslo; ?>"> <? echo $info_txt_re_harlo; ?> </td> </tr> <tr> <td class="title">E-Mail:</td> <td class="info"> <input type="text" name="email" value="<? echo $email; ?>"> <? echo $info_txt_email; ?> </td> </tr> <tr> <td> </td> <td> <input type="submit" name="wyslij" value="Wyślij" /> <input type="button" value="wyczyść" class="clean" onclick="window.location='<? $_SERVER['PHP_SELF']; ?>' "/> </td> </tr> </tbody> </table> </form> v2.0 <? } else{ return false; } ?> Zawartość pliku config_includes.php Kod <?php include ('cfg/database_cfg.php'); //połączenie z bazą danych ?> Zawartość pliku database_cfg.php Kod <?PHP /* ============================= ===== Database Settings ===== ============================= */ ######## DO EDYCJI ######## $MySQL['serv'] = 'localhost'; // Serwer/Host DB MySQL $MySQL['user'] = 'root'; // Nazwa użytkownika DB MySQL $MySQL['pass'] = ''; // Hasło DB MySQL $MySQL['db'] = 'baza'; // Nazwa DB MySQL ####################### // NIE Ruszać ![]() mysql_connect($MySQL['serv'],$MySQL['user'],$MySQL['pass']) or die("Nie mozna polaczyc sie z Serverem SQL: ".mysql_error()); mysql_select_db($MySQL['db']) or die("Nie mozna połączyc sie z baza MySQL: ".mysql_error()); /* ================================= ===== End Database Settings ===== ================================= */ ?> All 100$ by Me Mam nadzieję że komuś sie to może przyda ![]() Jeśli napisałem coś źle od razu pisać. Pozdrawiam Korey Ten post edytował korey 2.02.2010, 19:00:45 -------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej Bardzo wiele mówiący komunikat, szczególnie w przypadku wybrania istniejącego juz loginu. Później login będzie juz wolny? Jakoś skonkretyzuj te komunikaty. -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]() ![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No więc jeśli wpisywany login znajduje się w DB od razu dostajemy komunikat który informuje ze podany nick jest już zajęty. jeśli wpiszemy jakiś inny nick który spełnia wszystkie "kryteria", Formularz poinformuje nas pisząc OK obok.
Do Cytat echo 'Przepraszamy rejestracja w tej chwili jest nie mozliwa. Prosze spróbowac pozniej .'; możemy dopisać np: "problem z zapytaniem MySQL" i ewenrualnie dodać link raportujący błąd. -------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 15.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm formularz wydaje się być ok. ale dlaczego stosujesz kodowanie latin1 zamiast latin2?
Piszesz z polskimi literkami (ąęść...) a kodowanie latin1 chyba nie jesteś autorem tego formularza? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
FONT w kodzie HTML, plus takie kluchy kodu już kiedyś przerabiano. Logowanie od ziutka, newsy na TXT od zdziśka, arty od cześka na drugiej bazie i jakoś to kleimy. Przy obecnym poziomie i możliwościach frameworków, nawet tych prostych systemy logowania, autoryzacji, czy inne komponenty to nie problem, a i wykorzystać istniejące bez strachu i problemów można.
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 50 Dołączył: 28.10.2006 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
Jeśli już bardzo chcesz zrobić skrypt formularza rejestracyjnego, to może pobaw się w pisanie klas, które będą odpowiedzialne za wygenerowanie i przetwarzanie formularza, filtrację danych. To co pokazałeś nie jest zbyt praktyczne.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
FONT w kodzie HTML, plus takie kluchy kodu już kiedyś przerabiano. Logowanie od ziutka, newsy na TXT od zdziśka, arty od cześka na drugiej bazie i jakoś to kleimy. Przy obecnym poziomie i możliwościach frameworków, nawet tych prostych systemy logowania, autoryzacji, czy inne komponenty to nie problem, a i wykorzystać istniejące bez strachu i problemów można. kipero: Co do klas. Hmm.. może zaprezentuj mi jakąś klase tego typu, bo tak szczerze to nie bylo mnie na lekcjach o tym ![]() Riklaunim: No to teraz wyobraź sobie że nie każdy zaczyna robić stronki z zaawansowanego poziomu PHP i frameworków. Jeśli uważasz ze posiadasz wystarczająca wielką wiedzę na ten temat to może po prostu napisz coś mądrego od siebie na ten temat, ewentualnie jakiś skrypcik logowania/rejestracji. Napisałem to dla tyk którzy nie są jeszcze geniuszami programowania. Sandra777: co do latin1 to tak szczerze nie wiem czemu wybrałem takie a nie inne ![]() ![]() Pozdrawiam Korey -------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam za odświeżanie tematu lecz mam problem z dostosowaniem tej rejestracji do jakiego kol wiek systemu logowania.Czy mógłby ktoś napisać taki skrypt?Zależy mi na tym aby był dobrze zabezpieczony.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Hmm... no dobra to może jakoś opiszesz ten swój problem.?
-------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mój problem polega na tym, że nie mam zielonego pojęcia jak i jaki skrypt logowania dodać do tego ów skryptu rejestracji.Zależy mi na bezpieczeństwie.Sporo czytałem o SQL Injection i o sesjach.
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No wystarczy najprostszy ale możesz tą samą metodą co rejestracje:
Napisałem Ci moją propozycje: Myślę ze nie jest najgorsza ![]()
Mam nadzieje ze pomogłem -------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Odwalił pan kawał dobrej roboty.Doceniam to bardzo.
Tylko mam problem zdaje się z połączeniem.
`TWOJA_TABELA` - users? Czyli tabelka o takiej nazwie co stworzyłem przy rejestracji? `login` - Nazwa użytkownika - MySQL? `haslo` - jak sama nazwa wskazuje hasło Jestem pewien, że coś w tej linijce źle wpisuje ponieważ sam błąd o tym mówi.on line 40 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
ech..
jeśli zastosowałeś ten kod do stworzenie Tabeli z użytkownikami:
Przerób tę linijke na:
-------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 4 Dołączył: 22.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 14.08.2009 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Hmm... napisałem "jeśli zastosowałeś ten kod" nie kazałem Ci go ponownie używać.. SQL wywala Ci błąd bo pewnie juz taką baze posiadasz.. poze pierw poczytaj jakies podstawy php i MySQL a potem zadawaj pytania. bo odnoszę wrażenie ze wgl nie masz pojęcia o czym pisze.
-------------------- ”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp, Stąpaj lekko, gdyż stąpasz po mych marzeniach„ |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 02:11 |