PHP.SU

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

Страниц (3): [1] 2 3 »

> Найдено сообщений: 34
Le0_Nard Отправлено: 17 Декабря, 2017 - 06:35:59 • Тема: GET запрос • Форум: Вопросы новичков

Ответов: 1
Просмотров: 352
Из адресной строки браузера GET не выкинуть, потому что GET отправляет данные серверу через адресную строку. Либо используйте POST - он отправляет через заголовки, либо юзайте AJAX

Вопрос номер 2:
Есть два распространённых способа: ru.domain.com/page и domain.com/ru/page. Выбор между ними происходит в зависимости от используемой вами архитектуры приложения и от того, как именно вы хотите заморочиться. domain.com/page?land=ru - это что-то экзотическое. Во-первых, выглядит странно (будто у вас весь сайт на одном языке, а вот на паре страниц - можно выбирать язык), во-вторых - SEO-шники вас закидают тапками.
Le0_Nard Отправлено: 17 Декабря, 2017 - 06:22:50 • Тема: Защита от атак картинками • Форум: Работа с файловой системой и файлами

Ответов: 1
Просмотров: 1710
Здравствуйте!

Есть ли какие-то готовые решения по загрузке пользовательских картинок на сервер так, чтобы не подвергнуться атакам через картинки? Пробовал сам разобраться, но, видимо, я слишком туповат для этого...

Спасибо :3
Le0_Nard Отправлено: 22 Января, 2017 - 01:45:06 • Тема: PDO exec() не выполняется • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 64
Мелкий пишет:
Le0_Nard пишет:
а не дату 'YmdHis', которую нужно парсить

А нафига её парсить? Где-то дёрнуть date_format сразу в запросе, где-то: (new \Datetime($datefromdb))->format('...');

Пока для меня это самый простой способ работы с датой. Можно быстро делать всякие
CODE (PHP):
скопировать код в буфер обмена
  1. $db->exec('DELETE FROM `on_confirmation` WHERE `till`<'.time());

И не только. Например, я работаю с часовыми поясами пользователей. И так намного проще: беру время, прибавляю часовой пояс (таймштамп. Отрицательный или положительный), и после этого загоняю в dsteparser (DateTime с плюшками). И это, в моем виденьи, самый короткий путь.
Единственный минус: хранить нужно в bigint, ибо время в int "закончится" где-то в 2038 году.
Le0_Nard Отправлено: 10 Января, 2017 - 01:40:37 • Тема: Валидация формы на стороне клиента и сервера • Форум: Вопросы новичков

Ответов: 3
Просмотров: 822
Во-первых, required можно прописать в сами теги, зачем идти в обход через JS?
Во-вторых, если прописать в теге required, то при любой попытке отправки сам браузер ткнёт юзверя лицом в то, что где-то в поле пусто
В-третьих валидацию и правда нужно проводить и у клиента и на сервере, т.к. никто не отменял умельцев с инструментами разработчика.
А дважды выполняется, потому что:
CODE (javascript):
скопировать код в буфер обмена
  1. // 1:
  2. submitHandler: function(form){addData();}
  3.  
  4. // 2:
  5. if($("#results").val()=="SUCCESS VALIDATION"){addData();}
  6.  


