Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: curl_init не работает

Добрый день. Возникла такая проблема с curl.На сайте curl_init() пишит: Call to undefined function curl_init().
Когда я запускаю скрипт из консоли (PHP-CLI) он отрабатывает нормально.
Пробовал перенести 2 файла: ssleay32.dll, libeay32.dll из php в apache\bin. Все равно не сработало.
Ответ: AllesKlar
Спасибо за ответ.
Разобрался. Кому интересно:
Скачал с официального сайта curl. Там идет сертификат, его нужно проинсталировать (правой кнопкой, установить) в системный path нужно добавить папку curl.
Вопрос: Ошибка Call to undefined function curl_init()

Доброго времени суток!

При попытке отправить данные с сервера выходит ошибка Fatal error: Call to undefined function curl_init()
Проверила на сервере наличие библиотеки php_curl.dll, она вроде бы есть, да и в php.ini строчка extension= php_curl.dll расскомментирована, а больше никаких советов по решению данной проблемы найти не смогла (на сервере стоит не Denwer).Не могли бы Вы подсказать, как исправить данную ошибку?
Ответ: Ура!!!!
сделала так, как было предложено и все сработало!
Вопрос: Не работает recaptcha от гугла в wordpress

Вставить-то капчу в форму труда не составило, но я уже более суток бьюсь с тем, чтобы она работала. форме просто всё равно, что галочка не стоит.
есть 1 форма, перед кнопкой отправки я вставил эту капчу (как указал гугл в инструкции). ещё одну строчку нужно было вставить ещё одну строку в конце html кода. но суть в том, что этих файлов куча, и в какой именно html файл нужно вставить эту строку я не знаю. пытался, конечно же, во все.
но даже если я угадал с этим, есть ещё 1 шаг. гугл говорит:
Когда пользователи отправляют форму со встроенной проверкой reCAPTCHA, вместе с прочими данными вы получаете строку "g-recaptcha-response". Чтобы узнать, прошел ли пользователь проверку, отправьте POST-запрос со следующими параметрами: URL:
secret (обязательно) *секретный ключ*
response (обязательно) Значение "g-recaptcha-response".
remoteip IP-адрес конечного пользователя.
и что делать с этим я не знаю. пытаюсь вникнуть в предложение, но тупо не понимаю. точнее понимаю только первое предложение.
вот, вроде как то, что нужно , но сделал как он, результат не изменился.
помогите, пожалуйста, что я делаю не так?
Ответ:
Сообщение от OlegBrony
и что делать с этим я не знаю
в обработчике формы нужно написать PHP скрипт который отправит POST запрос с нужными параметрами на нужный адрес, в ответ на этот запрос Вам придёт результат проверки рекаптчи

Добавлено через 3 минуты
вот Вам пример как это сделать
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    $recaptcha_ok = false;
    // проверка рекаптчи
    if ($_POST['g-recaptcha-response'] != '') {
        $post_data['secret'] = '?????????????????????';
        $post_data['response'] = $_POST['g-recaptcha-response'];
        $post_data['remoteip'] = $_SERVER["REMOTE_ADDR"];
        $recaptcha_result = '';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch , CURLOPT_USERAGENT , 'reCAPTCHA/PHP');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded; charset=UTF-8'));
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $recaptcha_result = curl_exec($ch);
        if ($recaptcha_result !== false) {
            // Проверка ответа
            $json_response = json_decode($recaptcha_result, true);
            if ($json_response['success'] === true) {
                $recaptcha_ok = true;
            }
        }
        curl_close($ch);
    }
Вопрос: Трудно ли работать JAVA-разработчиком?

Рабочее время 8 часов, работаете ли вы больше положенного?
Хорошо ли зарабатываете?
Много ли грузят работай?
Нравится ли вам?
Не жалеете ли? Хотели бы выучить другой язык и работать на нем?
Ответ:
Сообщение от dimboc4
Рабочее время 8 часов, работаете ли вы больше положенного?
да
Сообщение от dimboc4
Хорошо ли зарабатываете?
да
Сообщение от dimboc4
Много ли грузят работай?
да
Сообщение от dimboc4
Нравится ли вам?
да
Сообщение от dimboc4
Не жалеете ли? Хотели бы выучить другой язык и работать на нем?
нет
Вопрос: Не работает ProgressBar в многопоточном приложении

Доброй ночи!
Есть код формирования списка файлов на основании полученного массива путей. Для получения дополнительной информации о каждом добавляемом в список файле используется отдельная программа, работа с которой происходит через редирект StdIn, StdOut, StdErr. Все происходит примерно так:

цикл for
взять путь к файлу из массива и дать команду посторонней программе получить информацию об этом файле
Получить эту информацию
вывести всю нужную информацию в новую строку DataGridView
конец цикла for, повторить для следующего файла


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

Пихнул это все в BackgroundWorker и начал выполнять оттуда...
Выполняется, но криво!
Таблица заполняется нормально, но прогресс при этом не заполняется (хотя должен!) потом форма перестает отвечать на некоторое время (секунд на 10), потом таки развисает и полоска прогресса заполняется сразу до 100%, причем скролл-бар у датагрида вообще перестает работать (хотя колесиком мышки прокручивает список)...

