PHP.SU

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

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

> Найдено сообщений: 197
Vladimir Kheifets Отправлено: 20 Апреля, 2018 - 09:32:34 • Тема: Не удается найти уязвимость в сайте • Форум: Вопросы новичков

Ответов: 4
Просмотров: 169
Gerd пишет:
Мужики, выручайте.
Написал сайт, его постоянно взламывают и заливают вредоносные php скрипты
https://arg-master[dot]ru/
Помогите найти уязвимость в сайте, спс.
https://arglass.ru/

Добрый день!
Согласен с тем, что Вам посоветовали коллеги.
Желательно не только изменить пароли, но и по возможности их не кому не показывать.
Начать нужно с проверки Вашего компьютера и смены пароля на нём.
Нужно проверить изменяется ли код динамически (через eval и.т.п) или перезаписывается на сервере.
Если код изменяется на сервере, нужно проверить log-файлы.
Сайт сомописный или Вы используете CMS и/или какие-либо библиотеки (Plugins)?
Удачи!
Vladimir Kheifets Отправлено: 18 Апреля, 2018 - 14:04:22 • Тема: Как проверить что email не отправился? • Форум: HTTP и PHP

Ответов: 6
Просмотров: 112
Doox911 пишет:
Цитата:

Добрый день!
Вы можете проверять входящие сообщения на сервере использую функции imap
на адрес from mail, указанный в PHPMailer.
Если отправленное сообщение не доставлено клиенту, то на Ваш сервер придёт ответ с “Mail delivery failed”.
Примерно так это работает:
Спойлер (Отобразить)

1. Поясните паттерн
PHP:
скопировать код в буфер обмена
  1. $shSubject="/Mail\ delivery\ failed/i";

2. Я ж не себе отправляю письма, а на почтовые ящики к которым пароль не знаю. Или я что-то не понимаю?

1. Поясняю паттерн:
Проверяется, на наличие текста: "Mail delivery failed", что я вляется признаком недоставки Вашего сообщения.

2. Вы на Вашем сервере создаёте ящик для email from, например, для рассылок, no-reply@MyMail.ru . Наверно, к своему серверу у Вас есть доступ?
Работает это, например, так, прошла рассылка по адресам из некоторого списка,
запускакете через CRON такую проверку и исключаете из списка битые адреса. Только в этом случаете нужно обязательно проверять причину недоставки.
Vladimir Kheifets Отправлено: 18 Апреля, 2018 - 09:47:28 • Тема: Как проверить что email не отправился? • Форум: HTTP и PHP

Ответов: 6
Просмотров: 112
Doox911 пишет:
Доброго времени суток. Формирую и отправляю письмо при помощи PHPMailer.
Проверяю отправку письма таким способом:

Срабатывает код типо отправилось, на самом деле нет. Как мне отловить момент не отправки по другому?

Добрый день!
Вы можете проверять входящие сообщения на сервере использую функции imap
на адрес from mail, указанный в PHPMailer.
Если отправленное сообщение не доставлено клиенту, то на Ваш сервер придёт ответ с “Mail delivery failed”.
Примерно так это работает:
Спойлер (Отобразить)

Удачи!
Vladimir Kheifets Отправлено: 17 Апреля, 2018 - 11:19:37 • Тема: PHP Вывод картинки (Mysql->title == названию картинке в папке.jpg) то echo картинку • Форум: Вопросы новичков

Ответов: 1
Просмотров: 83
samorez пишет:
В базе хранится пустая картинка.на нее наносится текст с $title и сохраняется рандомно в файл с разными именами title.jpg
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?PHP foreach ($products as $item){
  3.    $jpg_image = imagecreatefromjpeg("img/$item->images");
  4.    $white = imagecolorallocate($jpg_image, 255, 255, 255);
  5.    $font_path = 'E:\serv\OSPanel\domains\localhost\ verdana.ttf';
  6.    $text = $item->title; //текст 1
  7.    $text2 = $item->desc; //текст 2
  8.    imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
  9.    imagettftext($jpg_image, 25, 0, 100, 400, $white, $font_path,$text2);
  10.    imagejpeg($jpg_image,"img/$item->title.jpg");//сохранил картинки
  11.    imagedestroy($jpg_image);
  12. }
  13. ?>