Намного проще пойти так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function ajax() { //Ajax отправка формы
  3.  if(validate($("#form")){ //Само сабой, эту функцию надо будет описать, и сделать в ней return true||false
  4.  $.ajax({
  5.   type: "POST",
  6.   url: "send.php",
  7.   data: $("#form").serialize(),
  8.   success: function(data) {
  9.     $("#results").html(data);
  10.     //так понимаю, addData() - отсылает форму для сохранения в БД. Зачем делать два запроса к серверу? Объедините валидацию и сохранение в один запрос:
  11.       //Валидно - сохраняем, шлём ответ "Умнищка"
  12.       //Невалидно - шлём ответ "Дурашка" и не сохраняем.
  13.     //Ну а здесь, непосредственно, обработка самого ответа.
  14.    },
  15.    error:  function(xhr, str){
  16.     alert("Возникла ошибка!");
  17.    }
  18.   });
  19.  }else{alert('Где-то в поле пусто...');}
  20. }
  21.  
Le0_Nard Отправлено: 10 Января, 2017 - 01:21:30 • Тема: PDO exec() не выполняется • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 64
Доброй ночи, хабровча... Пхпсушники!

Возникла одна странная проблема, и я ума не приложу, что не так...
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `logs` (
  2.   `type` tinyint(1) NOT NULL COMMENT '0 - лог авторизации, 1 лог банов, 2 - лог действий',
  3.   `ip` varchar(23) DEFAULT NULL,
  4.   `status` tinyint(1) DEFAULT NULL COMMENT '0 - ошибка, 1 - успех, 2 - автомат после регистрации, 3 - автомат после смены имейла',
  5.   `email` varchar(50) DEFAULT NULL,
  6.   `password` varchar(40) DEFAULT NULL,
  7.   `ban_action` tinyint(1) DEFAULT NULL COMMENT '0 - забанен, 1 - разбанен',
  8.   `user_target_id` int(11) NOT NULL,
  9.   `till` int(11) DEFAULT NULL,
  10.   `isPerm` tinyint(1) DEFAULT NULL,
  11.   `user_init_id` int(11) DEFAULT NULL,
  12.   `text` text,
  13.   `date` int(11) NOT NULL
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

Работаю через PDO, всё стандартно: $db = new PDO(и далее по тексту);
Проблемная функция:
PHP:
скопировать код в буфер обмена
  1. function log_ban($id, $reason, $till=null, $isPerm=null){
  2.   global $db;
  3.   $ban_action = (!is_null($till)) ? 0 : 1; //0 - забанен, 1 - разбанен
  4.   $db->exec('INSERT INTO `logs` (`type`, `ban_action`, `user_target_id`, `till`, `isPerm`,  `user_init_id`, `text`, `date`) VALUES (1, '.$ban_action.', '.$id.', '.$till.', '.$_SESSION['id'].', "'.$reason.'", '.time().')');
  5.  }

Запрос может быть, например, таким:
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO `logs` (`type`, `ban_action`, `user_target_id`, `till`, `isPerm`, `user_init_id`, `text`, `date`) VALUES (1, 0, 3, 1486682564, 0, 1, "Безо всякой причины", 1484004164)

И проблема в том, что этот запрос абсолютно корректен. Он выполняется в любом MySQL-менеджере (я, например, юзаю HeidiSQL). Affected rows: 1 Найденные строки: 0 Предупреждения: 0 Длительность 1 query: 0,172 sec.
Но при вызове самой функции этот запрос не выполняется. Не, может он и выполняется, но ничего не происходит, а сам запрос возвращает (bool) false.
Подскажите, пожалуйста, в чём дело?

P.S. Да, датувремя я храню таймштампом в поле INT, ибо так при выборке получаю тот же таймштамп, а не дату 'YmdHis', которую нужно парсить. Если есть варианты лучше - с радостью посмотрю Улыбка
(Добавление)
Всё, нашёл: количество полей и вставляемых значений не совпадало ("`isPerm`" есть, а "'.$isPerm.', " - нет). Удивительно, почему не выдавалась ошибка...
Le0_Nard Отправлено: 25 Ноября, 2016 - 15:52:38 • Тема: Тофу вместо кириллицы внутри тега <i> • Форум: Вопросы новичков

Ответов: 10
Просмотров: 496
Я из принципа даже не делаю поддержку никакого IE, ибо этот браузер нужен только для того, чтобы скачать нормальный браузер.
А в блокноте сайты пишу с нуля, ибо бесит, что конструкторы захламляют что харддрайв, что бд. И еще плюс самописи - если что-то не работает - понимаешь, где и почему.
Le0_Nard Отправлено: 25 Ноября, 2016 - 14:47:56 • Тема: Тофу вместо кириллицы внутри тега <i> • Форум: Вопросы новичков

Ответов: 10
Просмотров: 496
NeuroZ пишет:
Если вы чертов рационалист то почему не пишите сайты в блокноте?

А кто сказал, что я так не делаю? Именно так и работаю.

А зарезервирован <i class="icon *"></i>
Le0_Nard Отправлено: 24 Ноября, 2016 - 15:13:26 • Тема: Тофу вместо кириллицы внутри тега <i> • Форум: Вопросы новичков

Ответов: 10
Просмотров: 496
Использовать один тег вместо такого же другого только потому, что другой почему-то не работает - это костыль. К тому же <i> короче. Не так ощутима разница, как между <b> и <strong>, но я чертов рационалист
А насчет проблемы - исправил. Убрал объявление шрифта в формате woff в виде хз-чего в base64 (хз, что это. Просто весь шрифт какой-то текстовой абракадаброй, будто все инструкции прогнали через хеш-функцию и объединили в одну строку длинной в почти 100к символов...), и все почему-то стало работать нормально.
Le0_Nard Отправлено: 22 Ноября, 2016 - 11:29:36 • Тема: Тофу вместо кириллицы внутри тега <i> • Форум: Вопросы новичков

Ответов: 10
Просмотров: 496
Добрый день, коллеги! Возникла проблема, с которой до этого не сталкивался. Писал на киберфоруме, но все, что мне там посоветовали - это костыль. Поэтому пишу сюда, т.к. знаю, что вы ребята хорошие и никогда костыль не предложите.

Итак, суть проблемы:
Скачал иконочный шрифт с fontello.com, объединил файлы, настроил, подключил и всё такое. Пользуюсь, радуюсь, и вдруг замечаю, что если я вставлю обычный тег <i></i> без атрибутов и с просто русским текстом внутри - получаю тофу и какие-то арабские иероглифы.

Принцип шрифтов fontello в присвоении своего символа-иконки юникоду, начиная с диапазона 0xE800 (и далее по надобности) и последующим добавлении символа-иконки перед тегом <i class="icon"></i> (css: .icon:before), так что фонтелло здесь ни при чем. Я даже полностью его отключал - проблема не исчезла.
<meta charset="utf-8> прописано, все текстовые файлы в UTF-8 без BOM. Черт побери, у меня даже .htaccess в UTF-8 без BOM!

Примитивный дебаг:
В исходном коде в браузере и в инструментах разработчика кириллица отображена нормально.
Если JavaScript-ом вытаскивать содержимое в консоли - все нормально.
Этот же JavaScript сообщает, что шрифт внутри этого <i> - Times New Roman
С кириллицей везде все нормально. Кроме тега <i>.

Вопрос: где может быть зарыта проблема, и что делать? Не хочется писать костыль вроде спана со стилями или юзать <em>, потому что <i> должен работать нормально, а не как взбредет в голову.
Le0_Nard Отправлено: 02 Ноября, 2016 - 10:06:20 • Тема: Помогите новичку • Форум: Вопросы новичков

Ответов: 5
Просмотров: 329
Курсы на самом деле - фигня. Там галопом по Европам, минимум практики, минимум деталей. Лучше просто найти онлайн/оффлайн учебники (их, слава богу, пруд пруди) начать нужно с html, потом css, js, php&mysql. Учебники, как правило, дают базовую информацию (хорооую базу), а всякие тонкости ты узнаешь уже из гугла, когда спрашиваешь у него "как сделать то-то"
Le0_Nard Отправлено: 29 Января, 2016 - 04:03:25 • Тема: Помогите, пожалуйста, убрать "www.", не мешая работе ЧПУ • Форум: Напишите за меня, пожалуйста

Ответов: 1
Просмотров: 35
Здравствуйте, дорогие! Помогите, пожалуйста, уломать mod_rewrite!
На сайте есть ЧПУ, но любимый хостинг по-дефолту перенаправляет site.ru на www.site.ru, что отвлекает, мешает и ломает мне общение со сторонним api.

Вот код ЧПУ:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^(.*)$ index.php?q=$1 [QSA]


Я как только ни пытался вставить сюда условие поиска www. и правило переадресации с кодом 301, но получаю слишком много переадресаций. Был даже самый отчаянный вариант:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^(.*)$ http://site\.ru/index.php?q=$1 [QSA,R=301,L]


Помогите, пожалуйста :'(
Le0_Nard Отправлено: 29 Января, 2016 - 02:48:01 • Тема: Что-то с кодировкой • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 37
я же писал, что принудительно поставил utf-8 в meta и в htaccess

и я понятия не имею, в чем проблема. phpmyadmin отображает всю кириллицу, значит проблема не в БД. Сайт отображает всю статичную кириллицу, т.е. вшитую в код. значит, проблема во взаимодействии сервера апача и сервера майскла. но где?
(Добавление)
Решил проблему, явно указав кодировку в DSN при подключении к БД, но это костыль, на самом деле... Хочется понять, в чём проблема была...
Le0_Nard Отправлено: 28 Января, 2016 - 21:35:03 • Тема: Что-то с кодировкой • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 37
Добрый вечер, дорогие! Возникла проблема (как обычно, на локальном сервере все прекрасно). Залил сайт на хостинг (freewha.com), Импортировал БД, все настроил. Однако, при генерации страницы весь кириллический текст, который берется из БД, либо вовсе не отображается, либо заменяется знаками вопроса.

    Техническая информация:
  • Кодировка файлов кода - UTF-8 без BOM (кириллица, вшитая в код, отображается нормально)
  • Кодировка UTF-8 так же задана в <meta> и .htaccess
  • Кодировка и сравнение всех таблиц и колонок БД - utf8_general_ci
  • Общаюсь с БД посредством PDO


В факе хостинга такой проблемы не описано, форума нет, саппорт молчит. Помогите, пожалуйста. Перепробовал все, что знаю.

Если поможет, сайт - librogc.tk
Le0_Nard Отправлено: 22 Сентября, 2015 - 20:21:11 • Тема: Антимат • Форум: Вопросы новичков

Ответов: 15
Просмотров: 750
Возьми готовый скрипт и поменяй ненужное тебе действие звцензуривания на нужный тебе бан с удалением. Никто просто так писать тебе скрипт, коментировать каждую.строку и объяснять, что с этим делать, не будет. Сам антимат, если делать качественно, с обработкой исключений, логом, оптимизацией и т.д. - кропотливая работа.

Если держишь сайт - учи язык, но котором он написан. Твоя позиция выглядит, как "дано: есть сайт, ля него написали игру. Надо: написать скрипт, который вытащит из таблицы БД с фоточками три последних и вставит их в инвентарь игрока". Ни тебе данных, которыми оперировать, ни окружения. Сделайте, объясните, подгоните под мой сайт.
Le0_Nard Отправлено: 22 Сентября, 2015 - 19:41:09 • Тема: jquery замена двух символов переноса строки на один • Форум: JavaScript & VBScript

Ответов: 5
Просмотров: 1408
квадратную скобку закрой :/

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB