Форум, работающий с базой данных MySQL
Регистрация пользователя в БД
Далее пойдет чистый PHP и HTML.
Сгенерируем форму для регистрации:
<h2 alignОnter><font color="ff0000">Registration.</font></h2>
<p><font face="serif" size=2> Please,fill in the form below.
<p>You may use only english chars in your name,and name's length should be not less than 3 and
not more than 15 characters.
<br>Remember:all form fields are case sensitive.It means the names <font face="arial" size=2
color="0000ff">name</font> and <font face="arial" size=2 color="0000ff">Name</font>
are different.
<p>Password's length should be not less than 6 characters.<br>
Don't forget to enter your e-mail address, you may need it if you'll forget your password.
<p><FORM ACTION="" METHOD="POST" name="reg">
<p align=right><a href="">Home</a>
<center><TABLE BGCOLOR="bfbfbf">
<tr><td colspan=2> </td></tr>
<tr><TD><b>Login:</b><TD> <INPUT TYPE="text" NAME="login" SIZE="20" maxlength="15" >
<tr><TD><b>Password:</b><TD> <INPUT TYPE="password" NAME="pass" SIZE="20" onFocus="is_ValidLogin (this.form.login.value)";return true>
<tr><TD><b>Verify password:</b><TD> <INPUT TYPE="password" NAME="verpass" SIZE="20" onFocus="is_ValidPass (this.form.pass.value)";return true>
<tr><TD><b>E-mail:</b><TD> <INPUT TYPE="text" NAME="email" SIZE="20" onFocus="verPasswd ()";return true>
<tr><td colspan=2><input type="hidden" name="action" value="register">
<tr><td colspan=2><input type="hidden" name="verify" value="ok">
<tr><TD colspan=2><p><center> <INPUT TYPE="submit" name="submit" VALUE="Submit" onMouseOver="true_Email (this.form.email.value)";return true></center>
<tr><td colspan=2>
</table>
</form>
Если что-то пока непонятно-посмотрите полный
код. Функции, использованные в форме, служат для проверки
информации, введенной пользователем. Далее, нужно обработать данные. Для
соединения с БД используется функция mysql_connect ().Поскольку
соединяться с БД придется не раз, я вынес все данные в функцию connect()
function connect () {
$hostname="localhost:3306";
$user="root";
$password="ваш пароль";
$db="forum";
mysql_connect ($hostname,$user,$password);
$request=mysql_select_db ($db);
if (!mysql_connect) {
echo "Error: ".mysql_error ();
}
}
Эта функция подключает базу данных и проверяет наличие ошибок
соединения. Теперь можно получить и обработать данные пользовательского
ввода.
if ($action=="register") {
connect ();
if ($verify) {
$query="select id from info where name='$login'"; // Запрос к БД.
$result=mysql_query ($query);
if (mysql_num_rows ($result)) { // Проверяем,не существует ли уже такой пользователь.
print_header ();
echo "<p alignОnter><b>Error!</b>";
echo "<p>Name <b>".$login."</b> already exists.Please, go back and choose another name.";
?>
<p><center><a href="?action=register">Go back</a></center>
<?php
} else {
// Если все ОК вставляем данные в таблицу info.
$query="insert into info (name,password,email) values ('$login','$pass','$email')";
$result=mysql_query ($query);
// Говорим пользователю спасибо и распечатываем информацию.
print_header ();
echo "<h3 alignОnter>Thank you,<font color='ff0000'>".$login."!</font></h3>";?>
<p>You are successfuly registered and your information added to our database.
<p>Please,remember your information.Only registered users may post messages and replies.
<p><font face='arial' size=2 color='0000ff'>Your login:</font>
<font face='arial' size=2 color='ff0000'></font><br>
<font face='arial' size=2 color='0000ff'>Password:</font>
<font face='arial' size=2 color='ff0000'></font><br>
<font face='arial' size=2 color='0000ff'>E-mail:</font>
<font face='arial' size=2 color='ff0000'></font>
<p>Good luck!
<center><a href="">| Go to topics</a> |
<a href="?actiond_new_top"> Post new topic</a> |</center>
<?php
}
}
Функция print_header() - это заголовок html-страницы. Она тоже
использована для уменьшения количества кода.
function print_header () {
?>
<html><head><title>Forum version 1.1</title>
</head><style> A:link {font-family:arial;font-size:10pt;text-decoration:none;color:#0000ff;}
A:hover {font-family:arial;font-size:10pt;text-decoration:none;color:red;}";
A:visited {font-family:arial;font-size:10pt;text-decoration:underline;color:#0000ff;}
BODY {background-color:#e6e8fa;font-family:arial;font-size:10pt;color:#333300;}
TD {font-family:arial;font-size:10pt;color:#333300;}
H2 {text-align:center;color:blue;}
</style><body>
<?php
}
Ну вот и все. Пользователь зарегистрирован и может помещать сообщения в форуме.
[Назад] [Содержание] [Вперед]
Автор: OlegTr
Источник: www.zk.ru/alextr/
|