[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: оцените скрипт
maxfr
Внесите свои замечания!
PHP
<?php
/*
*  Класс для работы c БД
*  @author maxFrolov
*/
class db{
    private 
$dbConnect
            
$dbSelect,
            
$dbHost "localhost",
            
$dbUser "root",
            
$dbPass ""
            
$dbName "sait";
    
    public     
$tbName
            
$tbselect
            
$tbrow;
    function 
__construct()
    {
        
$this->dbConnect=$dbConnect;
        
$this->dbSelect=$dbSelect;
        
$this->dbHost=$dbHost;
        
$this->dbPass=$dbPass;
        
$this->dbUser=$dbUser;
    }
    function 
dbConSel($dbName)
    {
        
$this->dbName=$dbName;
        
$this->dbConnect mysql_connect("localhost","root","");
        
$this->dbSelect mysql_select_db($this->dbName$this->dbConnect);
        if (!
$this->dbSelect)
            {  
                die(
'Could not connect: ' mysql_error());    
            } 
        else
            {
                
mysql_query('SET character_SET_client=utf8';'SET character_SET_results=utf8';'SET collation_connection=utf8_general_ci';'SET NAMES UTF-8');
            }
    }
}
/*
*  Класс для работы пользователя
*  @author maxFrolov
*/
abstract class User
{
    private 
$id;
    private 
$name;
    private 
$IpAddress;
    
    function 
login($login)
    {
        
$this->login $login;
        return 
$this->login;
    }    
    function 
password($password)
    {
        
$this->password $password;
        return 
$this->password;
    }    
    function 
email($email)
    {
        
$this->email $email;
        return 
$this->email;
    }
    
    private 
$login;
    private 
$password;
    private 
$email;

    
#функции 
    
public function addMess($commnetMessages)
      {
            if (
$commnetMessages != NULL)
            {
                 
$this->commnetMessages $Commnet_messages;
              
                 
mysql_query('INSERT INTO `comment` (`id`, `ip`, `comment_id`, `messaga`) VALUE ('.$this->id.', '.$_SERVER['REMOTE_ADDR'].', '.$this->commentId.', '.$this->commnetMessages.')');

                
$this->commentId mysql_insert_id();
                   return 
$this->commentId;
            }
            
                
       }
    public function 
getName($user)
    {        
        
$this->name $name;
        
#запрос в БД для того что бы получить имя пользователя по его id
        
$result mysql_query('SELECT * FROM `user` WHERE `id`="'.$id.'" LIMIT 1');
        if (!
$row mysql_fetch_assoc($result)) 
        {
            unset(
$this->id)    
            return 
true;
        }
        else
        {
            
$this->name$row['name']
            return 
$this->name;
        }

    }
    function 
getIpAddress($commentId)
    {
        
$this->IpAddress $IpAddress;
        
# ip пользователя оставившего сообщение по его id
        
$result mysql_query('SELECT `ip` FROM `user` WHERE `id`="'.$commentId.'" LIMIT 1');
        if (!
$row mysql_fetch_assoc($result)) 
        {
            unset(
$this->id)    
            return 
true;
        }
        else
        {
            
$this->ip$row['ip'];
            return 
$this->ip;
        }
    }
}
/*
*  Класс для работы Модератора
*  @author maxFrolov
*/
class Moderator extends User
{  
      
fucntion __construct()
        {
    
        }
        
#функции модератора ( редактирование,удаление сообщения)
      
public function editMessa($commnetMessages)
        {
            if (!isset(
$this->commentId) OR !$this->commentId)
                return 
false;
            
            
$this->commnetMessages $commnetMessages;
            
            
mysql_query('UPDATE `commnet` SET `message`='.$this->commnetMessages.' WHERE `Comment_id`="'.$this->commentId.'" LIMIT 1');
            
            return 
true;
        }
        
#удаление сообщения
         
public function delMessa()
        {
            if (!isset(
$this->commentId) OR !$this->commentId)
                return 
false;
                
            
mysql_query('DELETE FROM `comment` WHERE `Comment_id`="'.$this->commentId.'" LIMIT 1');
            return 
true;
  
        }
        
        
#удаление пользователя
        
public function delUser()
        {
            if (!isset(
$this->id) OR !$this->id)
                return 
false;
                
            
mysql_query('DELETE FROM `user` WHERE `id`="'.$this->id.'" LIMIT 1');
            return 
true;
        }
}
/*
*  Класс для работы Гостя
*  @author maxFrolov
*/
Class Guest extends User
    
{
      
fucntion __construct()
        {
            
        }
        
#функции гостя
        
public function howmuch()
        {
            if (!empty(
$HTTP_COOKIE_VARS["count"]))
            {
            
$howmuch $HTTP_COOKIE_VARS["count"];
            
$ip $_SERVER['REMOTE_ADDR'];
            }
            else
            {
                
$howmuch 0;
            };
            
$howmuch++;
            
setcookie("count",$howmuch,time() + 3600);
            if (isset(
$howmuch))
            {
        
#добавляем в столбик по id запись count 
            
$this->howmush $howmuch;
            
$this->ip $ip;
            
mysql_query('UPDATE `guest` SET `count`='.$this->howmush.', `ip` = '.$this->ip.' WHERE `guest_id`="'.$this->guest_id.'" LIMIT 1');
            return 
true;
            }
        }

    }
/*
*  Класс для работы Администратора
*  @author maxFrolov
*/    
Class Admin extends User
    
{
        
fucntion __construct()
        {
            
        }
        
#редактирование,удаление сообщения 
        
        #удаление пользователя

    
}
    




Спустя 42 минуты, 14 секунд (5.05.2009 - 08:02) jetistyum написал(а):
..большой smile.gif

Спустя 8 минут, 22 секунды (5.05.2009 - 08:11) Sylex написал(а):
ужасно... ohmy.gif

Спустя 53 минуты, 15 секунд (5.05.2009 - 09:04) maxfr написал(а):
Это мой первый опыт с классами. указывайте что именно ужасно, что подправить...и т.д. и т.п

Спустя 1 час, 1 минута, 48 секунд (5.05.2009 - 10:06) Sylex написал(а):
1. комментариев нет
2. оформлен код кое где очень коряво
3.
PHP
<?php
function __construct
()
    {
        $this->dbConnect=$dbConnect;
        $this->dbSelect=$dbSelect;
        $this->dbHost=$dbHost;
        $this->dbPass=$dbPass;
        $this->dbUser=$dbUser;
    }


это как понимать???

4. class db - в чем вообще его смысл? В одном методе, который подключается к БД и устанавливает кодировку?

5. где защита от SQL-инъекций?

6.
Цитата
public function getName($user)
    {       
        $this->name = $name;
        #запрос в БД для того что бы получить имя пользователя по его id
        $result = mysql_query('SELECT * FROM `user` WHERE `id`="'.$id.'" LIMIT 1');


чему равна $id и откуда она берется? откуда берется $name ?

7. abstract class User - зачем столько ненужных свойств хранить в объекте? Какого их назначение? Почему не использовать массив?

8. $HTTP_COOKIE_VARS старо, юзай $_COOKIES

В общем, ты показал все преимущества ООП smile.gif

Изучай для начала PHP хорошо, чтобы знал хотя бы что такое безопасность скриптов, и постепенно изучай ООП и для чего оно.

Удачи wink.gif

Спустя 5 часов, 50 минут, 59 секунд (5.05.2009 - 15:57) maxfr написал(а):
Да уж караул)))

Спустя 1 час, 54 минуты, 29 секунд (5.05.2009 - 17:51) vasa_c написал(а):
Цитата
Это мой первый опыт с классами. указывайте что именно ужасно, что подправить...и т.д. и т.п

При работе с классами первым делом нужно решить а нафиг нужен именно этот класс.
Вот и попробуйте объяснить для каждого класса.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.