PHP.SU

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

Страниц (19): « 1 2 3 4 [5] 6 7 8 9 ... » В конец

> Найдено сообщений: 282
xTODx Отправлено: 19 Марта, 2015 - 15:41:14 • Тема: Как построить картинку с таблицей? • Форум: Графика в PHP

Ответов: 9
Просмотров: 1860
Sail пишет:
xTODx пишет:
но в этой теме, я другую задачу решаю

Не обманывайтесь названием освещённого в той теме вопроса Радость
Речь идёт именно о создании "картинки" на основе данных html.

разбираюсь уже.
xTODx Отправлено: 19 Марта, 2015 - 08:06:03 • Тема: Как построить картинку с таблицей? • Форум: Графика в PHP

Ответов: 9
Просмотров: 1860
Sail пишет:
xTODx, гляньте Website screenshots using PHP
Может, подберёте способ для своей задачи Радость

Спасибо, почитаю, но в этой теме, я другую задачу решаю)
xTODx Отправлено: 19 Марта, 2015 - 08:03:47 • Тема: можно как-то запретить скриншоты? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 1219
GoDr пишет:
Давно такой бред не встречал Радость

Можно двумя способами.
1. К каждому компьютеру приставить охранника!
2. Не показывать платную информацию никому!

догадывался, что это из области фантастикиУлыбка
Конечно, если-бы можно было как-то отследить через JS нажатие клавиши PrtSc, и ещё реагировать на переход из браузера в другую программу, Всё ок было-бы.
Но, это не реально.
Так что....)
ИзвинитеУлыбка
xTODx Отправлено: 19 Марта, 2015 - 07:57:08 • Тема: Как построить картинку с таблицей? • Форум: Графика в PHP

Ответов: 9
Просмотров: 1860
GoDr пишет:
exlant, это из области "как запретить делать скриншот платного контента" Радость

да-да)
(Добавление)
exlant пишет:
xTODx пишет:
Есть вопрос, как построить картинку с таблицей?

А по-подробнее?

вот есть таблица, но в html.
Нужно генерировать такую-же в виде картинки.
ну, кроме способа строить линиями и imagettftext, нет никаких способов?
xTODx Отправлено: 18 Марта, 2015 - 23:18:30 • Тема: Как построить картинку с таблицей? • Форум: Графика в PHP

Ответов: 9
Просмотров: 1860
Есть вопрос, как построить картинку с таблицей?
xTODx Отправлено: 18 Марта, 2015 - 23:06:03 • Тема: можно как-то запретить скриншоты? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 1219
Всем привет!
Нужна помощь.
Есть задача, нужно не дать людям сделатьс криншот сайта, так как там платная информация. Можно это как-то сделать?
xTODx Отправлено: 15 Марта, 2015 - 18:33:32 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
Всем спасибо, думаю проблем не будет!)
Разобрался со всем, переделал CMS, всё работает.
xTODx Отправлено: 15 Марта, 2015 - 00:15:29 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
Ts.Saltan пишет:
xTODx пишет:
Можете показать пример?

Вы хотя бы по предложенным ссылкам переходили? Комментарии читали?

xTODx пишет:
А если у меня несколько значений, и я заранее не знаю сколько у меня будет ?

https://php.net/manual/ru/mysqli...epare.php#107200
Там в примере функция mysqli_prepared_query:
mysqli_prepared_query('MYSQL QUERY... ? ? ? ?','siis',array('a',$v,1,100));

Да - Переходил, Да читал, Да уже разобрался) Спасибо
xTODx Отправлено: 14 Марта, 2015 - 14:31:23 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
exlant пишет:
Цитата:
Дальше вот такая вот вещь вылазит
Цитата:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in [Путь тут] on line 6

а при чем здесь вообще mysql? забудьте про mysql!
mysql_error() - здесь тоже работать не будет!

между fetch_assoc и fetch_array, разница точно такая я же, как и была в mysql! assoc помещает в ассоциативный массив, array помещает в два массива: обычный массив, и в ассоциативный(или в тот, который который указан в ключах)! Я обычно использую fetch_assoc, поэтому его и указал.

а вообще [url]http://php.net/manual/ru/mysqli-....fetch-array.php [/url] там все есть

по поводу mysql_fetch_assoc() я дальше писал, что уже fetch_assoc;
Cпасибо, кручу дальше
xTODx Отправлено: 14 Марта, 2015 - 11:27:32 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
Сейчас вопрос такой, если одна строка
то как быть с

PHP:
скопировать код в буфер обмена
  1.  
  2. while($row = $res->fetch_assoc()){
  3.                  $data[] = $row;
  4.              }
  5.  
  6.  

