201

Re: Подскажите с РНР, учу по книжке...

Помогите с кодировкой разобраться? Есть страница на пхп в ней форма ввожу например в форму имя на русском нажимаю на кнопку и вывожу с помощью echo это имя ,вместо имени выводятся каракули в чем проблема? что и где нужно настраивать?

202

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

вместо имени выводятся каракули в чем проблема?

1. Проверьте кодировку файла открыв его в текстовом редакторе (рекомендую Notepad++), снизу будет ANSI или UTF8.
2. Проверьте кодировку в метатеге HTML кода.

Две эти кодировки должны совпадать следующим образом:
UTF8 - utf-8
ANSI - windows-1251

203

Re: Подскажите с РНР, учу по книжке...

Снова здравствуйте, собрался писать авторизацияю на сайте, в принципе все понятно, пользователь заходит, проверяем в базе пароль, логин, если есть, то пускаем ставим сессию, а что будет если кто захочет зайти еще под этим же логином и паролем ведь в системе уже есть пользователь с таким логином???

204

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

а что будет если кто захочет зайти еще под этим же логином и паролем ведь в системе уже есть пользователь с таким логином?

Он зайдет, но сессия будет создана другая, так как она звисит от IP и некоторых других причин.

205

Re: Подскажите с РНР, учу по книжке...

То есть с этим же логином и паролем зайти можно еще кому то? ,а как это предотвратить???ну типа написать в системе уже есть такой пользователь????

206

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

То есть с этим же логином и паролем зайти можно еще кому то? ,а как это предотвратить???ну типа написать в системе уже есть такой пользователь????

Зачем? В этом нет смысла, там человек не сможет зайти с двух компьютеров.

207

Re: Подскажите с РНР, учу по книжке...

Не могли бы помочь разобраться в ООП? ,а именно для чего нужны методы set, get в описании класса? много читал в учебниках ,но если честно не понял для чего ,как и где использовать?

208

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

Не могли бы помочь разобраться в ООП? ,а именно для чего нужны методы set, get в описании класса? много читал в учебниках ,но если честно не понял для чего ,как и где использовать?

Есть методы __get и __set, которые будут вызываться при обращении к свойству или методу класса.

Смотрите пример на этой странице и пробуйте его выполнить, чтобы понять как он работает.
http://php.net/manual/ru/language.oop5.overloading.php

209

Re: Подскажите с РНР, учу по книжке...

Здравствуйте, такой вопрос, написал класс для работы с базой данных использовал патерн Singleton, но шаря в поисковике по форумам узнал что его использовать нельзя (нарушается принцып ООП и все такое) что в дальнейшем приведет к проблемам, так вот нужен он в данном классе или лучше убрать? ведь он же уместен в классе подключения к БД, создаст только одно подключение??? или может есть какие то варианты заменить его чем то?

210

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

ведь он же уместен в классе подключения к БД, создаст только одно подключение?

Как он выглядит?

Не представляю, чтобы в скрипте было несколько вызовов класса соединения с БД, поэтому самый простой вариант - это установить соединение в __construct() и разъединение в __destruct().
http://php.net/manual/ru/language.oop5.decon.php

211

Re: Подскажите с РНР, учу по книжке...

