-
Conteúdo Similar
-
Por gustavopinent
Olá! Esse erro ocorre em um php simples rodando em um servidor compartilhado Locaweb: SSL certificate problem: unable to get local issuer certificate. O php faz uma requisição ao site do Cep Aberto para consulta de endereço informando o CEP (https://www.cepaberto.com/api/v3/cep?cep=95020520)
Olhei o php.ini e não tem nenhuma menção ao arquivo de certificados. Então peguei alguns tutoriais, baixei o arquivo "cacert.pem", coloquei lá e defini o curl no próprio php, ficou assim:
$ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Token token="' . $token . '"']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CAINFO, $cacert); curl_setopt($ch, CURLOPT_CAPATH, $cacert); $res = curl_exec($ch); if($res===FALSE) { $Res["erro"] = "curl"; $Res["msg"] = "Execução CURL falhou!"; $Res["descr"] = curl_error($ch); } else { $Res["dados"] = json_decode($res); $Res["http"] = curl_getinfo($ch, CURLINFO_HTTP_CODE); $Res["erro"] = ($Res["http"]==200)? "OK" : "http" ; $Res["msg"] = ($Res["http"]==200)? "" : "Erro HTTP ".$Res["http"] ; } Onde $cacert é o endereço do arquivo "cacert.pem", verificado antes por is_file. Mas o erro é o mesmo, como se eu nada tivesse feito. Tem que configura o Apache? Não sei como configurar o Apache, será que posso? Desabilitar o SSL do php é uma opção que não tentei ainda, dizem que não é aconselhável...
O PHP é o 5.6 (pretendo ir pro 7.4 em breve) e o servidor é CENTOS 5.11 compartilhado, hospedagem Locaweb.
Alguma ideia?
-
Por Wanderson Moreira
Bom dia,
alguém pode me ajudar com uma situação?
estou utilizando um script pra fazer o carregamento assíncrono do site.
var links = document.querySelectorAll('a'); function handleClick(event) { event.preventDefault(); fetchPage(event.target.href); window.history.pushState(null, null, event.target.href); window.scrollTo(0, 0); } async function fetchPage(url) { document.querySelector('.content'); var pageResponse = await fetch(url); var pageText = await pageResponse.text(); replaceContent(pageText); } function replaceContent(newText) { var newHtml = document.createElement('div'); newHtml.innerHTML = newText; var oldContent = document.querySelector('.content'); var newContent = newHtml.querySelector('.content'); oldContent.innerHTML = newContent.innerHTML; document.title = newHtml.querySelector('title').innerText; } window.addEventListener('popstate', () => { fetchPage(window.location.href); }) links.forEach(link => { link.addEventListener('click', handleClick); }) O problema em questão é que, o conteúdo da pagina que é carregado dentro da div content não funciona corretamente
os scripts em javascript não são executados;
os links de navegação da pagina não funcionam de maneira assincrona, diferente dos links de navegação do menu
-
Por Wyrv
Boa tarde pessoal,
Sou meio novo em programação web.
Estou com o seguinte problema, qualquer ajuda será bem vinda.
Em PHP, etou montando uma URL pra ser acessada com o comando Curl.
Tudo está funcionando, consigo executar e receber o retorno da URL no meu script.
Porém o retorno parece vir em html, e a resposta que eu quero estar está no meio de tudo.
<form name="IntegracaoForm" method="post" action="/integracao.do;jsessionid=C221B55C9AF93E1A94403FAA52943FB0" enctype="multipart/form-data" id="IntegracaoForm"> <table > <tbody> <tr> <td> 000 </td> </tr> </tbody> </table> </form><br>FIM<br>-> <br /> O código de retorno vem onde está o 000.
No caso eu preciso validar esse retorno, mas eu não estou conseguindo uma forma de jogar esse valor pra uma variável pra realizar um if.
Alguém pode me dar alguma ideia?
Agradeço desde já.
-
Por arlindophp
<?php
function doPut($url, $fields)
{
$fields = (is_array($fields)) ? http_build_query($fields) : $fields;
if ($ch = curl_init($url)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($fields)));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_exec($ch);
//$resp = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return (int) $status;
} else {
return false;
}
}
session_start();
$s_chave = $_POST['edtChave'];
$_SESSION['s_chave'] = $s_chave;
$edtChave = $_POST['edtChave'];
$edtCultura = $_POST['edtCultura'];
$edtPraga = $_POST['edtPraga'];
$edtDose = $_POST['edtDose'];
$edtEspecificacao = $_POST['edtEspecificacao'];
$edtAplicaTerrestre = $_POST['edtAplicaTerrestre'];
$edtAplicarea = $_POST['edtAplicarea'];
$edtIntseg = $_POST['edtIntseg'];
$edtIntEntrada = $_POST['edtIntEntrada'];
$edtDadosGerais = $_POST['edtDadosGerais'];
$url = "www.api.site.com";
echo 'Url = ' . $url;
echo '<br>';
$data_array2 = array();
for ($i = 0; $i < 5; $i++) {
$montagem_array = array(
'cultura' => $_POST['edtCultura'],
'praga' => $_POST['edtPraga'],
'dose' => $_POST['edtDose'],
'especificacao' => $_POST['edtEspecificacao'],
'aplicaterrestre' => $_POST['edtAplicaTerrestre'],
'aplicaerea' => $_POST['edtAplicarea'],
'intseg' => $_POST['edtIntseg'],
'intentrada' => $_POST['edtIntEntrada'],
'dadosgerais' => $_POST['edtDadosGerais'],
);
$data_array2[$i] = $montagem_array;
}
//$json = json_encode($data_array2);
echo '<br>';
echo 'Array convertido para formato json: ' . json_encode($data_array2);
echo '<br>';
//$data = $array_para_string;
//echo $data.'+cultura=asdf&praga=asdf&dose=dasf&especificacao=sadf&aplicaterrestre=sadf&aplicaerea=asdf&intseg=2&intentrada=1&dadosgerais=sdaf';
$header = array(
'Authorization: falkdsjçlaskf'
);
//Nova tentativa 07/01/2022
if (doPut($url, $data_array2) == 200) {
echo 'Passou!';
echo '<br>';
echo json_encode($data_array2);
echo '<br>';
}
// do something
else {
echo 'Não deu certo';
echo '<br>';
echo json_encode($data_array2);
echo '<br>';
}
//Nova tentativa
//header('location:jsonpostprodutobula_teste.php');
-
Por arlindophp
<?php
function doPut($url, $fields)
{
$fields = (is_array($fields)) ? http_build_query($fields) : $fields;
if ($ch = curl_init($url)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Length: ' . strlen($fields)));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_exec($ch);
//$resp = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return (int) $status;
} else {
return false;
}
}
session_start();
$s_chave = $_POST['edtChave'];
$_SESSION['s_chave'] = $s_chave;
$edtChave = $_POST['edtChave'];
$edtCultura = $_POST['edtCultura'];
$edtPraga = $_POST['edtPraga'];
$edtDose = $_POST['edtDose'];
$edtEspecificacao = $_POST['edtEspecificacao'];
$edtAplicaTerrestre = $_POST['edtAplicaTerrestre'];
$edtAplicarea = $_POST['edtAplicarea'];
$edtIntseg = $_POST['edtIntseg'];
$edtIntEntrada = $_POST['edtIntEntrada'];
$edtDadosGerais = $_POST['edtDadosGerais'];
$url = "www.api.site.com";
echo 'Url = ' . $url;
echo '<br>';
$data_array2 = array();
for ($i = 0; $i < 5; $i++) {
$montagem_array = array(
'cultura' => $_POST['edtCultura'],
'praga' => $_POST['edtPraga'],
'dose' => $_POST['edtDose'],
'especificacao' => $_POST['edtEspecificacao'],
'aplicaterrestre' => $_POST['edtAplicaTerrestre'],
'aplicaerea' => $_POST['edtAplicarea'],
'intseg' => $_POST['edtIntseg'],
'intentrada' => $_POST['edtIntEntrada'],
'dadosgerais' => $_POST['edtDadosGerais'],
);
$data_array2[$i] = $montagem_array;
}
//$json = json_encode($data_array2);
echo '<br>';
echo 'Array convertido para formato json: ' . json_encode($data_array2);
echo '<br>';
//$data = $array_para_string;
//echo $data.'+cultura=asdf&praga=asdf&dose=dasf&especificacao=sadf&aplicaterrestre=sadf&aplicaerea=asdf&intseg=2&intentrada=1&dadosgerais=sdaf';
$header = array(
'Authorization: falkdsjçlaskf'
);
//Nova tentativa 07/01/2022
if (doPut($url, $data_array2) == 200) {
echo 'Passou!';
echo '<br>';
echo json_encode($data_array2);
echo '<br>';
}
// do something
else {
echo 'Não deu certo';
echo '<br>';
echo json_encode($data_array2);
echo '<br>';
}
//Nova tentativa
//header('location:jsonpostprodutobula_teste.php');
-