За последние 24 часа нас посетил 17591 программист и 1310 роботов. Сейчас ищут 878 программистов ...

Подключение элементарной странички с контактной формой к API

Тема в разделе "Сделайте за меня", создана пользователем gydzibit, 5 дек 2014.

  1. gydzibit

    gydzibit Новичок

    С нами с:
    5 дек 2014
    Сообщения:
    4
    Симпатии:
    0
    Хочу к обычной форме подключить Апи или смс шлюз. Пользуюсь сервисом флай смс и у них есть пример кода, который нужно подстроить под себя и вставить.
    Вот скрипт элементарной странички с формой:
    Код (Text):
    1. <?php
    2.    function ValidateEmail($email)
    3.    {
    4.       $pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';
    5.       return preg_match($pattern, $email);
    6.    }
    7.  
    8.    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    9.    {
    10.       $mailto = 'blabla@mail.ru';
    11.       $mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto;
    12.       $subject = 'Contact Information';
    13.       $message = 'Values submitted from web site form:';
    14.       $success_url = './success.html';
    15.       $error_url = './error.html';
    16.       $error = '';
    17.       $eol = "\r\n";
    18.       $max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000;
    19.       $boundary = md5(uniqid(time()));
    20.  
    21.       $header  = 'From: '.$mailfrom.$eol;
    22.       $header .= 'Reply-To: '.$mailfrom.$eol;
    23.       $header .= 'MIME-Version: 1.0'.$eol;
    24.       $header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol;
    25.       $header .= 'X-Mailer: PHP v'.phpversion().$eol;
    26.       if (!ValidateEmail($mailfrom))
    27.       {
    28.          $error .= "The specified email address is invalid!\n<br>";
    29.       }
    30.  
    31.       if (!empty($error))
    32.       {
    33.          $errorcode = file_get_contents($error_url);
    34.          $replace = "##error##";
    35.          $errorcode = str_replace($replace, $error, $errorcode);
    36.          echo $errorcode;
    37.          exit;
    38.       }
    39.  
    40.       $internalfields = array ("submit", "reset", "send", "captcha_code");
    41.       $message .= $eol;
    42.       $message .= "IP Address : ";
    43.       $message .= $_SERVER['REMOTE_ADDR'];
    44.       $message .= $eol;
    45.       foreach ($_POST as $key => $value)
    46.       {
    47.          if (!in_array(strtolower($key), $internalfields))
    48.          {
    49.             if (!is_array($value))
    50.             {
    51.                $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol;
    52.             }
    53.             else
    54.             {
    55.                $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol;
    56.             }
    57.          }
    58.       }
    59.  
    60.       $body  = 'This is a multi-part message in MIME format.'.$eol.$eol;
    61.       $body .= '--'.$boundary.$eol;
    62.       $body .= 'Content-Type: text/plain; charset=ISO-8859-1'.$eol;
    63.       $body .= 'Content-Transfer-Encoding: 8bit'.$eol;
    64.       $body .= $eol.stripslashes($message).$eol;
    65.       if (!empty($_FILES))
    66.       {
    67.           foreach ($_FILES as $key => $value)
    68.           {
    69.              if ($_FILES[$key]['error'] == 0 && $_FILES[$key]['size'] <= $max_filesize)
    70.              {
    71.                 $body .= '--'.$boundary.$eol;
    72.                 $body .= 'Content-Type: '.$_FILES[$key]['type'].'; name='.$_FILES[$key]['name'].$eol;
    73.                 $body .= 'Content-Transfer-Encoding: base64'.$eol;
    74.                 $body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol;
    75.                 $body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol;
    76.              }
    77.          }
    78.       }
    79.       $body .= '--'.$boundary.'--'.$eol;
    80.       if ($mailto != '')
    81.       {
    82.          mail($mailto, $subject, $body, $header);
    83.       }
    84.       header('Location: '.$success_url);
    85.       exit;
    86.    }
    87. ?>
    88. <!doctype html>
    89. <html>
    90. <head>
    91. <meta charset="UTF-8">
    92. <title>Безымянная страница</title>
    93. <meta name="generator" content="WYSIWYG Web Builder 9 - http://www.wysiwygwebbuilder.com">
    94. <style type="text/css">
    95. body
    96. {
    97.    font-size: 8px;
    98.    line-height: 1.1875;
    99.    margin: 0;
    100.    padding: 0;
    101.    background-color: #FFFFFF;
    102.    color: #000000;
    103. }
    104. </style>
    105. <style type="text/css">
    106. a
    107. {
    108.    color: #0000FF;
    109.    text-decoration: underline;
    110. }
    111. a:visited
    112. {
    113.    color: #800080;
    114. }
    115. a:active
    116. {
    117.    color: #FF0000;
    118. }
    119. a:hover
    120. {
    121.    color: #0000FF;
    122.    text-decoration: underline;
    123. }
    124. </style>
    125. <style type="text/css">
    126. #wb_Form1
    127. {
    128.    background-color: #FAFAFA;
    129.    border: 0px #000000 solid;
    130. }
    131. #wb_Text1
    132. {
    133.    background-color: transparent;
    134.    border: 0px #000000 solid;
    135.    padding: 0;
    136.    text-align: left;
    137. }
    138. #wb_Text1 div
    139. {
    140.    text-align: left;
    141. }
    142. #Editbox1
    143. {
    144.    border: 1px #A9A9A9 solid;
    145.    background-color: #FFFFFF;
    146.    color :#000000;
    147.    font-family: Arial;
    148.    font-size: 13px;
    149.    text-align: left;
    150.    vertical-align: middle;
    151. }
    152. #wb_Text2
    153. {
    154.    background-color: transparent;
    155.    border: 0px #000000 solid;
    156.    padding: 0;
    157.    text-align: left;
    158. }
    159. #wb_Text2 div
    160. {
    161.    text-align: left;
    162. }
    163. #Editbox2
    164. {
    165.    border: 1px #A9A9A9 solid;
    166.    background-color: #FFFFFF;
    167.    color :#000000;
    168.    font-family: Arial;
    169.    font-size: 13px;
    170.    text-align: left;
    171.    vertical-align: middle;
    172. }
    173. #Button1
    174. {
    175.    border: 1px #A9A9A9 solid;
    176.    background-color: #F0F0F0;
    177.    color: #000000;
    178.    font-family: Arial;
    179.    font-size: 13px;
    180. }
    181. </style>
    182. </head>
    183. <body>
    184. <div id="wb_Form1" style="position:absolute;left:0px;top:0px;width:283px;height:120px;z-index:5;">
    185. <form name="contact" method="post" action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data" id="Form1">
    186. <div id="wb_Text1" style="position:absolute;left:10px;top:15px;width:43px;height:16px;z-index:0;text-align:left;">
    187. <span style="color:#000000;font-family:Arial;font-size:13px;">Name:</span></div>
    188. <input type="text" id="Editbox1" style="position:absolute;left:63px;top:15px;width:198px;height:23px;line-height:23px;z-index:1;" name="name" value="">
    189. <div id="wb_Text2" style="position:absolute;left:10px;top:45px;width:43px;height:16px;z-index:2;text-align:left;">
    190. <span style="color:#000000;font-family:Arial;font-size:13px;">Tel.</span></div>
    191. <input type="text" id="Editbox2" style="position:absolute;left:63px;top:45px;width:198px;height:23px;line-height:23px;z-index:3;" name="Telefon" value="">
    192. <input type="submit" id="Button1" name="" value="Send" style="position:absolute;left:63px;top:75px;width:96px;height:25px;z-index:4;">
    193. </form>
    194. </div>
    195. </body>
    196. </html>
    И вот пример, который дает сервис :
    Код (Text):
    1.  <?php
    2. // iconv используется для корректного перекодирования кириллических сообщений в UTF-8
    3. // для тех, кто изначально работает с UTF-8 ¬преобразование делать не нужно.
    4.  
    5. $text = iconv('windows-1251', 'utf-8', htmlspecialchars('Заметьте, что когда герой фильма подписывает договор с Сатаной, он не подписывает копию договора и не получает ее.'));
    6. $description = iconv('windows-1251', 'utf-8', htmlspecialchars('Моя первая рассылка'));
    7. $start_time = “AUTO”; //отправить немедленно
    8. $end_time = “AUTO”; // автоматически рассчитать системой
    9. $rate = 1; // скорость отправки сообщений (1 = 1 смс минута). Одиночные СМС сообщения отправляются всегда с максимальной скоростью.
    10. $lifetime = 4; // срок жизни сообщения 4 часа
    11. $source = 'SMS'; // Alfaname
    12. $recipient = '380501234567';
    13. $user = 'user';
    14. $password = 'password';
    15.  
    16. $myXML   = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    17. $myXML  .= "<request>";
    18. $myXML  .= "<operation>SENDSMS</operation>";
    19. $myXML  .= '        <message start_time="'.$start_time.'" end_time="'.$end_time.'" lifetime="'.$lifetime.'" rate="'.$rate.'" desc="'.$description.'" source="'.$source.'">'."\n";
    20. $myXML  .= "        <body>".$text."</body>";
    21. $myXML  .= "        <recipient>".$recipient."</recipient>";
    22. $myXML  .=  "</message>";
    23. $myXML  .= "</request>";
    24.  
    25. $ch = curl_init();
    26. curl_setopt($ch, CURLOPT_USERPWD , $user.':'.$password);
    27. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    28. curl_setopt($ch, CURLOPT_POST, 1);
    29. curl_setopt($ch, CURLOPT_URL, 'http://sms-fly.com/api/api.php');
    30. curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml", "Accept: text/xml"));
    31. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    32. curl_setopt($ch, CURLOPT_POSTFIELDS, $myXML);
    33. $response = curl_exec($ch);
    34. curl_close($ch);
    35.  
    36. // вывод результата в браузер для удобства чтения обрамлен в textarea
    37. echo '<textarea spellcheck="false" name="111" rows="25" cols="150">';
    38. echo $response;
    39. echo '</textarea>';;
    40. ?>
    Ну я краем ухом слышал о программировании и поменял пример подстроив его под себя и свой аккаунт в сервисе. Но как бы я не возился с ним, как бы я не подставлял этот чёртов код
    , у меня все равно ничего не работает. Помогите пожалуйста с данной проблемой. Буду ооочень благодарен.