<?php
     /**
     // Класс для работы с базой данных MySQL
          
      class Lib_DbConnect
      {
    
                  // Реализуем патерн Singleton
       
        protected static $_instance;
                
        public static function getInstance() 
        {
             // получить экземпляр данного класса 
                                 if (self::$_instance === null) 
             { 
                // если экземпляр данного класса  не создан
                 self::$_instance = new self;  // создаем экземпляр данного класса 
             } 
             return self::$_instance; // возвращаем экземпляр данного класса
        }
         
    // запрещаем клонирование объекта модификатором private
    
                  private function __clone() 
        { 
        
                  }
    //запрещаем клонирование объекта модификатором private    
              private function __wakeup() 
        {
        
                            }
        
    // Конструктор сработает при создании объекта класса, подключает к MySQL и к базе данных 
        
        private function __construct()
    //Далее остальной велосипед
}
//создание объекта
$obj=Lib_DbConnect::getInstance();

$obj=new Lib_DbConnect; //так выдаст ошибку

$obj2=Lib_DbConnect::getInstance();  //а вот так как я понимаю вернет тоже соединение

У себя уже убрал сделаю через деструктор ,может опыта наберусь и вернусь к этому патрну когда нибудь))) просто сейчас хотелось знать нужен он или нет

212

Re: Подскажите с РНР, учу по книжке...

Все зависит от того, как вы собираетесь работать с соединением к БД в скриптах. Обычно в скриптах есть один подключаемый файл для работы с БД и он включается в заголовок всех скриптов, именно в нем и происходит создание ссылки на соединение с БД. При таком подходе получается на один скрипт одно соединение с БД. Острой необходимости в механизме Singleton нет.

213

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

Здравствуйте помогите пожалуста советом, учу патерн MVC допустим контроллер вызывает модель в этой модели делается валидация и запрос в БД ,на этой основе выводится сообщение допустим

К сожалению не смог понять вопрос, сообщение обрезало.

214

Re: Подскажите с РНР, учу по книжке...

В принципе разобрался ,еще один вопрос по этой теме из МОДЕЛИ нужно выводить данные в ПРЕДСТАВЛЕНИЕ или нужно вернуть переменную в КОНТРОЛЛЕР ,а он уже в ПРЕДСТАВЛЕНИЕ??? Заранее спасибою.

215

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

еще один вопрос по этой теме из МОДЕЛИ нужно выводить данные в ПРЕДСТАВЛЕНИЕ или нужно вернуть переменную в КОНТРОЛЛЕР ,а он уже в ПРЕДСТАВЛЕНИЕ?

Не могу ответить на этот вопрос.

216 (изменено: kuba1981, 2012-10-31 13:11:02)

Re: Подскажите с РНР, учу по книжке...

Здравствуйте помогите разобратся я в скрипте пишу перенаправление на шаблон header("Location:index.php?page=3&".session_name().'='.session_id()), а в шаблоне проверяю переменную сессии $_SESSION['login'] и в зависимости от проверки получаются разные шаблоны, но почему то переменной $_SESSION['login'] не приходит хотя до перенаправления она есть к ссылке добавил .session_name().'='.session_id()) в чем может быть проблема???

217

Re: Подскажите с РНР, учу по книжке...

Сессия передается через куки. Нет никакой необходимости передавать ее через урл, если куки включены.
Пример работы с сессиями смотрите в документации.

218

Re: Подскажите с РНР, учу по книжке...

Спасибо решение нашел просто мне нужно чтобы сессия работала при отключенных куках, а при использовании header() нужно руками добавлять имя и идентификатор сессии просто оказлось что надо опять запускать сессию получается header() полностью убивает сессию???

219

Re: Подскажите с РНР, учу по книжке...

Вы все правильно сделали, только для сессии есть константа SID и она должна идти после знака вопроса:

$link = 'test.php?' . SID . '&page=1';

220

Re: Подскажите с РНР, учу по книжке...

Здравствуйте подскажите я установил Apache+php+mysql в ручную ,залил сайт в .htaccess есть дирректива option ALL -indexes она почему то не работает вылазиет 500 ошибка вот лог
[Mon Nov 12 22:15:53 2012] [[Tue Nov 13 11:06:09 2012] [alert] [client 127.0.0.1] C:/www/site/www/.htaccess: Invalid command 'option', perhaps misspelled or defined by a module not included in the server configuration
[Tue Nov 13 11:06:09 2012] [alert] [client 127.0.0.1] C:/www/site/www/.htaccess: Invalid command 'option', perhaps misspelled or defined by a module not included in the server configuration, referer: http://localhost/register
что нужно исправить ,так сайт работает если закоментить эту диррективу заранее спасибо

221

Re: Подскажите с РНР, учу по книжке...

kuba1981 сказал:

option ALL -indexes

Ошибка в написании, необходимо писать options. Смотрите документацию: http://httpd.apache.org/docs/2.2/mod/core.html#options