![]() |
![]() |
![]() ![]()
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„ |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.07.2025 - 09:39 |