Код прогресс-бара написан правильно (даже не сомневайтесь!). Проблема скорее лежит в том, что я запускаю посторонний процесс из нового потока и цикл нового потока работает несогласованно со скоростью работы процесса (хотя я сам сейчас не понял что сказал... такого быть не может иначе бы таблица не заполнялась...)...

Добавлено через 2 минуты
Мне кажется что Процесс, выполняемый из нового потока , полностью вешает этот поток! Потому BackgroundWorker не репортит прогресс (а потом в конце таки развисает и репортит все сразу)

Но как с этим бороться?

P. S.: Выделил жирным самую светлую мысль... Иначе я хз что тут может быть не так...

Добавлено через 8 часов 34 минуты
Ребят, ну помогите уже кто-нибудь, время идет, а все стало...
У кого какие соображения?
Может код дать? Ну мне кажется каков смысл в этом...
или может у меня сам редирект криво реализован?
Я приеду, скину код... Только помогите.
Ответ: Не дождавшись Вашего ответа уже так и сделал. Работает.
Но теперь другая хрень боком вылезла...
Аргумент для ffprobe.exe.
Не понимает оно скорее всего запуск с аргументом и не принимает аргумент.. Сейчас отмониторю что оно вообще отвечает из error потока..

Добавлено через 11 минут
Тю блин.. Вон чего оно и тогда с аргументом у меня не работало!
Когда в командную строку хочешь писать, то надо писать ffprobe -i "path"
Если аргумент, то зачем писать ffprobe? Достаточно просто -i "path".

Работает!
Причем работает как надо и ничего нигде не виснет!!
Капец... Но обидно что причину то так и не нашли...
Вопрос: CRON (задание) перестал работать

* * * * * curl -s "http://address.kz/xreaders/orders.php" перестал работать
* * * * * curl -s "http://address.kz/xreaders/bills.php" работает
Все работала но в один день orders.php перестал работать, пробовал запускать /1 каждую минуту тоже не работает. Если запускать вручную то запускается "http://address.kz/xreaders/orders.php" все работает... в чем может быть проблема?? или как можно проверить
Ответ: ВСЕ разобрался... просто надо было перезапустить... проверил файл /var/log/syslog и заметил что на orders.php нет curl -s хотя я добавлял с crontabs. ЕСЛИ БУДЕТЕ ЧТО-ТО МЕНЯТЬ ТО НАДО ПРИОСТАНОВИТЬ CRON "SUDO SERVICE CRON STOP" ЗАТЕМ ДЕЛАЕТЕ ИЗМЕНЕНИЕ И ЗАПУСКАЕТЕ CRON "SUDO SERVICE CRON STAR" ТОЛЬКО ТОГДА БУДЕТ КОРРЕКТНО РАБОТАТЬ... И ПРОВЕРЯЕМ В /var/log/syslog...
Вопрос: WebBrowser1.DocumentText Не работает из другого класса(потока)

У меня в проекте 2 файла Основной Form1.cs и класс Back.cs

На форме Form1 есть webBrowser1.
Из Back.cs работает
Код C#
1
webBrowser1.Navigate("http://vk.com");
Но не работает
Код C#
1
webBrowser1.DocumentText
Из Form1 всё отлично работает - webBrowser1.DocumentText возвращает html,
Из Back.cs не работает - webBrowser1.DocumentText Исключение типа "System.InvalidCastException".

Если создать точку останова в Back.cs
webBrowser1.DocumentText в отладчике пишет
Вычисление функции отменено из-за истечения времени ожидания при выполнении предыдущей функции. Для возобновления вычисления функции необходимо продолжить выполнение программы.

Если создать точку останова в Form1.cs
webBrowser1.DocumentText содержит html код

Передал webBrowser1 в Back.cs через функцию Back.Start(webBrowser1)

Кто может объяснить, почему так происходит?

Добавлено через 24 минуты
Решил проблему. Если использовать Invoke, то всё работает.
Но вроде бы я всего лишь пытался получить код страницы, а не изменять его.

Добавлено через 8 минут
Можно ли как то использовать класс в одном потоке?
Ответ: webBrowser1 наверняка является визуальным компонентом, создаваемым в форме,
его можно использовать в другом потоке с помощью Invoke, и то криво.
Можно в отдельном потоке создать невидимый webBrowser1 и в нем работать.

Не лучше ли при событии DocumentDownloaded или DocumentReady - или типа того просто передать
webBrowser1.DocumentText какой то функции?
Вопрос: IMG в PHP не работает. Синтаксис правильный

Код PHP
1
2
3
<?php   
echo "<img src="/uploads/a.jpg" alt="альтернативный текст">";
?>
Вот этот код не работает, выдает ошибку. Файл существует, путь правильный.

если в
Код HTML5
1
<img src="/uploads/a.jpg" alt="альтернативный текст">
то работает. Но в PHP не работает.
В чем может быть проблема. Помогите.

У меня кстати локальный сервер. Вот адрес страницы "localhost/index.php"
Ответ:
Сообщение от Илхом
Сообщение от tolimadokara
Работает?
да! проверил работал. надеюсь и дальше без проблем работает! но я тупо копи-пастил не разбираясь в код. Если есть пару слов по поводу этого кода, я слушаю.
Слов нет по поводу этого кода.
Вопрос: Перестает работать Ajax response после добавления include в обработчик

Имеется страница которая передает обработчику фалй и данные посредством ajax, jquery скрипт по которому стряпался для нужд ниже, к самому скрипту вопросов нет он отлично работает и получает все от обработчика, вся суть заключается в том что как только добавляю в обработчик include , при чем абсолютно не важно с каким содержанием, (адресацию include тоже пробовал и абсолютную и относительную) обработчик перестает давать корректный ответ и в браузере в консоли parsererror, при чем если то что содержится в файле include вписать напрямую в обработчик все прекрасно работает
надеюсь доступно объяснил суть проблемы, заранее спасибо

(function($){


// Глобальная переменная куда будут располагаться данные файлов. С не будем работать
var files;

// Вешаем функцию на событие
// Получим данные файлов и добавим их в переменную
$('input[type=file]').change(function(){
files = this.files;

});


// Вешаем функцию ан событие click и отправляем AJAX запрос с данными файлов
$('.submit.hoho').click(function( event ){
event.stopPropagation(); // Остановка происходящего
event.preventDefault(); // Полная остановка происходящего

// Содадим данные формы и добавим в них данные файлов из files
var data = new FormData();
$.each( files, function( key, value ){
data.append( key, value );
});

// Отправляем запрос
$.ajax({
url: './upload.php?uploadfiles',
type: 'POST',
data: data,
cache: false,
dataType: 'json',
processData: false, // Не обрабатываем файлы (Don't process the files)
contentType: false, // Так jQuery скажет серверу что это строковой запрос
success: function( respond, textStatus, jqXHR ){
// Если все ОК
if( typeof respond.error === 'undefined' ){
// Файлы успешно загружены, делаем что нибудь здесь

// выведем пути к загруженным файлам в блок '.ajax-respond'
var files_path = respond.files;
var html = '';
$.each( files_path, function( key, val ){ html += val +'<br>'; } )
$('.ajax-respond').html( html );
}
else{
console.log('ОШИБКИ ОТВЕТА сервера: ' + respond.error );
}
},
error: function( jqXHR, textStatus, errorThrown ){
console.log('ОШИБКИ AJAX запроса: ' + textStatus );
}
});

});


})(jQuery)
Ответ:
как оказалось после моих эксперементов с вырезанием части своего кода и последующим добавлением в исходный код скрипта в другом файле, я пропустил присваивание значение переменной $uploadfile
поэтому не работало, а не от того что это совместно, а инклуды начали работать только в другом фале пхп, тоесть получается маленькими блоками все переносил в новый файл пхп постоянно проверя что на выходе и в итоге устранив ошибку переноса выяснил что весь код рабочий, включая инклуды

но инклуды не работают вообще в изначальном файле-обработчике,даже когда файл только с одним инклудом и больше ничего в нем нет, а в том что подключаем прописан только "голимый" ответ серверу,ajax выдает ошибку, так понимаю какие-то проблемы вышли либо с правами файлов либо с кодировками, но это уже другая история, спасибо за то что помогали разобраться

(Отредактировано автором: 15 Октября, 2015 - 21:29:11)

Вопрос: Как заставить работать переменные из подключенного файла?

Здравствуйте!
Подскажите, как правильно подключить файл, чтобы обрабатывалось(читалось/выводилось) его содержимое и работали содержащиеся в нем переменные?

Задача:
Сделать так, чтобы после заполнения формы обратной связи, отправлялись 2 письма: 1 на мой email, 2 на email пользователя. В письме для пользователя должно выводиться его имя (которое он указал в соответствующем поле).

Проблема:
Не работают переменные, если письмо находится в отдельном файле (если в файле-обработчике - все работает).

Подключаю файл следующим образом:
PHP
1
2
3
4
$name = $_POST['name'];
 
$mail->Body  = file_get_contents('contents/letter.html');   // переменные не работают
$mail->Body = "<p>Здравствуйте, $name! или {$_POST['name']}!</p>";   // переменные работают
Дополнительная информация:
  • Файл letter.html содержит: <p>Здравствуйте, $name! или {$_POST['name']}!</p>
  • Отправка писем происходит через PHPMailer
Ответ:
Сообщение от Jewbacabra
может лучше почитать сначала что-то про php, а не копировать, не думая.
Боюсь, мои мозги такого не осилят((

Спасибо за помощь!
Теперь все работает!
Единственное, при отправки формы, на секунду появляется в браузере письмо, которое отправляется пользователю, и только потом загружается страница благодарности. Можно это появление убрать?