PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (32): В начало « ... 21 22 23 24 [25] 26 27 28 29 ... » В конец

> Найдено сообщений: 468
tato Отправлено: 25 Мая, 2012 - 17:49:38 • Тема: Безопасность админки • Форум: Вопросы новичков

Ответов: 17
Просмотров: 611
Прежде всего стоит разместить дирикторию админки выше рут дирикории.
например такую структуру дирикторий:

CODE (htmlphp):
скопировать код в буфер обмена
  1. home/
  2.     username/
  3.         cgi-bin/
  4.         www/
  5.             файлы нашего сайта
  6.         adminka/
  7.             файлы админки
  8.         framework/


из браузера доступна только дириктория www(может по другому называться например public_html).

Это конечно не панацея, но первое христаматийное правило.
второе христаматийное правило - пароли храним только хешированные.
третье - НЕ храним пароли в куки.
четвертое - валидируем/проверяем все входные данные.

Все мной сказанное учитывается всегда и везде, если не соблюдены эти простые правила, то о полноценной защите можно даже не говорить.
tato Отправлено: 25 Мая, 2012 - 04:54:24 • Тема: Цены • Форум: Прочее

Ответов: 21
Просмотров: 171
Беру за сайт минимум 10т.р. это будет визитка, далее зависит от ТЗ.
Вообще расчитываю так:
разбиваем сайт на части ( дизайн, верстка, код и т.д. ), дизайнер берет 5000 + верстка
своих минимум 5000. Далее смотрим, хотим фото галлерею + 6000, хотим каталок товаров +7000, хотим админку +10000 и т.д.
Фактически человек платит за "модули", к договору прилагается расшифровка цен и там все списком, очень удобно.
Из реалей моих работ, в среднем сайт обходится в 15к-20к, были и за 120к.

Чаще когда спрашиваешь про бюджет, люди занижают реальную цифру, т.е. если говорят 10к, реально могут 15к-20к (проверенно 100500+ раз).
tato Отправлено: 08 Мая, 2012 - 10:39:41 • Тема: JOIN VS multi-query • Форум: Работа с СУБД

Ответов: 1
Просмотров: 852
Все доброго!
Есть у меня вот такой запрос:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DELETE
  3.     `tsa_pages`,
  4.     `tsa_pages_details`,
  5.     `tsa_pages_images`
  6. FROM
  7.     `tsa_pages`,
  8.     `tsa_pages_details`,
  9.     `tsa_pages_images`
  10. WHERE
  11.     tsa_pages.KEY=:KEY
  12.         AND
  13.             tsa_pages_details.KEY=:KEY
  14.         AND
  15.             tsa_pages_images.KEY=:KEY
  16.  


Думаю про :key объяснять не надо, это для PDO'шного prepare.

В чем собственно проблемма, как видно из запроса, запись удалится, если в каждой из таблиц есть запись равная :key.
Так такой записи может и не существовать ( например картинок нет ), а следствие удаления не будет.

Теперь вопрос, строить один запрос на JOIN'ах или сделать несколько,
Учитывая, что удалять будет один человек и редко?
tato Отправлено: 05 Мая, 2012 - 09:03:35 • Тема: Разбиение массива и вывод по частям • Форум: Вопросы новичков

Ответов: 4
Просмотров: 308
Необходимо будет указывать пределами т.е.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. ... LIMIT 20
  3. ... LIMIT 20, 40
  4. ... LIMIT 40, 60
  5.  


и т.д.

В данном случае лучше сделать это средствами php через цикл.
Я так понимаю Вы хотите сделать постраничную навигацию? Тогда Вам сюда http://www.php.su/articles/?cat=...les&page=062
tato Отправлено: 05 Мая, 2012 - 08:50:47 • Тема: Абстрактные классы • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 2722
Цитата:
Какой смысл их использовать, если с тем же успехом можно наследоваться от обычных классов

В принципе можно наследоватся от обычного класса и не реализовывать( оставлять пустыми ) методы, которые будут перекрыты в классах потомках, НО! тогда они станут необязательными для реализации. ВАЖНО! если Мы расширяем абстрактный класс и не реализуем его абстрактные методы, то получаем ошибки т.к. реализация обязательна.
Как уже писали выше, "соль" абстракции это возможность реализовать часть методов и запретить создание экземпляров абстракции.

Цитата:
Декларация функций? Но ведь для этого есть интерфейсы

Интерфейсы существуют не только для декларации, они как и классы, по сути, являются типом данных. Так же в интерфейсе можно задать область видимости только public, в абстракции можно public, protected, что бывает весьма полезно.

Вобщем в этом коде попытался отразить все выше сказанное:
PHP:
скопировать код в буфер обмена
  1.  
  2. [spoiler]
  3. <?PHP
  4. //Абстракция Test
  5. abstract class Test {
  6.        
  7.     //Константа
  8.     const SOME_CONST = "some const";
  9.    
  10.     // защищенный метод
  11.     protected function fooProtected()
  12.     {
  13.         return "fooProtected";
  14.     }
  15.    
  16.     //Абстрактный метод, реализация обязательна
  17.     abstract public function barAbstract();        
  18. }
  19.  
  20. //Интерфейс TypeOneIface
  21. interface TypeOneIface {
  22.     function echoFoo();
  23. }
  24.  
  25. // Два класа расширяющие абстракцию
  26. // ключевое слово final говорит о том, что класс финальный и его нельзя расщирять
  27. final class TestTwo extends Test implements TypeOneIface {
  28.  
  29.     // реализация обязательного метода ( дектует интерфейс )    
  30.     public function echoFoo()
  31.     {
  32.         return self::fooProtected() . " in TestTwo<br>";
  33.     }
  34.     // реализация обязательного метода ( дектует абстракция )
  35.     public function barAbstract()
  36.     {
  37.         echo "bar in TestTwo<br>";
  38.     }    
  39. } // END_CLASS TestTwo
  40.  
  41. final class TestThree extends Test implements TypeOneIface {
  42.  
  43.     // реализация обязательного метода ( дектует интерфейс )
  44.     public function echoFoo()
  45.     {
  46.         return self::fooProtected() . " in TestThree<br>";
  47.     }
  48.     // реализация обязательного метода
  49.     public function barAbstract()
  50.     {
  51.         echo "bar in TestThree<br>";
  52.     }
  53. } // END_CLASS TestThree
  54.  
  55. // еще один тестовый класс
  56. final class LetsRock {
  57.    
  58.     // Принимаем типизированную переменную, тип есть интерфейс TypeOneIface
  59.     public function echoFoo( TypeOneIface $object )
  60.     {
  61.         echo $object->echoFoo();
  62.     }
  63.    
  64.     // Принимаем типизированную переменную, тип есть абстракция Test
  65.     public function echoBar( Test $object )
  66.     {
  67.         echo $object->barAbstract();
  68.     }
  69. }
  70.  
  71. // Let's Rock!
  72.  
  73. // наши экземпляры
  74. $test_two   = new TestTwo();
  75. $test_three = new TestThree();
  76. $lets_rock  = new LetsRock();
  77.  
  78. // Константа
  79. echo sprintf( "test two const  -> %s <br> test three const -> %s<br>", TestTwo::SOME_CONST, TestThree::SOME_CONST );
  80.  
  81. // Рвботаем с объектами
  82. $lets_rock->echoFoo( $test_two );
  83. $lets_rock->echoFoo( $test_three );
  84.  
  85. // Вариант 1
  86. echo "I<br>";
  87. $lets_rock->echoBar( $test_two );
  88. $lets_rock->echoBar( $test_three );
  89. // Вариант 2
  90. echo "II<br>";
  91. echo $test_two->barAbstract();
  92. echo $test_three->barAbstract();
  93. ?>
  94. test two const -> some const
  95. test three const -> some const
  96. fooProtected in TestTwo
  97. fooProtected in TestThree
  98. I
  99. bar in TestTwo
  100. bar in TestThree
  101. II
  102. bar in TestTwo
  103. bar in TestThree
  104. [/spoiler]
  105.  
tato Отправлено: 25 Апреля, 2012 - 16:43:16 • Тема: Проблема вывода • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 2565
Цитата:
в базе стоит кодировка utf8_bin, кодировка странички charset=utf-8


А сам файл в какой кодировке? То что Вы указали charset=utf-8 еще не значит, что файл в этой кодровке. Charset сообщает кодировку браузеру.

и второе в какой кодировке excel файл? Если не в utf то проблемма в этом. (скорее всего именно в этом).
tato Отправлено: 25 Апреля, 2012 - 16:18:00 • Тема: Проблема вывода • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 2565
0) Кодировка БД, php файла и входящих данных должна быть одинаковой (например utf-8)
1) В бд можно установить кодировку так:
PHP:
скопировать код в буфер обмена
  1.  
  2. // подключение к бд
  3. $db = new PDO( "mysql:host=$host;dbname=$dbname", $user, $password );
  4. // установка кодировки
  5. $db->exec( "SET NAMES 'utf8'" );
  6.  

2) Кодировку файла можно установить в редакторе, в котором Вы пишете.
tato Отправлено: 25 Апреля, 2012 - 15:59:38 • Тема: Проблема вывода • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 2565
это вот данные из вышей таблицы в бд. А квадраты потому что кодировка сбита.
tato Отправлено: 25 Апреля, 2012 - 15:51:00 • Тема: Проблема вывода • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 2565
нет, всмысле так сделайте:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.  
  5.  
  6. if ($_POST['Submit'] == true){
  7.  
  8.  
  9.  
  10. include ('1.php');
  11.  
  12.  
  13.  
  14. $sss=$_POST['textfield'];
  15.  
  16.  
  17.  
  18. $result = mysql_query("SELECT COUNT(*) as kol FROM otl WHERE kit=$sss");
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. if ($result = 1)
  27.  
  28. {
  29.  
  30. $go= mysql_query("SELECT go FROM otl WHERE kit=$sss");
  31.  
  32.  
  33. // Вот тут измените
  34. print_r( $res );
  35.  
  36. }
  37. else
  38. {
  39.     echo "<center><b>Введены некоректные данные!<p>";
  40. }
  41.  
  42. }
  43.  
  44. ?>
  45.  
tato Отправлено: 25 Апреля, 2012 - 15:46:20 • Тема: Проблема вывода • Форум: Если скрипт не работает

Ответов: 11
Просмотров: 2565
сделайте print_r( $res );

$res - в Вашем случаее массив данных, поэтому и выводится слово Array
tato Отправлено: 25 Апреля, 2012 - 15:28:19 • Тема: не понимаю смисл слова, котори стоит перед аргимента в методе • Форум: Объектно-ориентированное программирование

Ответов: 24
Просмотров: 4529
Хех, загдочен мир php, загадочен и дремуч...
(Добавление)
Мелкий, спасибо кстати (=
tato Отправлено: 25 Апреля, 2012 - 14:25:47 • Тема: не понимаю смисл слова, котори стоит перед аргимента в методе • Форум: Объектно-ориентированное программирование

Ответов: 24
Просмотров: 4529
Мелкий, а методы экземпляров? (самому проверить лень)
tato Отправлено: 24 Апреля, 2012 - 12:36:26 • Тема: Помогите плиз 2 вопроса • Форум: Вопросы новичков

Ответов: 2
Просмотров: 86
Цитата:
"выходной день" то цвет текста желтый?


такие вещи лучше в css задавать, например:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. span.yellow {
  3.     color:#ff0064;
  4. }
  5.  


потом по анологии с премъерой:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $date = '<span class="yellow">Премьера!</span><br />';
  3.  
tato Отправлено: 24 Апреля, 2012 - 12:31:04 • Тема: Изменение кодировки при использовании сторонних библиотек • Форум: Вопросы новичков

Ответов: 10
Просмотров: 347
Ладно, Я согласен, что ситуации бывают разные и спорить с этим бесполезно, но есть конкретный пример. Сам автор темы пишет:
Цитата:
InfernumDeus, Лично мне достаточно перевода в utf-8.


Вопрос зачем ему iconv? Не лучше ли сразу оптимизировать и не вспоминать об этом потом?
Решение есть, вот оно, делов на 2 минуты.

Я пытаюсь отстаять мнение, что "велосипеды" не всегда плохо, в php предостаточно, порой, совсем нелогичных вещей, давайте скажите мне, что у вас руки не чешутся половину переписать (= ( ах да Вы уже это сделали... или Я не прав? )
tato Отправлено: 24 Апреля, 2012 - 12:22:41 • Тема: Ограничение возможных значений параметра метода • Форум: Вопросы новичков

Ответов: 7
Просмотров: 294
Будет полезно:
PHP:
скопировать код в буфер обмена
  1.  
  2.  // Интерфейс ITest
  3. interface ITest {
  4.     function getMessage();
  5. }
  6.  
  7.  // Класс реализующие интерфейс Itest
  8. class Foo implements ITest {
  9.    
  10.     function getMessage()
  11.     {
  12.         return "Foo class<br>";        
  13.     }
  14. }
  15.  // Класс реализующие интерфейс ITest
  16. class Bar implements ITest {
  17.    
  18.     function getMessage()
  19.     {
  20.         return "Bar class<br>";
  21.     }
  22. }
  23.  
  24.  // Тестовый класс
  25. class Test {
  26.    
  27.      // Метод принимает только объекты реализовавшие интерфейс ITest
  28.     function testIface( ITest $obj )
  29.     {
  30.         echo $obj->getMessage();
  31.     }
  32. }
  33.  
  34. $test = new Test();
  35. $test->testIface( new Foo() );
  36. $test->testIface( new Bar() );
  37.  


Интерфейс может быть пустым и служить только как тип данных.

Страниц (32): В начало « ... 21 22 23 24 [25] 26 27 28 29 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB