Avatar billede cmp77 Nybegynder
15. marts 2011 - 12:08 Der er 8 kommentarer og
1 løsning

cpsms gateway og Æ Ø Å problem

Hej eksperter,

Ved godt det er et meget specifikt spørgsmål, men forhåbentlig er der alligevel en som kan hjælpe :)

Jeg har en side hvorfra der kan sendes sms'er via cpsms.dk.

Det foregår ved at sende en send sms informationerne i url'en

$message = "Test Hilsen Søren";
$sender = "Me";
$url = "http://www.cpsms.dk/sms/";
$url .= "?message=" . urlencode($message);
$url .= "&recipient=55555555";
$url .= "&username=xxxxx";
$url .= "&password=xxxxx";
$url .= "&from=".urlencode($sender);

Det resulterer i en url som ser således ud:
http://www.cpsms.dk/sms/?message=Test+Hilsen+S%26oslash%3Bren&recipient=55555555&username=xxxxx&password=xxxxx&from=Me

Det virker også fint, med undtagelse af Æ, Ø, Å og andre specialtegn. Det jeg ikke forstår er at "ø" f.eks erstattes med "%26oslash%3B"!?!?

cpsms understøtter brugen af æ ø og å, så det er ikke der problemet ligger.

Desuden er både server, html osv sat til UTF-8, så jeg er lidt blank :)
Avatar billede repox Seniormester
15. marts 2011 - 12:15 #1
Brug POST istedet for GET. Så er det ikke et problem.
Avatar billede olebole Juniormester
15. marts 2011 - 17:14 #2
<ole>

Prøv i stedet denne funktion:


function my_urlencode($s){
    return urlencode(utf8_encode($s));
}



/mvh
</bole>
Avatar billede olebole Juniormester
15. marts 2011 - 17:17 #3
Eller måske nærmere:

$s = rawurlencode($s);
Avatar billede cmp77 Nybegynder
15. marts 2011 - 23:25 #4
Hej igen, og tak for de hurtige svar.

@repox
Jeg bruger hverken post eller get... url'en sendes med file_get_contents($url);

@olebole
Har prøvet begge dine forslag, men desværre uden held...
"ø" bliver i alle tilfælde erstattet med "%26oslash%3B", hvilket ikke giver mening. Halvt UTF-8 og halvt html?!?!

"ø" er normalt et html "ø", men her bliver "&" erstattet med "%26" og ";" med "%3B". Er det ikke rigtigt, eller er jeg helt galt på den?
Avatar billede repox Seniormester
16. marts 2011 - 00:24 #5
#4
Selvfølgelig bruger du GET - du er åbenbart bare ikke klar over det.
Jeg anvender selv CP SMS som gateway og jeg bruger cURL til at POSTe variablerne med i stedet...
Det virker upåklageligt...
Avatar billede cmp77 Nybegynder
16. marts 2011 - 10:21 #6
@repox

Ok, det var jeg ikke klar over. Hvordan ser din kode så ud?

Jeg har aldrig brugt cURL før (eller file_get_contents for den sags skyld), så jeg er lidt på fremmed grund her :)
Avatar billede repox Seniormester
16. marts 2011 - 10:31 #7
Min kode ser således ud:
        $settings["username"] = "brugernavn";
        $settings["password"] = "kodeord";
        $settings["utf8"] = "1";
       
   
        $input["from"] = $_POST["from"];
        $input["recipient"] = "45".$_POST["recipient"];
        $input["message"] = $_POST["message"];
   
        $posts = array_merge($settings, $input);
        foreach($posts as $key => $value)
            $tmp[] = $key."=".$value;
           
        $postdata = implode("&", $tmp);
   
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "http://www.cpsms.dk/sms/");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
       
        $content = curl_exec($ch);
       
        if(strstr($content, "<succes>"))
            echo "Beskeden blev sendt!";


Der er måske en enkelt eller to der vil bemærke at jeg ikke sender post dataene med som det originale array og årsagen til det er at jeg har oplevet et par enkelte udfald på tjenesten ved at anvende multipart/form-data (til de teknisk betonede).
Avatar billede cmp77 Nybegynder
16. marts 2011 - 16:29 #8
@repox

Takker så mange gange. virker perfekt nu. Poster du et svar så du kan få dine point?
Avatar billede repox Seniormester
16. marts 2011 - 17:16 #9
det fik du her...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester