Avatar billede nitram30 Nybegynder
02. august 2008 - 12:12 Der er 12 kommentarer og
2 løsninger

CPSMS form sms script problemer

Hejsa!

Jeg vil gerne tilføje en formular til dette script.
Men har prøvet forgæves men kan ikke se hvad der skal til.
Jeg har lavet en form hvor man kan sende SMS fra min hjemmeside.
Men hvordan får jeg det til at virke med name på mine form felter.


POST.PHP
<?php
// The neccesary variables are set.
$url = "http://www.cpsms.dk/sms/";
$url .= "?message=" . urlencode("This is a test.");
$url .= "&recipient="; // Recipient
$url .= "&username=xxxxx"; // Username
$url .= "&password=xxxxx"; // Password
$url .= "&from=" . urlencode(""); // Sendername
// The url is opened
$reply = file_get_contents($url);
if(strstr($reply, "<succes>")) {
// If the reply contains the tag <succes> the SMS has been sent.
echo "The message has been sent. Server response: ".$reply;
} else {
// If not, there has been an error.
echo "The message has NOT been sent. Server response: ".$reply;
}
?>



FORM.HTM
<html>
<body>
  <h1>SMS form</h1>
  <form method='post' action='post.php'>
  <table border=0>
        <tr>
    <td>Afsender:</td>
    <td><input type="text" name='&from'></td>
  </tr>
      <tr>
    <td>Til Mobilnr:</td>
    <td><input type="text" name='&recipient'></td>
  </tr>
  <tr>
    <td>Besked</td>
    <td><textarea rows='4' cols='40' name='?message'></textarea></td>
  </tr>
  <tr>
    <td> </td>
    <td><input type='submit' name='submit' value='Send'></td>
  </tr>
  </table>
  </form>
</body>
</html>
Avatar billede jakobdo Ekspert
02. august 2008 - 12:35 #1
Din felter fra din form, kan tilgåes som:

$_POST['from']
$_POST['recipient']
osv...
Du skal bare fjerne & foran name='&....';

Og din post.php burde så være noget i stil med:

<?php
// The neccesary variables are set.
$url = "http://www.cpsms.dk/sms/";
$url .= "?message=" . urlencode($_POST['message']);
$url .= "&recipient=$_POST['recipient']"; // Recipient
$url .= "&username=xxxxx"; // Username
$url .= "&password=xxxxx"; // Password
$url .= "&from=" . urlencode($_POST['from']); // Sendername
// The url is opened
$reply = file_get_contents($url);
if(strstr($reply, "<succes>")) {
// If the reply contains the tag <succes> the SMS has been sent.
echo "The message has been sent. Server response: ".$reply;
} else {
// If not, there has been an error.
echo "The message has NOT been sent. Server response: ".$reply;
}
?>
Avatar billede nitram30 Nybegynder
02. august 2008 - 13:02 #2
Hejsa

har prøvet koden og får følgende fejl:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/mobileupdate.dk/post.php on line 5
Avatar billede jakobdo Ekspert
02. august 2008 - 13:26 #3
form.html

<html>
<body>
  <h1>SMS form</h1>
  <form method='post' action='post.php'>
  <table border=0>
        <tr>
    <td>Afsender:</td>
    <td><input type="text" name="from"></td>
  </tr>
      <tr>
    <td>Til Mobilnr:</td>
    <td><input type="text" name="recipient"></td>
  </tr>
  <tr>
    <td>Besked</td>
    <td><textarea rows='4' cols='40' name="message"></textarea></td>
  </tr>
  <tr>
    <td> </td>
    <td><input type='submit' name='submit' value='Send'></td>
  </tr>
  </table>
  </form>
</body>
</html>

og post.php
<?php
//http://www.eksperten.dk/spm/840185
// The neccesary variables are set.
$url = "http://www.cpsms.dk/sms/";
$url .= "?message=" . urlencode($_POST['message']);
$url .= "&recipient=".$_POST['recipient']; // Recipient
$url .= "&username=xxxxx"; // Username
$url .= "&password=xxxxx"; // Password
$url .= "&from=" . urlencode($_POST['from']); // Sendername
// The url is opened
$reply = file_get_contents($url);
if(strstr($reply, "<succes>")) {
// If the reply contains the tag <succes> the SMS has been sent.
echo "The message has been sent. Server response: ".$reply;
} else {
// If not, there has been an error.
echo "The message has NOT been sent. Server response: ".$reply;
}
?>
Avatar billede nitram30 Nybegynder
02. august 2008 - 14:25 #4
Jamen dog, så virker det jo.
MANGE TAK. :-)

Har lige sat yderligere 50P af til dig.
Hvordan laver jeg en limit på max 160 tegn i php koden?
Hvordan lægger jeg en default tekst i toppen af message som ikke skal kunne ses i form?
Avatar billede jakobdo Ekspert
02. august 2008 - 14:43 #5
$default_message = 'Hej dav, fra jakobdo';
$url .= "?message=" . urlencode($default_message) . urlencode($_POST['message']);

Og du kan lave substr() og klippe til 160 eller bruge javascript.
Avatar billede nitram30 Nybegynder
06. august 2008 - 00:12 #6
Kunne godt bruge lidt hjælp til at lave en <BR> mellem
$url .= "?text=" . urlencode($default_message) <br> . urlencode($_POST['text']);

Kan man ikke låse textarea til max 160 tegn?
Avatar billede leif Seniormester
06. august 2008 - 00:20 #7
Vælg enten at bruge et standard text felt med maxlength="160" eller prøve fx: http://bytes.com/forum/thread548928.html
Avatar billede nitram30 Nybegynder
06. august 2008 - 02:19 #8
Nu mangler jeg hjælp til det sidste, så lukker jeg spørgsmål.

Skal have hjælp til linieskift mellem:
$url .= "?text=" . urlencode($default_message) <br> . urlencode($_POST['text']);

Skal have hjælp til ÆØÅ problem.

Skal have hjælp til min data logger, i tilfælde af spam.
$insertSQL = "insert into frismsdatalog (time, ip, from, recipient, text) values ('$time', '$ip', '&from', '&recipient', '?text')";

Sidste ting jeg mangler hjælp til er at kunne låse for at det MAX er muligt at sende 5 sms'er fra siden.

Er der nogen der er med, sætter yderligere 50P til at få sluttet scriptet af.


<?
include("config.php");
?>

<?php
// The neccesary variables are set.
$url = "http://api.smsgateway.dk/rpc/sendsms/";
$default_message = 'http://Minside.dk';
$default_countrycode = '+45';
$time = date("Y-m/d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$url .= "?text=" . urlencode($default_message) . urlencode($_POST['message']);
$url .= "&recipient=". urlencode($default_countrycode) . urlencode($_POST['recipient']); // Recipient
$url .= "&username=xx"; // Username
$url .= "&password=xxxxxxxxx"; // Password
$url .= "&from=" . urlencode($_POST['from']); // Sendername
// The url is opened
$reply = file_get_contents($url);
if(strstr($reply, "<SUCCESS>")) {
// If the reply contains the tag <SUCCESS> the SMS has been sent.
echo "The message has been sent. Server response: ".$reply;
} else {
// If not, there has been an error.
echo "The message has NOT been sent. Server response: ".$reply;
}
if(!empty($_POST['recipient'])){
$insertSQL = "insert into frismsdatalog (time, ip, from, recipient, text) values ('$time', '$ip', '&from', '&recipient', '?text')";
    mysql_query($insertSQL)or die(mysql_error());
}
?>
Avatar billede leif Seniormester
06. august 2008 - 08:39 #9
Nu skriver du lige pludselig en anden URL ? Husk at ved skift af Gateway kan syntax være anderledes.

Hjælp til et ÆØÅæøå problem ? Hvad er problemet da ?

Brug nu $_POST[from] osv. lige som du gør i scriptet ved afsendelse af SMSen


På hvad baggrund vil du kontrollere om en person har sendt 5 SMSer ? En cookie (Kan slettes af brugeren), IP (Der kan sidde flere personer på samme IP) eller med et login system ?
Avatar billede nitram30 Nybegynder
26. august 2008 - 21:31 #10
skal vi lukke og slukke spørgsmål?
Avatar billede jakobdo Ekspert
26. august 2008 - 21:39 #11
Du kan da få et svar fra mig ihf.
Avatar billede leif Seniormester
26. august 2008 - 21:56 #12
Hvis du mener du har fået hjælp ellers afviser du blot
Avatar billede nitram30 Nybegynder
26. august 2008 - 22:48 #13
Takker for hjælpen. :-)
Avatar billede jakobdo Ekspert
26. august 2008 - 22:55 #14
Takker for point.
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