PHP.SU

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

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

> Найдено сообщений: 384
Ts.Saltan Отправлено: 07 Июня, 2015 - 00:51:54 • Тема: Разбить строку по регулярному выражению • Форум: Вопросы новичков

Ответов: 6
Просмотров: 243
LIME пишет:
Ts.Saltan ты знешь что значат эти 3 символа?
MiksIr пишет:
.*?

Знаю
Также убирает жадность
Ts.Saltan Отправлено: 06 Июня, 2015 - 16:13:31 • Тема: Разбить строку по регулярному выражению • Форум: Вопросы новичков

Ответов: 6
Просмотров: 243
CODE (htmlphp):
скопировать код в буфер обмена
  1. "/<!--START-->[*]<!--END-->+/U"


модификатор U убирает жадность
Ts.Saltan Отправлено: 06 Июня, 2015 - 10:54:25 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
twelveee пишет:
приложение для хрома.

Зачем? Есть же встроенный инспектор (вроде ctrl+shift+i), вкладка network, покажет передаваемые данные в читабельном виде
Ts.Saltan Отправлено: 06 Июня, 2015 - 10:51:38 • Тема: heredoc не работает, как аргумент функции • Форум: Вопросы новичков

Ответов: 14
Просмотров: 746
arimanecro пишет:
разве второй способ будет работать?

Точно, у функции тест2 надо убрать аргумент

arimanecro пишет:
и где while?

Если результат содержит одну строку, цикл не нужен. А судя по коду первого сообщения, даже если результатов несколько, переменная heredoc всё равно переопределится.
Если надо вернуть несколько строк без цикла - mysqli_fetch_all


arimanecro пишет:
и первый способ бессмысленный

Такой подход с heredoc и с мешаниной php и html кода в принципе не верный. Надо в таком случае использовать шаблонизаторы.

arimanecro пишет:
он не позволяет использовать функцию, как она задумывалась

Откуда ж мне знать, для чего она там кем-то задумывалась? Каков был вопрос, на такой и ответил.
Ts.Saltan Отправлено: 04 Июня, 2015 - 22:09:02 • Тема: Как вывести такую переменную? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 158
Абсолютно не важно, где объявлена функция: до или после её вызова.

А чтоб не было такого
kuzmit4 пишет:
А выводить сами ошибки пользователю нужно в верху страницы.

Сначала пусть отработает логика php, а потом уже пусть идёт вывод данных пользователю.
Ts.Saltan Отправлено: 04 Июня, 2015 - 18:27:38 • Тема: heredoc не работает, как аргумент функции • Форум: Вопросы новичков

Ответов: 14
Просмотров: 746
PHP:
скопировать код в буфер обмена
  1. $heredoc = <<<EOD
  2. <div style='width: 600px; height: 600px; margin: 0 auto; border:rgba(0,0,0,1.00) thin solid;'>
  3. <p>Name: {$row['t_name']}</p>
  4. <p>Description: {$row['description']}</p>
  5. </div>
  6. EOD;
  7.  
  8. test($heredoc);


на момент определения переменной $heredoc, откуда берётся переменная $row? какое у неё значение? Должен вылезти notice, а вместо переменной берётся null


arhon88 пишет:
а как инициализировать?
если написать $heredoc = '';
то он и будет выводить в цикле пустоту.

Вариант 1. Переменную определять внутри функции. Тогда надо использовать global или пусть сама функция передаёт значение переменной. Ну или передавать ссылку на переменную.
Вариант 2. Пусть функция возвращает массив значений, а уже вне функции мы определим переменную.

PHP:
скопировать код в буфер обмена
  1. //1.
  2. function test() {
  3. global $heredoc;
  4. $q_r = mysqli_query($conn, "SELECT * FROM test");
  5. while($row = mysqli_fetch_assoc($q_r)) {
  6. echo $heredoc = <<<EOD
  7. <div style='width: 600px; height: 600px; margin: 0 auto; border:rgba(0,0,0,1.00) thin solid;'>
  8. <p>Name: {$row['t_name']}</p>
  9. <p>Description: {$row['description']}</p>
  10. </div>
  11. EOD;
  12. }
  13. }
  14.  
  15. $heredoc = NULL;
  16. test();
  17.  
  18. //2
  19. function test2($heredoc) {
  20. $q_r = mysqli_query($conn, "SELECT * FROM test");
  21. return mysqli_fetch_assoc($q_r);
  22. }
  23.  
  24. $row= test2();
  25. $heredoc = <<<EOD
  26. <div style='width: 600px; height: 600px; margin: 0 auto; border:rgba(0,0,0,1.00) thin solid;'>
  27. <p>Name: {$row['t_name']}</p>
  28. <p>Description: {$row['description']}</p>
  29. </div>
  30. EOD;
  31.  
Ts.Saltan Отправлено: 31 Мая, 2015 - 20:03:38 • Тема: Парсинг номеров телефонов • Форум: FreeLance

Ответов: 4
Просмотров: 3242
CURL'ом думаю получится такое сделать
Ajax'ом отправляется POST запрос на адрес https://realty[dot]yandex[dot]ru/gate/phone/get
Передаются параметры:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. params[hashes][]
  3. params[offerId]
  4. crc
  5.  


Алгоритм действий таков:
1. Настраиваем curl на сохранение получаемых кук
2. Получаем страницу https://realty[dot]yandex[dot]ru/offer/2566517
3. Теперь нужно спарсить значения, чтоб потом их передать
params[offerId] - можно взять из url - в данном случае значение 2566517
params[hashes][] - нечто закодированное base64, на странице располагается в атрибуте data-hash, нужна регулярка, чтоб из этого
CODE (html):
скопировать код в буфер обмена
  1. data-hash="NLeODKWyVD870iWfXhlYIg=="

доставала значение NLeODKWyVD870iWfXhlYIg==
crc - часть кода страницы, где это содержится
CODE (htmlphp):
скопировать код в буфер обмена
  1. crc":"ud9110409ffc0e84edb6932eaccdf2717","user-region

снова нужна регулярка, чтоб достать ud9110409ffc0e84edb6932eaccdf2717
4. Когда все параметры "выдраны", отправляем POST запрос на https://realty[dot]yandex[dot]ru/gate/phone/get
Ts.Saltan Отправлено: 31 Мая, 2015 - 19:42:04 • Тема: Ошибка в переходе по ссылке • Форум: Вопросы новичков

Ответов: 4
Просмотров: 523
Ох уж эти кавычки

SELECT * FROM `news` ...
Ts.Saltan Отправлено: 31 Мая, 2015 - 19:39:43 • Тема: Условие else выводится раньше времени • Форум: Вопросы новичков

Ответов: 4
Просмотров: 177
looklike пишет:
сообщение об ошибке появляется сразу при загрузке страницы с формой входа

Так правильно выводит
Первое условие - false

Второе также false

Значит выполняется код из else

Странно, что нет warning, необходимо включить вывод ошибок
Ts.Saltan Отправлено: 31 Мая, 2015 - 19:30:52 • Тема: SQL Инъекция • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 71
dadasheff пишет:
Как защитится от SQl Инъекции ?

Правильно делать подготовленные запросы. Это умеют делать драйвера mysqli и PDO

PHP:
скопировать код в буфер обмена
  1. //Подключение к базе необходимо переделать на лад PDO
  2. $dsn = 'mysql:dbname='.$dbname.';host='.$host;
  3. $pdo = new PDO($dsn, $user, $pass);
  4.  
  5. $sth = $pdo->prepare('SELECT * FROM articles WHERE `id` = :id');
  6. $sth->bindParam('id', $_GET['id'], PDO::PARAM_INT);
  7. $sth->execute();
  8. $query = $sth->fetchAll();
Ts.Saltan Отправлено: 31 Мая, 2015 - 19:22:20 • Тема: Замена URL на <title> • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1014
Строитель пишет:
Значения title (массив) записаны в $_SESSION, и при первом заходе на сайт они в браузер не выводятся.

Быть может сначала данные выводятся, а потом уже заносятся в $_SESSION?
тут без кода ничего не скажешь
Ts.Saltan Отправлено: 31 Мая, 2015 - 08:47:56 • Тема: Передать поток с CURL методом POST через CURL • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1098
pps88 пишет:
CURL конечного сервера просто некуда обратиться, IP динамика

Так, теперь по порядку
Насколько я понял, логика работы скриптов такова

Есть какой-то сервер1, который скачивает картинку, потом передаёт её серверу2.
У сервера2 динамический ip?

Если всё так, то первым должен подключиться сервер2 к серверу1, сервер1 начинает скачивание и потом отдаёт данные серверу2, который в итоге сохраняет картинку у себя.
(Добавление)
pps88 пишет:
над этими потоками

Поток к файлу в принципе невозможно передать от скрипта к скрипту.
Ts.Saltan Отправлено: 30 Мая, 2015 - 16:17:15 • Тема: Передать поток с CURL методом POST через CURL • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1098
pps88 пишет:
output_image=$output_image

бинарные данные возможно передать строкой, только если их перед этим закодировать, например, base64. Но тогда размер передаваемых данных возрастёт в разы

curl сам умеет передавать файлы
PHP:
скопировать код в буфер обмена
  1.  
  2. curl_setopt($curl, CURLOPT_POSTFIELDS, [
  3.    'fh2' => $fh2,
  4.    'output_image' => '@'.realpath($saveDirectory . '/' . $imageName . '.jpg')
  5.  
  6. ]);
  7.  


только, если не ошибаюсь, в принимающем скрипте файл будет лежать в массиве $_FILES
(Добавление)
так, стоп
зачем передавать поток fh2 с одного скрипта на другой?
пусть принимающий скрипт сам создаёт новый поток и сохраняет файл
(Добавление)
принимающий скрипт должен сохранять файл примерно так
PHP:
скопировать код в буфер обмена
  1. move_uploaded_file( $_FILES["output_image"]["tmp_name"],  $_FILES["output_image"]["name"]);
Ts.Saltan Отправлено: 30 Мая, 2015 - 16:03:35 • Тема: Замена URL на <title> • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1014
Строитель пишет:
Фильтровать htmlspecialchars() ? Или этого не достаточно?

думаю, этого хватит
Ts.Saltan Отправлено: 30 Мая, 2015 - 16:00:19 • Тема: Замена URL на <title> • Форум: Вопросы новичков

Ответов: 17
Просмотров: 1014
и еще, необходимо фильтровать все поступающие от пользователя переменные, в т.ч. user-agent, т.к. его можно подделать и подсунуть туда вредоносный код

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB