Omniscent Администратор
Брой мнения : 82 Точки : 119 Репутация : 0 Дата на Регистрация : 19.11.2010 Местожителство : България Работа/Хобита : HTML , PHP , JS , C++ / C+ ... Хумор : Студенткъъъъ ;d
| Заглавие: PHP регистрация с база данни Пет Ное 19, 2010 4:07 pm | |
| Първо създаваме база данни, която кръщаваме reg!
CREATE TABLE users (ID MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(60), password VARCHAR(60))
След това създаваме поле за регистрация наречено add.php!
<?php // Connects to your Database mysql_connect("сървър", "акаунт", "парола") or die(mysql_error()); mysql_select_db("база данни") or die(mysql_error());
//Този код се стартира ако формата се изпълни if (isset($_POST['submit'])) {
//това проверява полетата и не продължава ако има някое празно if (!$_POST['username'] | !$_POST['pass'] | !$_POST['pass2'] ) { die('You did not complete all of the required fields'); }
// проверява дали потребителското име не се използва вече if (!get_magic_quotes_gpc()) { $_POST['username'] = addslashes($_POST['username']); } $usercheck = $_POST['username']; $check = mysql_query("SELECT username FROM users WHERE username = '$usercheck'") or die(mysql_error()); $check2 = mysql_num_rows($check);
//ако името вече го има показва грешка if ($check2 != 0) { die('Sorry, the username '.$_POST['username'].' is already in use.'); }
// this makes sure both passwords entered match if ($_POST['pass'] != $_POST['pass2']) { die('Your passwords did not match. '); }
// тук кодираме паролата $_POST['pass'] = md5($_POST['pass']); if (!get_magic_quotes_gpc()) { $_POST['pass'] = addslashes($_POST['pass']); $_POST['username'] = addslashes($_POST['username']); }
// сега въвеждаме данните в базата данни $insert = "INSERT INTO users (username, password) VALUES ('".$_POST['username']."', '".$_POST['pass']."')"; $add_member = mysql_query($insert); ?> <h1>ГОТОВО</h1> <p>Благодаря ви че се регистрирахте, сега може да взелете.</a>.</p>
<?php } else { ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table border="0"> <tr><td>Username:</td><td> <input type="text" name="username" maxlength="60"> </td></tr> <tr><td>Password:</td><td> <input type="password" name="pass" maxlength="10"> </td></tr> <tr><td>Confirm Password:</td><td> <input type="password" name="pass2" maxlength="10"> </td></tr> <tr><th colspan=2><input type="submit" name="submit" value="Register"></th></tr> </table> </form>
<?php } ?>
След това създаваме документ за вход наречен login.php!
<?php // Закача се към базата данни mysql_connect("сървър", "акаунт", "парола") or die(mysql_error()); mysql_select_db("база данни") or die(mysql_error());
//проверява дали потребителя няма сетната бисквитка if(isset($_COOKIE['ID_my_site']))
//ако има ви логва автоматично и ви пренасочва към последно запазената страница { $username = $_COOKIE['ID_my_site']; $pass = $_COOKIE['Key_my_site']; $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error()); while($info = mysql_fetch_array( $check )) { if ($pass != $info['password']) { } else { header("Location: members.php");
} } }
//ако формата е изпълнена if (isset($_POST['submit'])) {
// проверява дали полетата са попълнени if(!$_POST['username'] | !$_POST['pass']) { die('Не сте попълнили нужните полета.'); } // проверява дали има такъв потребител с такава парола
if (!get_magic_quotes_gpc()) { $_POST['email'] = addslashes($_POST['email']); } $check = mysql_query("SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());
//дава гершка ако няма $check2 = mysql_num_rows($check); if ($check2 == 0) { die('Няма такъв потребител в уроци.ком. <a href=add.php>Натиснете тук, за да се регистрирате</a>'); } while($info = mysql_fetch_array( $check )) { $_POST['pass'] = stripslashes($_POST['pass']); $info['password'] = stripslashes($info['password']); $_POST['pass'] = md5($_POST['pass']);
//gives error if the password is wrong if ($_POST['pass'] != $info['password']) { die('Грешна парола, опитайте пак!.'); } else {
// ако всичко е наред сетваме бисквитка $_POST['username'] = stripslashes($_POST['username']); $hour = time() + 3600; setcookie(ID_my_site, $_POST['username'], $hour); setcookie(Key_my_site, $_POST['pass'], $hour);
//след това пренасочва към потребителската секция header("Location: members.php"); } } } else {
// ако не е вече влязъл потребителя ?> <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> <table border="0"> <tr><td colspan=2><h1>Login</h1></td></tr> <tr><td>Username:</td><td> <input type="text" name="username" maxlength="40"> </td></tr> <tr><td>Password:</td><td> <input type="password" name="pass" maxlength="50"> </td></tr> <tr><td colspan="2" align="right"> <input type="submit" name="submit" value="Login"> </td></tr> </table> </form> <?php }
?>
След това създайте документ members.php, където потребителят ще може да влезе след като се логне!
<?php // закача се към базата данни mysql_connect("сървър", "акаунт", "парола") or die(mysql_error()); mysql_select_db("база данни") or die(mysql_error());
//проверява дали има сетната бисквитка, за да потвърди дали сте логнати if(isset($_COOKIE['ID_my_site'])) { $username = $_COOKIE['ID_my_site']; $pass = $_COOKIE['Key_my_site']; $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error()); while($info = mysql_fetch_array( $check )) {
//ако бисквитката има грешна парола ви пренасочва към входа if ($pass != $info['password']) { header("Location: login.php"); }
//иначе показва секцията за регистрирани потребители else { echo "Admin Area<p>"; echo "Your Content<p>"; echo "<a href=logout.php>Изход от uroci.com</a>"; } } } else
//ако въобще няма бисквитка ви пренасочва към страницата за вход { header("Location: login.php"); } ?>
След това създайте документ logout.php, чрез който потребителят ще може да излиза от acc-то си!
<?php $past = time() - 100; //това унищожава бисквитката setcookie(ID_my_site, gone, $past); setcookie(Key_my_site, gone, $past); header("Location: login.php"); ?> | |
|