PHP.SU

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

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

> Найдено сообщений: 30
kuzmit4 Отправлено: 10 Сентября, 2020 - 16:19:32 • Тема: Исправить ошибку. Array and string offset access syntax with curly braces is no longer supported • Форум: Вопросы новичков

Ответов: 1
Просмотров: 2984
Есть скрипт для генерации .htpasswd. На 7 версии PHP работает нормально, на 8 версии PHP вылетает ошибка.
PHP:
скопировать код в буфер обмена
  1. Fatal error: Array and string offset access syntax with curly braces is no longer supported in /path/htpasswd.php on line 8


Я так понимаю, что ругается на $plainpasswd{0}, за что отвечает этот кусок, как поменять чтобы нормально работало без ошибок ?
Я новичек в PHP, опыта мало, прошу не пинать.

PHP:
скопировать код в буфер обмена
  1. function crypt_apr1_md5($plainpasswd)
  2. {
  3.     $salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789as"), 0, 8);
  4.     $len = strlen($plainpasswd);
  5.     $text = $plainpasswd.'$apr1$'.$salt;
  6.     $bin = pack("H32", md5($plainpasswd.$salt.$plainpasswd));
  7.     for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); }
  8.     for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd{0}; }
  9.     $bin = pack("H32", md5($text));
  10.     for($i = 0; $i < 1000; $i++)
  11.     {
  12.         $new = ($i & 1) ? $plainpasswd : $bin;
  13.         if ($i % 3) $new .= $salt;
  14.         if ($i % 7) $new .= $plainpasswd;
  15.         $new .= ($i & 1) ? $bin : $plainpasswd;
  16.         $bin = pack("H32", md5($new));
  17.     }
  18.     for ($i = 0; $i < 5; $i++)
  19.     {
  20.         $k = $i + 6;
  21.         $j = $i + 12;
  22.         if ($j == 16) $j = 5;
  23.         $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
  24.     }
  25.     $tmp = chr(0).chr(0).$bin[11].$tmp;
  26.     $tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
  27.     "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
  28.     "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
  29.  
  30.     return "$"."apr1"."$".$salt."$".$tmp;
  31. }
  32.  
  33. // Задаём логин и пароль
  34. $username = 'username';
  35. $password = 'pAsSwOrD';
  36.  
  37. $encrypted_password = crypt_apr1_md5($password);
  38.  
  39. // Print line to be added to .htpasswd file
  40.  
  41. $outline = $username . ':' . $encrypted_password;
  42.  
  43. echo $outline;
  44.  
  45. // Или можно создать файл на диске
  46.  
  47. # file_put_contents('.htpasswd', $outline);
kuzmit4 Отправлено: 19 Мая, 2020 - 23:13:04 • Тема: Поиск в строке stristr, как найти несколько слов? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 253
Добрый день помогите с stristr
Мне нужно узнать есть ли слова в строке, или нет.
Делаю я это таким способом.
PHP:
скопировать код в буфер обмена
  1. // Проверяем, есть в строке слово xxx или нет
  2.     $var = 'текст текст текст xxx текст текст текст ';
  3.     if (stristr($var, 'xxx')) {
  4.         echo "В строке есть слово xxx";
  5.     }


С одним словом все работает хорошо.
Есть способ как-то искать несколько слов одновременно ?
Например - xxx, yyy, zzz, и т.д.

Т.е. грубо говоря, у меня есть массив слов, на которые нужно проверить строку.
kuzmit4 Отправлено: 04 Мая, 2020 - 21:25:34 • Тема: Помогите изменить вывод (microtime) • Форум: Вопросы новичков

Ответов: 3
Просмотров: 359
Мелкий пишет:
У вас в $time_load и есть время.

Да правильно. Но она в формате но оно в таком формате "6.089348077774"
Как его перевести в такой формат "6.089 сек" ?
(Добавление)
В общем сделал следующим образом.
PHP:
скопировать код в буфер обмена
  1. echo round(($time_load),1)." сек."; // округляем до 1 символа после запятой.

Вопрос закрыт.
kuzmit4 Отправлено: 04 Мая, 2020 - 20:42:27 • Тема: Помогите изменить вывод (microtime) • Форум: Вопросы новичков

Ответов: 3
Просмотров: 359
PHP:
скопировать код в буфер обмена
  1. // Вычисляем время обработки скрипта
  2. $start = microtime(true);
  3.  
  4. // тут идет сам код скрипта, который обрабатывается 1-20сек. например
  5.  
  6. // Закончили считать время, выводим его.
  7. $time_load = microtime(true) - $start;
  8. printf('Время: %.3F сек.', $time_load);


тут возникает следующий вопрос. как время запихнуть в переменную ?
чтобы потом время уже из переменной вывести через echo.

PHP:
скопировать код в буфер обмена
  1. $final_time = ""; // тут посчитанное время
  2. echo $final_time; // выводим то что в переменной


