Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> класс подключения к, майскуль =)) 
:(
    Опции темы
alligator
Дата 11.10.2005, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Пишу систему авторизации\регистрации
Что то никак не получаеться составить класс для работы с mysql....
если делаю без класса то нормально всё работает...
Помогите разобраться пожалуйста делаю так...

Код

class mysql{
var $dbhost = "localhost";
var $dblogin = "root";
var $dbpass = "";
var $database = "base";
var $dbtable = "users";

function Connect($dbhost,$dblogin,$dbpass){
$link = @mysql_connect($dbhost,$dblogin,$dbpass) or die("Ошибка подключения");
mysql_select_db($database,$link);
}
}

я вот только не пойму как правильно делать так как указано выше или так
Код

function Connect($this->dbhost,$this->dblogin,$this->dbpass)

PM MAIL   Вверх
sergejzr
Дата 11.10.2005, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Код

mysql_select_db($this->database,$link);




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
PARROT
Дата 11.10.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Код

 function on_line() {
 $host = "localhost"; // хост, где расположена база данных MySql
 $db_name = "trak"; // имя базы данных; как правило совпадает с именем юзера
                // (переменная ниже), хотя я категорически против одинаковых
                // имен, ориентируясь на защиту...
 $db_user = "trak"; // пользователь, которому разрешен доступ к базе
 $db_password = "admin"; // пароль пользователя
 $table_online = "online"; // имя таблицы
 // соединяемся с сервером MySQL и выбираем нужную базу
 mysql_connect($host,$db_user,$db_password) or die(mysql_error());
 mysql_select_db($db_name) or die(mysql_error());
}

Код

on_line();


Это сообщение отредактировал(а) PARROT - 11.10.2005, 15:41


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
alligator
Дата 11.10.2005, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Да функцию я знаю как сделать хочу класс написать.... заодно и потихоньку с ооп разбираться
PM MAIL   Вверх
-=Ustas=-
Дата 11.10.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



alligator, в данном случае, именно этот твой класс - он бесполезен. Ну а если же ты всё-таки бредишь ООП ;), тогда так:
Код

<?php

class mysql
{
    var $dbhost   = "localhost";
    var $dblogin  = "root";
    var $dbpass   = "";
    var $database = "base";
    var $dbtable  = "users";

    function Connect()
    {
        $link = @mysql_connect($this->dbhost, $this->dblogin, $this->dbpass)
                              or die("Ошибка подключения");
        mysql_select_db($this->database, $link);
    }
}

// Использование метода

$Db = new mysql(); // создаем экземпляр класса
$Db->Connect();    // Вызываем метод коннекта

?>



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
alligator
Дата 11.10.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



А если использовать переменные типа $_SERVER['REQUEST_URI']
Они используються как обычно или нет ?
Добавлено @ 15:59
Я знаю что он покачто бесполезен =) делаю систему регистрации авторизации
Добавлено @ 16:00
А вот еще самое главное наверно , как правильно закрыть соединение?
Код

mysql_close($this->link);


PM MAIL   Вверх
Darhazer
Дата 11.10.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



В примере, который дал -=Ustas=- link локальная петременная, так что она не доступна в других функциях. Можно написать так:

Код
<?php
class mysql
{
    var $dbhost   = "localhost";
    var $dblogin  = "root";
    var $dbpass   = "";
    var $database = "base";
    var $dbtable  = "users";
   var $link;
    function Connect()
    {
        $this->link = @mysql_connect($this->dbhost, $this->dblogin, $this->dbpass)
                              or die("Ошибка подключения");
        mysql_select_db($this->database, $this->link);
    }

    function Disconnect()
    {
    mysql_close($this->link);
    }

    //еще би добавил
    function DBEscape ($sql)
    {
      //чтоби пользувал различние фильтри для различних БД
    }

    function ExecutreQuery($sql)
   {
      //
   }
}

// Использование метода
$Db = new mysql(); // создаем экземпляр класса
$Db->Connect();    // Вызываем метод коннекта
?>



--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
-=Ustas=-
Дата 11.10.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Цитата(alligator @ 11.10.2005, 15:57)
А вот еще самое главное наверно , как правильно закрыть соединение?
код PHP
1:mysql_close($this->link);


Ты здесь пытаешься задействовать аттрибут класса, которого не существует.
Darhazer, а если несколько соединений открыто, тогда лажа полная получиться. Лучше уж так:
Код

<?php

class mysql
{
    var $dbhost   = "localhost";
    var $dblogin  = "root";
    var $dbpass   = "";
    var $database = "base";
    var $dbtable  = "users";

    function Connect()
    {
        $link = @mysql_connect($this->dbhost, $this->dblogin, $this->dbpass)
                              or die("Îøèáêà ïîäêëþ÷åíèÿ");
        mysql_select_db($this->database, $link);

        return $link;
    }

    function Disconnect($idRes)
    {
        mysql_close($idRes);
    }
}

// Использование метода

$Db = new mysql(); // создаем экземпляр класса
$link = $Db->Connect();    // Вызываем метод коннекта
...
...
...
$Db->Disconnect($link); // Закрываем

?>

;))) Хотя экономнее (всмысле символов) будет просто:
Код

mysql_close($link);


Это сообщение отредактировал(а) -=Ustas=- - 11.10.2005, 16:20


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
alligator
Дата 11.10.2005, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Кстати а как насчёт переменных....? $_POST $_SERVER $_GET
как их правильно юзать

Это сообщение отредактировал(а) alligator - 11.10.2005, 16:33
PM MAIL   Вверх
-=Ustas=-
Дата 11.10.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Так и юзать, $_POST['your_var']; и т.д., остальные идентичны.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
alligator
Дата 11.10.2005, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Текс с этим понятно..
Начал делать регистрацию , но почему то выдаёт ошибку в строке подсчёт строк
Код

function Register()
  {
   $result = mysql_query( "SELECT `*` FROM `".$this->dbtable."` WHERE `login` = '".mysql_escape_string($_POST['name'])."' LIMIT 1" );
   if( mysql_num_rows($result) == 1 ) //Тут ошибка делал и так $this->result
    {print "Пользователь с таким именем уже существует";}

  mysql_query( "INSERT INTO `".$this->dbtable."` VALUES ( '1' , '" . mysql_escape_string($_POST['name']) . "' , '" . md5($_POST['passwd']) . "' )" );

  }


PM MAIL   Вверх
-=Ustas=-
Дата 11.10.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



А ты выведи $_POST['name']. Возможно его глобалом объявлять надо.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Darhazer
Дата 11.10.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: нет
Всего: 29



А какая именно ошибка?
И помойму должно быт просто *, а не `*`


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
alligator
Дата 11.10.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Тоже самое! =((
Добавлено @ 17:13
Darhazer - нет как ты говоришь тоже самое
-=Ustas=- - сделал глобальной такой же результат =(
PM MAIL   Вверх
alligator
Дата 11.10.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Второй день мучаюсь =(( ни кто не знает чтоль ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.