Теперь хочу вывести в цикле картинки из папки,если title из БД равен названию файла в папке .
в базе хранится имена машин например Toyota,BMW которое наносится на пустую картинку и сохр. а файл создается Toyota.jpg , BMW.jpg. Как вывести.писал много выражений выводило битые картинки..
использую redbeanphp.

Помогите пожалуйста!

Добрый день!

В цикле foreach ($products as $item) с помощью PHP GDLib Вы генерируются картинки, использую свойства объекта $item: images, title, desc
Вы пишите, что выводятся “битые картинки..”.
1. Есть альтернативное решение - не использовать GDLib, а просто выводить картинки и “накладывать” поверх них текст использую слои (HTML и CSS)
2. Собственно, как Вы выводите картинки из кода не видно.
3. Вы уверены, что название файлов "img/$item->images" расширением ".jpg" и действительно существуют эти файлы?
Попробуйте проверить:
PHP:
скопировать код в буфер обмена
  1. $img= "img/$item->images";
  2. echo "$img<br><img='$img' ><br>";

4. Если с п.2 OK, тоже самое нужно сделать после сохранения с "img/$item->title.jpg"

Удачи!
Vladimir Kheifets Отправлено: 16 Апреля, 2018 - 10:14:59 • Тема: Интересная и сложная задачка... • Форум: Вопросы новичков

Ответов: 7
Просмотров: 173
kuller пишет:
Доброго времени суток!
Помогите пожалуйста решить задачку. На словах вроде все понятно и просто, но на деле возникает много сложностей.
Есть обычная регистрация на сайте с рефиральной системой т.е. человек может по своейреферальной ссылке пригласить другого человека.
................................ .........
Как видим из таблицы есть следуюшие колонки two_level, three_level, four_level и т.к. до seven_level. В каждую эту колонку должны записаться id от моих приглашенных.
................................ ..........

Добрый день!
Смущает фиксированное количество level.
Вдруг, через пару лет понадобится level_eight?
Может быть сделать такую структуру:
1. id
2. start_user
3. level_number
4. ref_user


Удачи!
Vladimir Kheifets Отправлено: 14 Апреля, 2018 - 14:45:32 • Тема: Кто поможет с кавычками? • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 85
Solomon пишет:
Здравствуйте!Возникла такая проблема,при написании ядра сайта.
Есть строка id,login,мне нужно,чтобы в конечном итоге было так `id`,`login`

Добрый день! Я воздержусь от комментариев по поводу OOР и отвечу на Ваш вопрос:
PHP:
скопировать код в буфер обмена
  1. $fields="id,login";
  2. $fields = '`'.implode('`, `', explode(',', $fields)).'`';
  3. echo $fields;
  4. /*
  5. //Результат:
  6. `id`, `login`
  7. */

Удачи!
Vladimir Kheifets Отправлено: 13 Апреля, 2018 - 08:25:27 • Тема: отсортировать диапазон ip • Форум: Вопросы новичков

Ответов: 4
Просмотров: 111
савелей пишет:
Привет всем,
у меня просьба, помогите отсортировать IP диапазоны,
нужно из списка вида:
44.202.254.0
44.202.254.0
44.202.255.0
.................
получить список:
44.202.254.0
44.202.255.0
.....................
прошу помогите, буду благодарен любой информации..

Привет!
Как я понял Вам нужно Выбрать из списка уникальные адреса.
Можно сделать так:
PHP:
скопировать код в буфер обмена
  1. $ip=['44.202.254.0',
  2. '44.202.254.0',
  3. '44.202.255.0',
  4. '22.160.84.0',
  5. '22.160.85.0',
  6. '22.160.86.0',
  7. '22.160.86.0',
  8. '22.160.87.0'];
  9.  
  10. $res= array_unique ( $ip ,  SORT_STRING  );
  11. foreach($res as $v) echo "$v<br>";
  12.  
  13. /*
  14. Результат:
  15. 44.202.254.0
  16. 44.202.255.0
  17. 22.160.84.0
  18. 22.160.85.0
  19. 22.160.86.0
  20. 22.160.87.0
  21. */

Удачи!
Vladimir Kheifets Отправлено: 12 Апреля, 2018 - 19:47:22 • Тема: пишет ошибку • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 65
Добрый вечер! У Вас второй параметр в explode массив.
Нужно убрать скобки:

Удачи!
Vladimir Kheifets Отправлено: 12 Апреля, 2018 - 13:10:55 • Тема: ошибка в пхп объясните • Форум: Вопросы новичков

Ответов: 7
Просмотров: 197
php2 пишет:
а где мне ту директорию взять

Добрый день! Из Вашего кода видно, что в директории, в которой работает PHP-скрипт
должна быть поддиректория "pics" и в ней должны быть jpg-файлы.
Если её нет, то нужно её создать и записать в неё файлы.
Так можно увидеть, есть ли у Вас поддиректория "pics" :
PHP:
скопировать код в буфер обмена
  1. $dh = new DirectoryIterator(dirname(__FILE__));  
  2. foreach( $dh as $file )
  3. {
  4.   echo "$file<br>";
  5. }

Удачи!
Vladimir Kheifets Отправлено: 11 Апреля, 2018 - 16:07:40 • Тема: ошибка в пхп объясните • Форум: Вопросы новичков

Ответов: 7
Просмотров: 197
php2 пишет:

................................ .....................
$dh = new DirectoryIterator( "pics" );
................................ .....................

Fatal error: Uncaught UnexpectedValueException: DirectoryIterator::__construct(pics,pics): �� ������ ����� �������� ����. ......

Добрый день! Что-то у Вас $dh = new DirectoryIterator( "pics" ) не хочет работать с директорией "pics"
Проверьте, если у Вас эта директория, открыт ли к ней доступ и попробуйте написать так:
PHP:
скопировать код в буфер обмена
  1. $dh = new DirectoryIterator(dirname(__FILE__)."/pics");

Удачи!
Vladimir Kheifets Отправлено: 11 Апреля, 2018 - 08:00:32 • Тема: Не работает foreach() • Форум: Вопросы новичков

Ответов: 5
Просмотров: 142
Srthmnt пишет:
foreach($data as $line)
{
}
В чём причина?
Код ошибки:
Warning: Invalid argument supplied for foreach() in index.php on line 4

Доброе утро! Вообщем-то в причине этой ошибки разобрались.
На всякий случай, нужно иметь ввиду, что в качестве первого параметра foreach может быть задан не только массив, но и объект.
В том случае, если, как у Вас, должен быть массив, но по какой-то причине он там не оказывается можно избежать проблем используя is_array или (array)$data
PHP:
скопировать код в буфер обмена
  1. $data =[1,2,3];
  2. var_dump($data);
  3. echo "<hr>";
  4. foreach ($data as $line)
  5. {
  6.     echo  "$line<br>";
  7. }
  8. echo "<hr>";
  9. $data = 1;
  10. var_dump($data);
  11. echo "<hr>";
  12. foreach ((array)$data as $line)
  13. {
  14.     echo  "$line<br>";
  15. }
  16. echo "<hr>";
  17. if(is_array($data))
  18. {
  19.         foreach ($data as $line)
  20.         {
  21.             echo  "$line<br>";
  22.         }
  23. }
  24.  
  25. /*
  26. Результат:
  27. array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
  28. 1
  29. 2
  30. 3
  31. --------------------------------
  32. int(1)
  33. 1
  34. */
  35.  

Удачи!
Vladimir Kheifets Отправлено: 10 Апреля, 2018 - 15:45:02 • Тема: Не работает foreach() • Форум: Вопросы новичков

Ответов: 5
Просмотров: 142
Srthmnt пишет:
Код программы:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <title>ShT</title>
  2. <?php
  3. $data = fopen('data.txt', 'a+');
  4. foreach($data as $line){
  5. echo $line;
  6. echo "<br />";
  7. }
  8. ?>
  9. <meta http-equiv="refresh" content=3; url='https://ShT-com.000webhostapp.com/'>

, а точнее, эта часть:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. foreach($data as $line){
  3.  
  4. }
  5.  

. В чём причина?
Код ошибки:
Warning: Invalid argument supplied for foreach() in index.php on line 4