Помогите пожалуйста, не могу разобраться с %.3F
kuzmit4 Отправлено: 14 Июня, 2019 - 18:08:57 • Тема: CLEAN MX - ложные срабатывания на наш сайт (как убрать сайт из их базы) ? • Форум: Прочее

Ответов: 1
Просмотров: 55
У нас есть сайт http://eclean24.ru/, он попал в базу CLEAN MX, как до них дописаться, и убрать сайт из их блэклиста ?
Вот результаты по вирус тотал.
https://www[dot]virustotal[dot]com/gui/u[dot][dot][dot]e1e1e2/detection

Раньше с другими сайтами была похожая проблема, писал на почту abuse@clean-mx.de следующее письмо.
"http://site[dot]com/ "False alarm," a request to remove from the database of suspicious sites."

После этого сайт убирали из их базы, на данный момент, они даже письма не читают. Пробовал отправлять уже раз 5.
Как быть, как выбить сайт из их базы ?
У кого есть опыт, куда писать и что делать ?
kuzmit4 Отправлено: 30 Октября, 2018 - 21:09:04 • Тема: Как заблокировать доступ к странице через .htaccess ? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 242
На сайте был вирус, и наделал левых ссылок, такого плана.
http://site[dot]ru/test/bikeadler/?r[dot][dot][dot]D_%7Bposition%7D
Оригинальный url страницы http://site[dot]ru/test/bikeadler/
Как заблокировать доступ к страницам, которые содержат одно или несколько слов из этой строки ?roistat=direct1_%7Bsource_type%7D_%7Bbanner_id%7D_&roistat_referrer=%7Bsource%7D&roistat_pos=%7Bposition_type%7D_%7Bposition%7D
Пробовал несколько вариантов, не получается, кто подскажет рабочий код ?
kuzmit4 Отправлено: 02 Августа, 2017 - 14:51:29 • Тема: Curl+ssi (на одном сервере работает/на другом нет) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 365
Добрый день. Использую Curl для загрузки файла.
На хостинге работает нормально, на домашнем сервере не работает (никаких ошибок не выдает).
На домашнем сервере - если качаем по http:// - то все работает нормально, не работает только по https://
Куда копать, почему не работает ?
Помогите пожалуйста, очень долго вожусь с этой проблемой.
PHP:
скопировать код в буфер обмена
  1. function get_data($url) {
  2.     $agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
  3.     $ch = curl_init();
  4.     $timeout = 5;
  5.     curl_setopt($ch, CURLOPT_URL, $url);
  6.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  7.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  8.     curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  9. //    // говорят должно помогать при неработающем ssl (включал на домашнем сервере, мне не помогло)
  10. //    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  11. //    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  12.     $data = curl_exec($ch);
  13.     curl_close($ch);
  14.     return $data;
  15. }
  16. $returned_content = get_data('https://site.ru/test.zip');
  17.  


Работает apache 2.2
Скрин настроек PHP 5.4
kuzmit4 Отправлено: 18 Мая, 2017 - 23:07:00 • Тема: Проверить ссылку на доступность. HTTPS • Форум: Вопросы новичков

Ответов: 1
Просмотров: 174
Добрый день.
Помогите пожалуйста разобраться.
Есть скрипт для проверки ссылок, если ссылка рабочая (200 ок). То скрипт выдает что все окей, если не рабочая. - выдает что ошибка.
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "Проверка ссылкиы: ";
  3. $content = @file_get_contents("http://update.joomla.org/core/extension.xml");
  4. if (strpos($http_response_header[0], "200")) {
  5.    echo "ссылка доступка<br /><br /><br />";
  6. } else {
  7.    die( "ссылка или сайт не доступен<br /><br /><br />");
  8. }
  9.  

Скрипт рабочий все хорошо. Но проблема начинается когда мы пробуем проверить ссылку на сайте - использующем HTTPS, а не HTTP. Скрипт перестает правильно работать.

Подскажите как проверить ссылки на HTTPS сайте ?
Идеально конечно скрипт для проверки - который будет работать по обоим протоколам.
kuzmit4 Отправлено: 26 Марта, 2017 - 02:22:18 • Тема: Как выдернуть 1 запись из массива ? • Форум: Вопросы новичков

Ответов: 0
Просмотров: 87
В общем нужно выдернуть только NS1 как это сделать ?
Есть пару скриптов по выводу DNS информации.
Но они выдают не совсем то что мне нужно.
Как просто вывести 1 запись "dns1.yandex.net" ?

PHP:
скопировать код в буфер обмена
  1.     // Вывод NS серверов Вариант 1
  2.     $result = dns_get_record("php.ru", DNS_NS);
  3.     echo '<pre>';
  4.     var_dump($result);
  5.     echo '</pre>';
  6.  
  7.     // Вывод NS серверов Вариант 2
  8.     $result = dns_get_record("php.ru", DNS_NS);
  9.     foreach ($result as $record) {
  10.        echo $record['target'], "<br />";
  11.     }
