Avatar billede mibu Nybegynder
26. maj 2015 - 19:44 Der er 7 kommentarer og
1 løsning

SMS script fejler ved afsendelse

Kan nogen se hvad jeg har gjort galt her?
Jeg får denne beddelese:
Parse error: syntax error, unexpected '=' in /var/www/test.dk/xx.php on line 20 (har markeret min linie 20)
Jeg troede først at jeg manglede et '.' før '=' men det giver ingen forskel.

Script:

<?php
$result = mysql_query("SELECT * FROM members");

while($row = mysql_fetch_array($result))
{
$addresses[] = $row['mob'];
}



// Flere modtagere
$to = implode(", ", $addresses);

// Besked
$body = $tekst .' sendt af ' . $do_name;

$domain =  "https://suresms.com/Script/GlobalSendSMS.aspx/";
$str = "?login=+4512345678"; //Dette er linie 20
$str .= "&password=asdfgh";
$str .= "&to= $to&#8243;;
$str .= "&from=Mig";
$str .= "&message=".urlencode("$body");
file_get_contents($domain.$str);

?>
Avatar billede mibu Nybegynder
26. maj 2015 - 19:50 #1
Ved ikke lige hvor &#8243; kom fra, se bort fra den :-) Øh jo det er " hvorfor laver eksperten den jo ?
Avatar billede Slater Ekspert
26. maj 2015 - 19:54 #2
Er du sikker på det er ", og ikke bare et tegn der ligner? Det ville forklare hvorfor Eksperten oversætter netop det til Unicode kode, og ikke de andre - og samtidig forklare fejlen.

Har du evt. kopieret noget af koden fra et program eller en webside?
Avatar billede mibu Nybegynder
26. maj 2015 - 20:05 #3
Jeg har kopiet noget af sms delen fra suresms's hjemmeside, er prøver lige at skrive den i "hånden"
Avatar billede mibu Nybegynder
26. maj 2015 - 20:33 #4
Det hjalp lidt, at skrive den fra bunden af, men den fejler alligevel til sidst.

Warning: file_get_contents(https://suresms.com/Script/GlobalSendSMS.aspx/?login=xxxxxx&password=xxxxxx&to=+45xxxxxxx, , , , , , , , , , , , +4521294044, , &from=Mig selv&message=test besked+sendt+af+Mibu) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /www/bulow.gl/xx.php on line 27
Avatar billede mibu Nybegynder
26. maj 2015 - 20:40 #5
Og den her er linie 27

file_get_contents($domain.$str);
Avatar billede erikjacobsen Ekspert
26. maj 2015 - 23:07 #6
Læs lidt op på url-encoding.... Det går typisk galt når der er mellemrum i URL-en. Det ser der ud til her:

      21294044, , &from

(hvis ellers det er klistret korrekt ind). Umiddelbart ligner de mellemrum en fejl, men ellers kan et mellemrum skrives som et + (hvad du også gør senere)

Men samtidig bliver +-et i

  &to=+45xxxxxxx

jo også til et mellemrum. Det skal det vel ikke. Har suresms ikke en god beskrivelse af hvad man skal?
Avatar billede mibu Nybegynder
27. maj 2015 - 19:04 #7
Har talt med suresms!
Scriptet virker hvis jeg dropper den med flere modtagere og sætter et enkelt telefonnummer ind, smsgatewayen kan ikke håndtere flere modtagerer, jeg skal køre køre scriptet én gang for hver modtager.
Så jeg skal have lavet en loop der kan gentage hele forsendelsen én gang for hver modtager. er der nogen gode forslag.
Har prøvet lidt forskelligt uden held.

<?php
$result = mysql_query("SELECT * FROM members");

while($row = mysql_fetch_array($result))
{
$addresses[] = $row['mob'];
}


// Besked
$body = $tekst .' sendt af ' . $do_name;

$domain =  "https://suresms.com/Script/GlobalSendSMS.aspx/";
$str = "?login=+4512345678";
$str .= "&password=password";
$str .= "&to= KUN ET TLF;
$str .= "&from=Mig selv";
$str .= "&message=".urlencode("$body");
file_get_contents($domain.$str);

?>
Avatar billede mibu Nybegynder
27. maj 2015 - 19:51 #8
Jeg har selv fundet løsning.

Takker for interessen :-)

<?php
//Besked
$body = $tekst .' sendt af ' . $do_name;

$result = mysql_query("SELECT * FROM members");

while($row = mysql_fetch_array($result))
{

$domain = "https://suresms.com/Script/GlobalSendSMS.aspx/";
$str = "?login=+45xxxxxxxx";
$str .= "&password=password";
$str .= "&to=".$row['mob'];
$str .= "&from=Mig selv";
$str .= "&message=".urlencode("$body");
file_get_contents($domain.$str);
}

?>
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

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