Так ведь?

Результат - пуст
fetch_array()??
так заработало, в чём отличие?
xTODx Отправлено: 14 Марта, 2015 - 10:50:13 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
Написал я файл для подключения к базе



PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.         require_once "config.php" ;
  5.         class Db extends Config {
  6.                 private $connection ;
  7.                 function __construct() {
  8.                         $this->open_connection() ; // сразу подключает к бд
  9.                 }
  10.                 private function open_connection() {
  11.                         $this->connection = new mysqli($this->DB_HOST, $this->DB_USER, $this->DB_PASS,$this->DB_NAME);
  12.                         if(!$this->connection) {
  13.                                 die("Ошибка в подключении к БД:". mysql_error() ) ;
  14.                         }
  15.                         }      
  16.                        
  17.                 function refValues($arr){ // без этого метода работает не на всех версиях!
  18.                         if (strnatcmp(phpversion(),'5.3') >= 0) { //Если версия PHP >=5.3 (в младших версиях все проще)
  19.                                         $refs = array();
  20.                                         foreach($arr as $key => $value) {
  21.                                                         $refs[$key] = &$arr[$key]; //Массиву $refs присваиваются ссылки на значения массива $arr
  22.                                         }
  23.                                         return $refs; //Массиву $arr присваиваются значения массива $refs
  24.                         }
  25.                         return $arr; //Возвращается массив $arr
  26.                 }      
  27.                
  28.                 public function sql($query,$array) {
  29.                         if(!($stmt = $this->connection->prepare($query))){
  30.                 trigger_error('Mysqli Ошибка: <b>'.$this->connection->error.'('.$this->connection->errno.')</b>!',E_USER_ERROR);
  31.                 }    
  32.                         if(is_array($array))
  33.                         call_user_func_array(array($stmt,'bind_param'), $this->refValues($array));
  34.                         if(!$stmt->execute())
  35.                         trigger_error('Not run execute: <b>'.$stmt->error.'('.$stmt->errno.')</b>!', E_USER_ERROR);
  36.                        
  37.                        
  38.                         $result = $stmt->get_result();
  39.  
  40.                 $stmt->close();
  41.  
  42.                         return $result ;
  43.                 }       //функция которая будет выполнять заявки.
  44.         }
  45.         $db = new Db() ;
  46.         /*$this-> использует переменные с другого класса, mysql_error() - ошибки бд,
  47.         команда установки кодировки  если не вышло, вывести ("текст")
  48.         mysql_query("set names utf8") or die ("set name utf8 failed") */
  49.        
  50. ?>
  51.  
  52.  

Вот, вроде разобрался, теперь начал переделывать запросы DB(работы мягко говоря валом).
Если мне не нужно передавать массив, а в запросе нету внешних данных, можно сделать так?
PHP:
скопировать код в буфер обмена
  1.  
  2. function ret_th(){     
  3.                 $sql = "SELECT `theme` from `set` LIMIT 0,1";
  4.                 $res = $this->sql($sql, 0);
  5.                 $row = mysql_fetch_assoc($res) ;
  6.                 return $row['theme'];
  7.                 }
  8.  

Дальше вот такая вот вещь вылазит
Цитата:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in [Путь тут] on line 6

функция $sql вернула не то, что нужно
Вот что она возвращает
PHP:
скопировать код в буфер обмена
  1.  
  2. mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )
  3.  

Изменил на

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function ret_th(){     
  4.                 $sql = "SELECT `theme` from `set` LIMIT 0,1";
  5.                 $res = $this->sql($sql, 0);
  6.                 $row = $res->fetch_assoc ;
  7.                 return $row['theme'];
  8.                 }
  9.  
  10.  

всё работает, спасибо, буду дальше копаться, если не затруднит, время-от времени пожалуйста заходите в тему, я нуждаюсь в вашей помощи!
xTODx Отправлено: 14 Марта, 2015 - 09:50:29 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
GoDr пишет:
xTODx пишет:
А если у меня несколько значений, и я заранее не знаю сколько у меня будет ?
Что значит неизвестное? Ты не знаешь структуру таблицы БД?

И даже при таком подходе можно сформировать строку ключей с "вопросиками" и строку параметров

нет, я знаю стуктуру) но в эту функцию я буду передавать разные запросы!
(Добавление)
exlant пишет:

по вашей аналогии примерно так
как то так, я думаю что направление понятно!