Добрый день! Почему не работает Вам объяснили. Если вместо
$data = fopen('data.txt', 'a+'); написать
$data = file('data.txt'); то будет работать.
Удачи!
Vladimir Kheifets Отправлено: 10 Апреля, 2018 - 09:28:49 • Тема: Скрипт формы заказа • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 68
supmener пишет:
Здравствуйте. Не завалялся ли у кого то скрипт или может видел кто в сети, для случая, когда к разным товарам на сайте есть кнопка «Заказать» и у неё в ссылке есть комментарий <!-- --> или у изображения с товаром (банера) прописан "alt". И надо чтобы при нажатии на ссылку или картинку со ссылкой текст передавался в заголовок формы заказа. Например скрытый текст "Заказ игрушки розового хомячка" передаётся в заголовок формы заказа, чтобы покупателю не надо было самостоятельно заполнять это поле.

Здравствуйте. Случайно не завалялся. Попробуйте JS функцию SetStrToObj(id,str)
CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.         function SetStrToObj(id,str){
  3.                 obj = document.getElementById(id);                     
  4.                 if(obj)
  5.                 {
  6.                         if(obj.type=="text")
  7.                         {
  8.                                 obj.value=str;
  9.                         }
  10.                         else
  11.                         {                              
  12.                                 obj.innerHTML=str;
  13.                         }
  14.                 }      
  15.         }      
  16. </script>

Параметры:
id - объекта, в который должен вставляться техт - input или id html объекта
str - вставляемый текст

Пример использования:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <script>
  5.         function SetStrToObj(id,str){
  6.                 obj = document.getElementById(id);                     
  7.                 if(obj)
  8.                 {
  9.                         if(obj.type=="text")
  10.                         {
  11.                                 obj.value=str;
  12.                         }
  13.                         else
  14.                         {
  15.                                 alert(obj);
  16.                                 obj.innerHTML=str;
  17.                         }
  18.                 }      
  19.         }      
  20. </script>
  21. <title>Test</title>
  22. </head>
  23. <body>
  24. <a  href="#" onclick="SetStrToObj('t1','Заказ игрушки розового хомячка')" >Заказ</a>
  25. <img src="xxx.gif"  name="test"  onclick="SetStrToObj('t2','Заказ игрушки розового хомячка')" />
  26. <span id="t1"></span>
  27. <form>
  28. <input name="t2"  id="t2"  type="text" />
  29. </form>
  30. </body>
  31. </html>

Удачи!
Vladimir Kheifets Отправлено: 08 Апреля, 2018 - 11:46:07 • Тема: В цикле foreach получаю только последнюю запись массива • Форум: Вопросы новичков

Ответов: 3
Просмотров: 129
t3dev пишет:
Все добрый день. Я использую следующий код для вывода объектов с массивом значений. Всё работает почти правильно, но в последнем цикле я получаю только последнюю запись массива. Подскажите пожалуйста, что не так?


Добрый день!
См. ниже. Значение $items определяется в 1 стр., массив $childClassesObj в 6 стр. Для чего нужна в цикле foreach($childClassesObj as $code) строка $items->setChildClasses($childClassesObj)?
PHP:
скопировать код в буфер обмена
  1. foreach ($classItems as $i => $items)
  2. {
  3.         $childClassesArray = explode(", ", $items->getSubClasses());
  4.         foreach ($childClassesArray as $childClassesCodes)
  5.         {
  6.                 $childClassesObj = explode(",", $childClassesCodes);
  7.                 foreach($childClassesObj as $code)
  8.                 {
  9.                     ..................
  10.                     ..................
  11.                     $items->setChildClasses($childClassesObj);
  12.                 }    
  13.         }  
  14. }

Удачи!
Vladimir Kheifets Отправлено: 01 Апреля, 2018 - 11:34:19 • Тема: расширенный поиск • Форум: Вопросы новичков

Ответов: 7
Просмотров: 220
Мелкий пишет:
Vladimir Kheifets пишет:
Вывод:
Ваше решение работает а четыре раза медленне моего

Внимательнее надо результаты сравнивать.
Если не придираться к самому измерению - то разница в 2,5 раза. Внимание на порядок величин.

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

И по существу - оба времени генерации SQL не имеют значения на фоне времени выполнения этого запроса, который в большинстве случаев даст гарантированный seqscan всей таблицы.

Согласен с Вами. Невнимательно сравнил резудьтат и измерение будет сильно плавать, но вывод мой Вы процетировали не полностью:
Vladimir Kheifets пишет:
...В даном случае это не принципиально, но может плохо работать на больших объёмах данных.

Страниц (14): [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