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: (IMG:http://img21.imageshack.us/img21/8743/registerz.jpg) 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ć (IMG:style_emoticons/default/exclamation.gif) 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 (IMG:style_emoticons/default/smile.gif) Jeśli napisałem coś źle od razu pisać. Pozdrawiam Korey Ten post edytował korey 2.02.2010, 19:00:45 |
|
|
|
![]() |
Post
#2
|
|
|
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. |
|
|
|
korey Rejestracja PHP/MySQL + Walidacja 2.02.2010, 15:03:04
blooregard CytatPrzepraszamy rejestracja w tej chwili jest ni... 2.02.2010, 15:13:07
Sandra777 Hmmm formularz wydaje się być ok. ale dlaczego sto... 15.03.2010, 11:20:28
Riklaunim FONT w kodzie HTML, plus takie kluchy kodu już kie... 15.03.2010, 11:27:06 
korey Cytat(Riklaunim @ 15.03.2010, 12:27:0... 5.04.2010, 11:37:03
kipero Jeśli już bardzo chcesz zrobić skrypt formularza r... 17.03.2010, 15:26:48
Croos22 Przepraszam za odświeżanie tematu lecz mam problem... 11.04.2010, 17:38:25
korey Hmm... no dobra to może jakoś opiszesz ten swój pr... 11.04.2010, 21:46:34
Croos22 Mój problem polega na tym, że nie mam zielonego po... 11.04.2010, 22:20:21
korey No wystarczy najprostszy ale możesz tą samą metodą... 12.04.2010, 07:39:37
Croos22 Odwalił pan kawał dobrej roboty.Doceniam to bardzo... 12.04.2010, 14:28:09
korey ech..
jeśli zastosowałeś ten kod do stworzenie Tab... 12.04.2010, 16:46:10
Croos22 [PHP] pobierz, plaintext CREATE DATABASE `baza` DE... 12.04.2010, 18:01:55
korey Hmm... napisałem "jeśli zastosowałeś ten kod... 12.04.2010, 21:41:25 ![]() ![]() |
|
Aktualny czas: 3.02.2026 - 05:00 |