Можете пояснить пожалуйста
PHP:
скопировать код в буфер обмена
  1.  
  2.  if(!($stmt = self::$connect_db->prepare($query))){
  3.               trigger_error('Mysqli error: <b>'.self::$connect_db->error.'('.self::$connect_db->errno.')</b>!',E_USER_ERROR);
  4.         }    
  5.  

Немного не понял, что значит self::$connect_db->prepare($query)
По идее нужно задать ещё и $connect_db?
PHP:
скопировать код в буфер обмена
  1. $connect_db = new mysqli('localhost', 'user', 'password', 'world');

Верно?
А &(ссылка на переменную) это указатель(как в с++) на ячейку памяти, нет?
в bind_param можно передать массив с помощью call_user_func_array, так?
т.е.
аналог вызова

Верно?
Спасибо вам огромное, понял что ещё есть много неизведанного, и что всё, что я писал, сделано плохо
xTODx Отправлено: 14 Марта, 2015 - 00:20:24 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
exlant пишет:
библиотека mysql deprecated, в следующей версии php будет удалена! http://php.net/manual/ru/functio...ysql-connect.php

сейчас используют mysqli и pdo, гуглятся легко. и про подготовленные запросы тоже погуглите!

Инфы просто море на эти темы!

Спасибо, читаю!
http://phpclub[dot]ru/detail/article/mysqli
Вот такие вопросы,
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $mysqli = new mysqli('localhost', 'user', 'password', 'world');
  4.  
  5. /* Проверка соединения */
  6.     printf("Подключение невозможно: %s\n", mysqli_connect_error());
  7.     exit();
  8. }
  9.  
  10. $stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
  11. $stmt->bind_param('sssd', $code, $language, $official, $percent);
  12.  
  13. $code = 'DEU';
  14. $language = 'Bavarian';
  15. $official = "F";
  16. $percent = 11.2;
  17.  
  18. /* выполнение подготовленного выражения  */
  19. $stmt->execute();
  20.  
  21. printf("%d Row inserted.\n", $stmt->affected_rows);
  22.  
  23. /* Закрытие соединения и выражения*/
  24. $stmt->close();
  25.  
  26. /* Очистить таблицу CountryLanguage */
  27. $mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
  28. printf("%d Row deleted.\n", $mysqli->affected_rows);
  29.  
  30. /* Закрыть подключение */
  31. $mysqli->close();
  32. ?>
  33.  

А если у меня несколько значений, и я заранее не знаю сколько у меня будет ?
в смысле мне нужно сделать функцию, в которую я буду передавать запрос, идентификаторы, и параметры.
как быть с
PHP:
скопировать код в буфер обмена
  1. stmt->bind_param('sssd', $param[1], $param[2])
?

Функция должна возвращать данные к тому-же.
Раньше, в, как оказалось древней, CMS была функция с запросом

PHP:
скопировать код в буфер обмена
  1. function ret_set(){    
  2.                 $sql = "SELECT * from `set`  LIMIT 0,1";
  3.                 $res = $this->sql($sql);
  4.                 return $res;
  5.         }

и функция которая формировала массив с полученных данных
PHP:
скопировать код в буфер обмена
  1.  
  2.        function print_set() {
  3.                         $res = $this->ret_set() ;
  4.                         $row = mysql_fetch_assoc($res) ;
  5.                         return $row ;
  6.                         }
  7.        
  8.         }
  9.  
xTODx Отправлено: 13 Марта, 2015 - 21:48:40 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
OrmaJever пишет:
Господи 2015 год на дворе, а тут ещё заводят темы про sql иньекции. prepared statement и всё, забыли навсегда! я не удивлюсь если вы ещё mysql_query пользуетесь

её самою.
Тогда уж простите, скиньте ссылки на информацию, чтобы я стал на уровень выше в этом деле!
Я понял что sql_execute нужно использовать, и связанные переменные, так?
это решит все проблемы?
xTODx Отправлено: 13 Марта, 2015 - 21:12:01 • Тема: Защита от SQL инъекций • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 131
Ts.Saltan пишет:
Зачем это всё? От инъекций спасут подготовленные выражения
https://php.net/manual/ru/mysqli.prepare.php
https://php.net/manual/ru/pdo.prepare.php

То есть нужно переделывать все запросы?
(Добавление)
Ts.Saltan пишет:
Зачем это всё? От инъекций спасут подготовленные выражения
https://php.net/manual/ru/mysqli.prepare.php
https://php.net/manual/ru/pdo.prepare.php

Можете показать пример?

Есть такой вот запрос, в нём переменная $id.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM `block` WHERE `col`='{$id}' ORDER BY `pos`
  3.  

Страниц (19): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB