【问题标题】:Full Message is not showing in mobile phone using php sms api使用php sms api在手机中未显示完整消息
【发布时间】:2013-12-10 13:39:36
【问题描述】:

嗯,我刚买了一个由php创建的sms api。他们为我提供了这 2 行:

http://fahimit.com/smsapi.php?
user=username&pass=pass&phone=mobile_numer&senderid=sender_name&message=my_message 

\好吧,现在我正在使用 html 表单发送短信。但是在发送消息后,它没有显示完整的发件人姓名和消息。

例如,如果我使用“Test Sender”作为 sender_name,使用“Test message test message”作为 my_message,那么它只会显示第一个单词,例如:Test as sender_name 和 Test as my_message。我不明白为什么它没有显示完整的消息和发件人姓名

PHP 代码:

        <?php
        if(isset($_POST['Submit']) && $_POST['Submit'] == "Send SMS")
        {

            $write_numer = $_POST['write_number'];  
            $sender = inputvalid($_POST['sender']);
            $type = inputvalid($_POST['type']);
            $select_msg = inputvalid($_POST['select_msg']);     
            $msg = $_POST['txt'];
            $length = strlen($msg); 
            $err = array();
            $ip =  $_SERVER['REMOTE_ADDR'];

            if(isset($write_numer) && isset($sender) && isset($type) && isset($select_msg) && isset($msg))
            {
                if(empty($write_numer) && empty($sender) && empty($type) && empty($select_msg) && empty($msg))
                    $err[] = "All field require";
                else
                {
                    if(empty($write_numer)) 
                        $err[] = "Write your mobile number";
                    elseif(strlen($write_numer) > 13 || strlen($write_numer) < 13)
                        $err[] = "Your mobile number format is not correct";    
                    elseif(!is_numeric($write_numer))
                        $err[] = "Your mobile number format is not correct";    
                    elseif (!preg_match("/^8801(6|5|7|8|9|1)\d{8}/", $write_numer))
                        $err[] = "Invalid mobile number";

                    if(empty($sender))  
                        $err[] = "Select sender name";      

                    if(empty($type))    
                        $err[] = "Select your message type";    

                    if(empty($select_msg) && empty($msg))   
                        $err[] = "Select your message";             

                }
            }

            //error count
            if(!empty($err))
            {
                echo "<div class='error'>"; 
                foreach($err as $er)
                {
                    echo "<font color=red>$er.</font><br/>";                
                }
                echo "</div>";
                echo "<br/>";
            }
            else
            {

                $sms =  "http://fahimit.com/smsapi.php?user=MYUSERNAME&pass=MYPASS&phone=".$write_numer."&senderid=".$sender."&message=".$msg."";       
                $sms = file_get_contents($sms);


                if($sms)
                {
                    echo "<div class='success'>Successfully sent your message to $write_numer. Thank You.</div>";       
                    $sql = mysql_query("INSERT INTO e_sent_sms VALUES('', '', '', '$write_numer', '$msg', '', '', '$length', '$type', '$sender', '$current_date', '$ip' )");
                }
                else
                {
                    mysql_error();
                }
            }
        }
        ?>  

HTML 代码:

        <form name="frm" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>">  
        <table width="800" border="0" cellspacing="10" cellpadding="0"  style="float:left; position:relative;">
        <tr>
            <td>Write Number</td>
            <td><input type="text" name="write_number" placeholder="Write your mobile number" class="td3" value="<?php if(isset($_POST['write_number'])) echo $_POST['write_number']; ?>" /><span style="color:#033;">* Mobile number must start with 8801XXXXXXXXX</span></td>
        </tr>
        <tr>
            <td>Sender</td>
            <td><input type="text" name="sender" placeholder="Sender name" class="td3" value="<?php if(isset($_POST['sender'])) echo $_POST['sender']; ?>" /></td>
        </tr>
        <tr>
            <td>Message type</td>
            <td>
                <select name="type" class="select">
                    <option value="">--Select--</option>
                    <option value="5" <?php if(isset($_POST['type']) && $_POST['type'] == "5") echo 'selected = "selected"'; ?>>Text</option>
                    <option value="1" <?php if(isset($_POST['type']) && $_POST['type'] == "1") echo 'selected = "selected"'; ?>>Flash</option>
                    <option value="3" <?php if(isset($_POST['type']) && $_POST['type'] == "3") echo 'selected = "selected"'; ?>>Arabic</option>
                    <option value="2" <?php if(isset($_POST['type']) && $_POST['type'] == "2") echo 'selected = "selected"'; ?>>Unicode</option>
                    <option value="6" <?php if(isset($_POST['type']) && $_POST['type'] == "6") echo 'selected = "selected"'; ?>>Unicode Flash</option>
                    <option value="4" <?php if(isset($_POST['type']) && $_POST['type'] == "4") echo 'selected = "selected"'; ?>>Wap Push</option>
                </select>
            </td>
        </tr>

        <tr>
            <td>Select message</td>
            <td>
            <select name="select_msg" class="select" id="carDealer">
                <option value="">--Select Message--</option>
                <?php
                $sql = mysql_query("SELECT DISTINCT msg FROM e_sms_draft");
                while($res = mysql_fetch_array($sql))
                {
                    $draft = inputvalid($res['msg']);
                    $draft = stripslashes($draft);
                    if(isset($_POST['select_msg']) && $_POST['select_msg'] == "$draft")
                    $sel = 'selected = "selecteds"';
                    else
                    $sel = "";

                    echo "<option value='$draft' $sel>$draft</option>";
                }       
                ?>
            </select>
            </td>
        </tr>
        <td valign="top">Message</td>
            <td><textarea class="textarea2" id="carPark" placeholder="Your message" name="txt" onkeyup="counter(this);"><?php if(isset($_POST['txt'])) echo $_POST['txt']; ?></textarea>
            <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
        <script>
        function putIt(e) {
            $("#carPark").val(e.target.value);
        }

        $("#carDealer").on("change", putIt);
        </script>

            <br/><input type="" name="lbl" style="border:none;"><br/></td>

          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="Submit" value="Save SMS" class="view"/>
              <input type="submit" name="Submit" value="Send SMS" class="submit"/></td>
          </tr>
        </table>
        </form>

你能告诉我我的代码有什么问题吗?

【问题讨论】:

  • 奇怪!!为什么有人投反对票

标签: php


【解决方案1】:

在将文本传递到 URL 之前,您需要对文本进行 urlencode。这样做

$sender = urlencode($sender);
$msg    = urlencode($msg);

$sms =  "http://fahimit.com/smsapi.php?user=MYUSERNAME&pass=MYPASS&phone=".$write_numer."&senderid=".$sender."&message=".$msg."";

对要发送到 URL 的所有变量执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2019-10-12
    相关资源
    最近更新 更多