Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Базы данных -> MySQL -> Перенос базы данных MySQL


Перенос базы данных 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