kuzmit4 Отправлено: 06 Декабря, 2015 - 00:20:54 • Тема: Запуск .bat файла через php • Форум: Вопросы новичков

Ответов: 1
Просмотров: 244
Есть локальный сервер windows + apache + php5.4
Нужно реализовать следующую штуку. Открываем ссылку в браузере http://localhost/test.php после чего отрабатывает файл start.bat
Задача bat файла открыть текстовый файл в блокноте.

Содержимое start.bat
PHP:
скопировать код в буфер обмена
  1. start /d c:\PROGRA~1\EmEditor EmEditor.exe W:\ASA\scan/start/1.txt

(bat файл рабочий - при запуске мышкой отрабатывает как надо, файл 1.txt открывается в нужной программе)

Содержимое test.php
PHP:
скопировать код в буфер обмена
  1. exec ('W:\ASA\scan\start\start.bat'); // белый лист
  2. system ('W:\ASA\scan\start\start.bat'); // показывает содержимое файла start.bat
  3. passthru ('W:\ASA\scan\start\start.bat'); // показывает содержимое файла start.bat


Так вот как сделать запуск bat файла ?
kuzmit4 Отправлено: 11 Августа, 2015 - 12:50:15 • Тема: Сколько нужно сообщений, чтобы сказать спасибо ? • Форум: Прочее

Ответов: 2
Просмотров: 38
Мелкий пишет:
>=50, если не меняли настройку больше.

Как раз вам и хотел спасибо сказать)
Ну нечего наберу 50 постов, всем скажу постфактум )
Спасибо! )
kuzmit4 Отправлено: 11 Августа, 2015 - 12:41:08 • Тема: Сколько нужно сообщений, чтобы сказать спасибо ? • Форум: Прочее

Ответов: 2
Просмотров: 38
Привет.
Мне неоднократно помогали на этом форуму, и хотелось бы сказать спасибо, нажав на соответствующую кнопку. Но мне пишет что недостаточно сообщений.
Так сколько их нужно ? )
kuzmit4 Отправлено: 11 Августа, 2015 - 11:37:40 • Тема: Авторизация Apache - удаленный вход • Форум: Вопросы новичков

Ответов: 2
Просмотров: 177
Добрый день.
Есть нестандартная задача. Есть сайт на нем лежит скрипт. Скрипт закрыт с помощью логина и пароля (всплывающее окно Apache .htpasswd). Т.е. Чтобы запустить скрипт нужно вначале авторизоваться.
Можно ли это сделать удаленно с своего локального сервера, например PHP скриптом.
<?php
//1. логинимся на удаленном сервере
//2. запускаем запускаем скрипт
?>

Логин и пароль разумеется есть.
Такое вообще реально осуществить, и если можно подскажите как ?
kuzmit4 Отправлено: 10 Августа, 2015 - 17:15:11 • Тема: Форма загрузки. Помогите добавить проверку PNG JPG • Форум: Вопросы новичков

Ответов: 9
Просмотров: 384
Есть файл загрузки фалов. Помогите пожалуйста добавить проверку на PNG JPG GIF, Чтобы можно было грузить только картинки.

PHP:
скопировать код в буфер обмена
  1. if(isset($_FILES['image'])){
  2.     $img = $_FILES['image'];
  3.     $path = "../data/upload/" . rand().$img["name"];
  4.     move_uploaded_file($img['tmp_name'],$path);
  5.     $data = getimagesize($path);    
  6.     $link = "http://$_SERVER[HTTP_HOST]"."/".$path;
  7.     $res = array("upload" => array(
  8.                             "links" => array("original" => $link),
  9.                             "image" => array("width" => $data[0],
  10.                                              "height" => $data[1]
  11.                                             )                              
  12.                 ));
  13.     echo json_encode($res);
  14. }
kuzmit4 Отправлено: 30 Июня, 2015 - 05:17:16 • Тема: MySQL Как снизить нагрузку на базу • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1074
Опишу проблему:
Есть база в миллион записей, и скрипт который с ней работает.
Скрипт делает следующее - берет строку из базы проверяет данные на другом сайте, и записывает в базу результат, Плюс в ячейку active добавляет "1" - означает что строка уже обработана, и ее проверять ненужно.
После чего переходит к следующей строке в базе с active=0. Т.е. на каждую строку по 2 запроса.

Т.к. база большая - то сильно нагружается сервер. По этому пришлось задуматься как это все дело оптимизировать.
Есть вопрос. Можно ли проверять строки не по очереди, а например по сто штук за раз. Например взяли 100 строк с значением active=0 проверили это дело скриптом, и записали все данные обратно.

Т.е. чтобы не было по 2 обращения к каждой строке (чтение/запись) данных.
А записывать и читать данные кусками (по 100 строк за раз)

Не кидайте камнями, если так сделать нельзя. Говорю сразу - я в танке.
Так же будет неплохо если предложите варианты как можно снизить нагрузку на такую большую базу.
Как сократить кол-во запросов и что вообще в таком случае делать.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB