Перенос базы данных MySQL
Для работы форума необходим веб-сервер Apache с поддержкой PHP и база данных MySQL.
Скрипт forum.php3 помещается в каталог /usr/local/apache/htdocs.
Начало
Прежде,чем начать рассмотрение практического применения PHP,нужно войти в MySQL
как администратор и создать базу данных,в которой будет храниться вся
информация.
Создаем базу данных forum.
mysqladmin -u root -p create forum;
use forum;
Создаем 3 таблицы в базе данных forum.В них будет
записываться вся информация.
create table info (
id int (4) not null auto_increment primary key,
name varchar (15) not null,
password varchar (15) not null,
email varchar (40) not null,
posts int (4) default '0',
key (name),key (password));
create table topics (
top_id int (4) not null auto_increment primary key,
top_name varchar (255) not null,
name varchar (15) not null,
message text not null,
replies int (4) default '0',
post_date datetime default '0000-00-00 00:00:00',
last_reply datetime default '0000-00-00 00:00:00',
key (top_name),key (name));
create table replies (
name varchar (15) not null,
top_name varchar (255) not null,
reply text not null,
reply_date datetime default '0000-00-00 00:00:00',
key (name),key (top_name));
Регистрация пользователя в БД
Далее пойдет чистый PHP и HTML.
Сгенерируем форму для регистрации:
<h2 align=center><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=center><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=center>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 |