Показать сообщение отдельно

  #3941  
Старый 05.07.2008, 19:24
Jer1cho
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
С нами: 9436713

Репутация: 244
По умолчанию

Цитата:
Сообщение от MafiaBoy3  
Как мне сделать регистрацию на сайте?
Может у кого нибудь есть готовые скрипты (готовые решения на php) для реализации:
Регистрации пользователя, входа и выхода пользователя (логина, логаута).

PS: GOOGLE не помог выдал треш, да и готовых решений совсем не было, статьи на эту тему безобразные.
Вобщем делать мне было не чего =), написал два небольших скрипта, ошибок в них куча но всеже:
Файл register.php:
PHP код:
<html>
    <head><title>Регистрация</title></head>
    <body><p align="left"><?php    session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
    <form method="post" action="">
    <table cellspacing="0" border="0" align="center">
    <tr><td>Имя: <input type="text" name="name"></td></tr>
    <tr><td>Пароль: <input type="password" name="password"></td></tr>
    <tr><td>E-Mail: <input type="text" name="email"></td></tr>
    <tr><td><input type="submit" value="Зарегистрироваться" name="doit"></td></tr>
    </tr>
    </table>
    </form>
<?php
    
include('cfg.php');
    
session_start();
$name = mysql_escape_string($_POST['name']);
$pwd = mysql_escape_string($_POST['password']);
$email = mysql_escape_string($_POST['email']);
if(
$_POST['doit']){
  
$r = mysql_query("SELECT * FROM `users` ORDER by `id`");
  
$n = mysql_num_rows($r);
  if(
$n > 0)
  {
   for(
$i = 0; $i < $n; $i++)
   {
    
$row = mysql_fetch_array($r);
   }}
    
$id = $row['id'] + 1;

    
$q = "INSERT INTO `users` VALUES($id,'".$name."','".$pwd."','".$email."')";
    if(
mysql_query($q))
    {
            echo 
'<script>alert("Регистрация завершена.");</script>';
    } else { exit(
'Error'.mysql_error()); }
}
?>
    </body>
</html>
Файл login.php:
PHP код:
<html>
    <head>
    <title>Авторизация</title>
    </head>
    <body><p align="left"><?php    session_start(); if($_SESSION['login']){ echo 'Вы вошли как:'.$_SESSION['login'].' <a href="./login.pph?mode=logout">Logout</a>'; } else { echo 'Вы не выполнили <a href="./login.php">вход</a>.'; } ?></p>
    <form method="post" action="">
    <table cellspacing="0" border="0" align="center">
    <tr><td>Логин: <input type="text" name="login"></td></tr>
    <tr><td>Пароль <input type="text" name="password"></td></tr>
    <tr><td><input type="submit" name="doit"></td></tr>
    </table>
    </form>
    </body>
</html>
<?php
    
include('cfg.php');
    
$login = mysql_escape_string($_POST['login']);
    
$pwd = mysql_escape_string($_POST['password']);


if(
$_GET['mode']=='logout')
{
setcookie('name', '');
setcookie('password', '');
session_destroy();
echo 
"Вы вышли.";
}
if(
$_POST['doit'])
{
$q = "SELECT * FROM `users` WHERE `username` = '".$login."' AND `userpassword` = '".$pwd."'";
$r = mysql_query($q);
if(
mysql_num_rows($r))
{
$_SESSION['login'] = $login;
$_SESSION['pwd'] = $pwd;
setcookie('name', $_SESSION['login'], time()+ 86400 * 30 * 12, '', false, 0);
setcookie('password' , $_SESSION['pwd'], time()+ 86400 * 30 * 12, '', false, 0);
} else { echo 
'Неверный пароль/логин. '; }
}
?>
cfg.php:
PHP код:
<?php
    error_reporting
('0');
    
$mysqlc    = mysql_connect('localhost','root','test');
    if(!
$mysqlc){ die(mysql_error()); }
    
mysql_select_db('data');
?>
Думаю объяснять что каждый срипт делает не надо.

Создаш БД data, выполнишь этот запрос:
PHP код:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `users` (
  `
id` int(10) NOT NULL,
  `
username` varchar(15) NOT NULL,
  `
userpassword` varchar(20) NOT NULL,
  `
useremail` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `users` (`id`, `username`, `userpassword`, `useremail`) VALUES
(1, 'test', 'test', 'test@gmail.com'); 
первый пользователь это test c паролем test

Думаю принцип поймешь, если разбираешся и дaльше сам уже...
 
Ответить с цитированием