Хочу разобраться с модулями!
Тут писал.. если поможет то в перед..
Написано для ламеров)
Для начала найдем хостинг с php и mysql , лучше установится на локальную машину.. для новичков советую денвер (там и php mysql perl)
Создание БД
Заходим в mysql...............Создаем бд с именем 'site'
Пишем sql код:
Код:
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(30) collate utf8_unicode_ci NOT NULL,
`pass` tinytext collate utf8_unicode_ci NOT NULL,
`email` tinytext collate utf8_unicode_ci NOT NULL,
`icq` int(9) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
config.php
Создаём файл config.php - здесь поместим код соединения к бд, логин, таблицу, пасс и прочее
Например:
Код:
<?php
// Адрес сервера MySQL
$dbhost = "localhost";
// Имя пользователя базы данных
$dbuser = "root";
// и его пароль
$dbpass = "password";
// Имя базы данных, на хостинге или локальной машине
$dbname = "site";
$db = @mysql_connect($dbhost, $dbuser, $dbpass);
if (!$db)
{
exit ("
Сервер базы данных не доступен</P>" );
}
if (!@mysql_select_db($dbname, $db))
{
exit( "
База данных не доступна</P>" );
}
?>
index.php
Теперь создаём главную страницу сайта, а именно index.php.....
register.php
Создаем страницу регистрации.....
Давайте сделаем обязательные поля :
name, pass, email
и простое поле icq .......
Код:
<html>
<head><title>Регистрация</title></head>
<body>
<form method="post">
<table>
<tr><td>Имя*:</td></tr>
<tr><td><input type="text" name="name" /></td></tr>
<tr><td>Пароль*:
<input type="password" name="pass" /></td><td style="width: 20;"></td>
<td>Повторите пароль*:
<input type="password" name="repass" /></td></tr>
<tr><td>E-mail*:</td></tr>
<tr><td><input type="text" name="email" /></td></tr>
<tr><td>Icq:</td></tr>
<tr><td><input type=text name="icq" maxlength="9" /></td></tr>
<tr><td><input type="submit" title="Регистрация" name="reg" value="Регистрация" /></td></tr>
</table>
</form>
<?php
if($reg) {
//Ставим слешы перед кавычками(на всякий случай:) и удаляем пробелы в конце строк
$_POST['name'] = trim(addslashes($_POST['name']));
$_POST['pass'] = trim(addslashes($_POST['pass']));
$_POST['repass'] = trim(addslashes($_POST['repass']));
$_POST['email'] = trim(addslashes($_POST['email']));
$_POST['icq'] = intval($_POST['icq']);
// Проверяем, правильно ли заполнены обязательные поля
if(empty($_POST['name']) && !isset($_POST['name']))
exit ("Заполните поле 'Имя' ");
if(empty($_POST['pass']) && !isset($_POST['pass']))
exit("Заполните поле 'Пароль' ");
if(empty($_POST['repass']) && !isset($_POST['repass']))
exit("Заполните поле 'Повторите пароль' ");
if($_POST['pass'] != $_POST['repass'])
exit("Пароли не совпадают");
//Проверяем введеные данные в форму
if(!empty($_POST['icq'])) {
if(!is_numeric($_POST['icq']))
exit("ICQ состоит из цифр :)");
if( strlen($_POST['icq']) < 5 || strlen($_POST['icq']) > 9)
exit("Поле 'ICQ' должно содержать от 5 до 9 символов);
}
// Проверяем email на соответствие
if(!empty($_POST['email'])) {
if(!preg_match("|^[-0-9a-z_]+@[-0-9a-z_]+.[a-z]{2,6}$|i", $_POST['email']))
exit("E-mail должен быть в формате 'billy@micrsoft.com' ");
}
//==========================================================================//
// Устанавливаем соединение с базой данных
require_once("config.php");
// Проверяем, не было ли переданное имя зарегистрировано ранее
$query = "SELECT COUNT(*) FROM users WHERE name = '$_POST[name]'";
$regnme = mysql_query($query);
if(!$regnme) exit("Ошибка - ".mysql_error());
$resn = mysql_result($regnme, 0);
if($resn > 0) exit("Такое имя уже есть");
//Выполняем sql запрос на регистрацию юзера
$_POST['pass'] = md5($_POST['pass']);
$query = "INSERT INTO users VALUES(NULL, '$_POST[name]', '$_POST[pass]', '$_POST[email]', '$_POST[icq]')";
//Если регистрация прошла успешно, то перенаправляем на главную страницу
if(mysql_query($query)) {
echo "Регистрация успешно завершена";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
} else {
exit("Ошибка при добавлении данных - ".mysql_error());
}
enter.php
В этом файле разместим код авторизации пользователя
Код:
<?php
session_start();
?>
<form method='post'>
Имя :
<input type='text' name='name' value='$_SESSION[name]' />
Пароль :
<input type='password' name='password' value='$_SESSION[password]' />
<input type='submit' value='Войти' title='Войти' />
</form>
<?php
//Если поля не пустые, производим попытку входа
if(!empty($_POST['name']) && !empty($_POST['password']))
{
// Устанавливаем соединение с базой данных
require_once("config.php");
// Осуществляем запрос, который возвращает
// число записей, удовлетворяющих паролю
// и логину
$_POST['password'] = md5($_POST['password']);
$query = "SELECT COUNT(*) FROM users WHERE name = '$_POST[name]' AND pass = '$_POST[password]'";
$autnme = mysql_query($query);
if(!$autnme) exit("Ошибка");
// Получаем число записей
if(mysql_result($autnme, 0) > 0)
define("TOTAL", 1);
}
if(defined("TOTAL")) {
$_SESSION['name'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];
}
// Если посетитель "вошел" - перенаправляем его
if(isset($_SESSION['name']) && isset($_SESSION['password'])) {
echo "<html><head>
<meta HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</head><body>";
} else {
echo("Неверный пароль");
echo "<html><head>
<META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'>
</head><body>";
}
//Если юзер выходит - удаляем сессию
if($_GET['do'] == 'logout'){
session_destroy();
echo "<html><head>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</head><body>";
}
users.php
Создаем файл users.php, где будут выводиться уже зарегистрированные пользователи...
ЗЫ: советую почитать матерьялы с softtime.ru (суперский форум!), phpfaq.ru , megalib.com ....ну и гугле рулит