Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mapb_1990

[Resolvido] executar uma URL e capturar resultado

Recommended Posts

boas:

estou a fazer uma aplicação local em php, em k nessa aplicação é enviada uma sms ao executar uma URL:

https://www.smartvoip.com/myaccount/sendsms.php?username=user&password=pass&from=xxxxxxxxx&to=+35196xxxxxxxtext=mensagem+de+teste

tentei as funções fopen() e file_get_contents(), para tentar executar a url e capturar o resultado, mas deram as 2 erro.

 

depois lembrei-m de abrir uma popup com a url. funcionou mas nao consegui enviar o resultado para a janela principal.

Imagem Postada

 

depois de ir dar uma volta :P, lembrei-m de ir ver o codigo fonte da popup, e foi o meu espanto de vi isto:

							  <?phpxml version="1.0" encoding="utf-8"?> 

							  <SmsResponse>
	
							  <version>1</version>
	
							  <result>0</result> 
	
							  <resultstring>failure</resultstring>
	 
							  <description>Invalid Number</description>
	
							  <endcause>19</endcause>

							  </SmsResponse>
							

foi entao k me lembrei de fazer:

 $smsStatus = simplexml_load_file("https-~~-//www.smartvoip.com/myaccount/sendsms.php?username=user&password=pass&from=xxxxxxxxx&to=+35196xxxxxxxtext=mensagem+de+teste");

 

mas tb me retomou um erro de I/O.

 

depois falaram-me do cURL, executei o código abaixo, mas nao me retornou nada.

 

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "https-~~-//www.smartvoip.com/myaccount/sendsms.php?username=xxxxxxx&password=xxxx&from=xxxxxxxxto=96xxxxxxx&text=mensagem");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// grab URL and pass it to the browser
$result = curl_exec($ch);

/*echo '<pre>';
print_r (curl_getinfo($ch));
echo '</pre>'; */

// close cURL resource, and free up system resources
curl_close($ch);
//print_r($result);
echo $result;
//var_dump($result);

 

n sei o k mais posso fazer para executar a URL e capturar o seu resultado.

alguem tem alguma ideia?

 

cumps ;) ;) ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente o problema é que servidor SMS tem algumas "proteções".

Tente inserir junto com o cURL, um user-agent. Normalmente ja funciona.

Exemplo:

 

$userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)';

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "https://www.smartvoip.com/myaccount/sendsms.php?username=xxxxxxx&password=xxxx&from=xxxxxxxxto=96xxxxxxx&text=mensagem");
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

// grab URL and pass it to the browser
$result = curl_exec($ch);

/*echo '<pre>';
print_r (curl_getinfo($ch));
echo '</pre>'; */

// close cURL resource, and free up system resources
curl_close($ch);
//print_r($result);
echo $result;
//var_dump($result);

 

Se não der, tente colocar mais uma opção no cURL, que é seguir os redirecionamentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente o problema é que servidor SMS tem algumas "proteções".

Tente inserir junto com o cURL, um user-agent. Normalmente ja funciona.

Exemplo:

 

$userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)';

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "https-~~-//www.smartvoip.com/myaccount/sendsms.php?username=xxxxxxx&password=xxxx&from=xxxxxxxxto=96xxxxxxx&text=mensagem");
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

// grab URL and pass it to the browser
$result = curl_exec($ch);

/*echo '<pre>';
print_r (curl_getinfo($ch));
echo '</pre>'; */

// close cURL resource, and free up system resources
curl_close($ch);
//print_r($result);
echo $result;
//var_dump($result);

 

Se não der, tente colocar mais uma opção no cURL, que é seguir os redirecionamentos.

 

mesmo assim nao da

 

$userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)';
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https-~~-//www.smartvoip.com/myaccount/sendsms.php?username=xxxxxxx&password=xxxx&from=xxxxxxxxto=96xxxxxxx&text=mensagem");
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);

$result = curl_exec($ch);
//curl_exec($ch);

echo '<pre>';
print_r (curl_getinfo($ch));
echo '</pre>';

curl_close($ch);

print_r($result);
echo $result;

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja vi k com php não vou lá http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

vou retornar à 2ª ideia. apanhar o conteudo da popup.

alguem me pode dizer como fazer isso?

 

<script language="javascript">
my = window.open('https-~~-//www.smartvoip.com/myaccount/sendsms.php?username=xxx&password=xxx&from=xxx&to=xxxxxxxxxxtext=mensagem','','width=200,height=50,scrolling=auto,top=0,left=0');
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz um fucntion:

 

<script language="javascript">
function urls(user,pass,frm,text){
my = window.open('https://www.smartvoip.com/myaccount/sendsms.php?username='+user+'&password='+pass+'&from='+frm+'&to='+text+'=mensagem','','width=200,height=50,scrolling=auto,top=0,left=0');
}
</script>
<?php 
echo '<a href="#" onclick="urls('.$user.','.$pass.','.$frm.','.$text.');">Teste</a>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

parece k escrevi a mensagem sem ler a tua primeiro.

n era o k keria, mas tb ja resolvi o problema.

obrigada a tds os k tentaram ajudar http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

para quem um dia tiver o mesmo problema k eu, deixo aki a solução:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https-~~-//www.smartvoip.com/myaccount/sendsms.php?username=xxxxxxx&password=xxxx&from=xxxxxxxxto=96xxxxxxx&text=mensagem");
curl_setopt($ch, CURLOPT_USERPWD, 'username:pass');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$result = curl_exec($ch);

curl_close($ch);

echo $result;

 

http://blog.taragana.com/index.php/archive/how-to-use-curl-in-php-for-authentication-and-ssl-communication/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.