Gå til innhold

SMS webapp iphone/android


Anbefalte innlegg

Videoannonse
Annonse
Skrevet (endret)

Antar at du skal bruke dette selv, isåfall så burde scriptet du linket til fungere. Hvis du har satt opp en Linux server (eller Windows med Cygwin) så er det bare og bruke PHP sin system() funksjon for og calle scriptet.

 

Ex.

<?php

if(isset($_POST))
{

$nummer =  $_POST['nummer'];
$melding =  $_POST['melding'];

if(strlen($nummer) == 8 && is_numeric($nummer) && !empty($melding))
{
echo system("/loc/to/script.sh {$nummer} {$melding}");
}
else
{
echo "Kunde ikke sende meldingen";
}

}
?>

 

Også må du ha en HTML form til og skrive melding og nummeret til mottaker.

Endret av Surmoth
Skrevet (endret)

Jeg tenkte da å portere over til PHP.

Jeg har kommet så langt som å sende SMS, men får feilmelding uansett og ingen SMS er sendt..

Så problemet ligger etter * Send the SMS

 

<?php
$user = " ";
$pw   = " ";
$to   = $user;
$msg  = "dette er 1 test.. æ ø å å";

$ch = curl_init();
// SETT LOGIN URL
curl_setopt($ch, CURLOPT_URL, 'https://telenormobil.no/minesider/login.do');
// HTTP POST
curl_setopt ($ch, CURLOPT_POST, 1);
// SEND INNLOGGING
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'j_username='.$user.'&j_password='.$pw.'&fromweb=undefined');
// LAG COOKIE
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
// IKKE RETURNER SIDE, MEN STRENG
# NEW-->
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
# <--
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
// KJØR REQUEST (LOGIN SKJEMA)
$store = curl_exec ($ch);

// SJEKK OM DU ER INNLOGGET
if (strpos($store, "<dt>Innlogget</dt>")) {
  $log = "Du er logget inn";


/**
* Send the SMS
* @toAddress
* @message
* @b_send
*/
curl_setopt($ch, CURLOPT_URL, 'https://telenormobil.no/ums/compose/send.do');
// Muligens prosess.do, men den fugerer heller ikke
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'toAdress='.$to.'&message='.$msg.'&b_send=Send');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store2 = curl_exec($ch);

/**
* Check if message was sent
*
*/
if(strpos($store2, "<p>Meldingen er sendt.</p>")) {
  echo "SMS Sendt!";
} 
else { 
  echo "Kunne ikke sende sms.."; 
  echo $store;
}

}
else {
echo "Kunne ikke logge deg inn!";
}
curl_close($ch); 
?>

Endret av Stian Jacobsen
Skrevet (endret)

Red.: Never mind. Leste feil.

 

Red.2: Hva er det du faktisk får returnert, og hva en dump av curl_getinfo($ch)?

Endret av Ernie
Skrevet

Ok har fått til det meste nå.. men jeg sitter på jobb så jeg har ikke muligheten til å ferdiggjøre scriptet, MEN, når jeg kommer hjem skal jeg separere innlogging og sms-sending + inkludere adresseboken.

 

Det eneste er at tegnene æ ø å etc.. ikke blir rett. Jeg har prøvd det meste, utf_encode, header med charset utf-8..

 

 

<?php
header("Content-Type: text/html;charset=utf-8");
$user = " ";
$pw   = " ";
$to   = "12345678";
$msg  = empty($_GET['msg']) || !isset($_GET['msg']) ? "dette er æ ø å 1 test.. å" : $_GET['msg'];
$cookie = "curlycookie-".time().".txt";
$logged = false;

$ch = curl_init();

/**
* Login
* @j_username
* @j_password
* @fromweb
*/
if($logged == false) {
curl_setopt($ch, CURLOPT_URL, 'https://telenormobil.no/minesider/login.do');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'j_username='.$user.'&j_password='.$pw.'&fromweb=undefined');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

$login_res = curl_exec ($ch);

$logged = strpos($login_res, "<dt>Innlogget</dt>") ? true : false;
}

/**
* Send the SMS
* @toAddress
* @message
* @b_send
*/
$msg = prepsms($msg);
curl_setopt($ch, CURLOPT_URL, 'https://telenormobil.no/ums/compose/sms/process.do');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'toAddress='.$to.'&message='.urlencode($msg).'&b_send=Send');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$send = curl_exec($ch);

/**
* Check if message was sent
*
*/
echo strpos($send, "<th>Sendt:</th>") ? "SMS Sendt!" : "Kunne ikke sende sms.."; 

curl_close($ch); 

?>

 

Skrevet
Prøv utf 8 decode på selve beskjeden. Jeg må gjøre det når jeg sender via Clickatell API.

$msg = prepsms($msg);

skal egentlig være utf_decode($msg)

 

Så jeg har prøvd det.. urlencode() fjerner vell ikke æ ø å?

Skrevet (endret)

Min kode som jeg bruker mot clickatell ser sånn ut:

 

	$sms['to'] = "47" . $_POST['to'];
$sms['from'] = $_POST['from'];
$sms['user'] = "hemmelig";
$sms['password'] = "hemmelig";
$sms['api_id'] = "hemmelig";
$sms['text'] = utf8_decode($_POST['text']);
$sms['callback'] = 3;

$query = http_build_query($sms);

$res = file_get_contents("http://api.clickatell.com/http/sendmsg?" . $query);

 

Ser at du bruker curl og post, så blir vel ikke helt relevant. Men med det oppsettet mitt så funker det hvertfall med æ,ø og å.

Endret av Mez

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...