За последние 24 часа нас посетили 18067 программистов и 1598 роботов. Сейчас ищут 890 программистов ...

Отправка телефонного номера на сторонний сервис

Тема в разделе "PHP для новичков", создана пользователем Tchort, 30 май 2011.

  1. Tchort

    Tchort Активный пользователь

    С нами с:
    7 дек 2010
    Сообщения:
    51
    Симпатии:
    0
    Есть такой сервис, который высылает пользователю купоны.
    Переделываю с перла.
    Изначально была форма в html
    HTML:
    1. <!-- form : begin -->
    2. <!-- if_error : begin --><center class="orange"><!-- error : message --></center><!-- if_error : end -->
    3. <div class="discount">
    4.    <form action="." name="sms_form" method="post">
    5.       <input name="phone_code" maxlength="3" class="discount-text" style="width:43px;" value="<!-- form : code -->">
    6.       <input name="phone_phone" maxlength="7" class="discount-text" style="width:90px;" value="<!-- form : phone -->">
    7.       <div>
    8.          <!-- module # text_block : insert_text_block : 33 -->
    9.       </div>
    10.       <input type="image" src="/i/discount-btn.gif" class="submit">
    11.       <input type="hidden" name="phone_confirm" value="1" class="confirm">
    12.    </form>
    13. </div>
    14. <!-- form : end -->
    15. <!-- form_ok : begin -->
    16. <div class="discount-ok" style="text-align:center;">
    17.    <!-- module # text_block : insert_text_block : 34 -->
    18. </div>
    19. <!-- form_ok : end -->
    И был скрипт на перле:
    Код (Text):
    1.  
    2. package form;
    3.  
    4. use lib '../mods';
    5. use Setup qw( %config );
    6. use Common qw( $dbh %FORM %var );
    7. #use Form;
    8. use LWP::UserAgent;
    9. use JSON::XS;
    10. use strict;
    11. use Mail;
    12.  
    13. my ( $function_name, $form_id ) = @_;
    14.  
    15. my $result = "";
    16. my $err_message = '';
    17.  
    18. if( $function_name eq 'insert_sms_form' ) {
    19.    my $template = Common::open_template( './form/templates/sms_form.html' );
    20.    $template =~ /<!--\s*form\s*:\s*begin\s*-->(.*?)<!--\s*form\s*:\s*end\s*-->/is;
    21.    $result = $1;
    22.    
    23.    if( $FORM{ 'phone_confirm' } ) {
    24.       if( $FORM{ 'phone_code' } !~ /^\d{3}$/ || $FORM{ 'phone_phone' } !~ /^\d{7}$/ ) {
    25.          $err_message = "Неправильно введён телефонный номер!";
    26.       } else {
    27.          my $phone = '7' . $FORM{ 'phone_code' } . $FORM{ 'phone_phone' };
    28.          my $ua = new LWP::UserAgent;
    29.          my $json = JSON::XS->new();
    30.          my $response = $ua -> post('http://mobiquest.ru/coupon_campaign/api/add_subscriber_to_campaign',
    31.             {
    32.                token => '43f234f368679oyujf32',
    33.                response => 'json',
    34.                phone => $phone
    35.             }
    36.          );
    37.  
    38.          my $content = $response -> content;
    39.          my %json_result = %{$json -> decode( $content )};
    40.  
    41.          if( int( $json_result{ 'status' } ) ) {
    42.             $template =~ /<!--\s*form_ok\s*:\s*begin\s*-->(.*?)<!--\s*form_ok\s*:\s*end\s*-->/is;
    43.             $result = $1;
    44.            
    45.             my $subject = 'Выдан СМС-купон';
    46.             my $message = qq!Выдан СМС-купон на телефонный номер $phone.!;
    47.            
    48.             Mail::sendmail( ['mail@mail.ru,sobaka@mail.ru'], ['sobaka@mail.ru'], [$subject, $message] );
    49.  
    50.          } else {
    51.             $err_message = "Возникла ошибка при отправке СМС!";
    52.          } # End if
    53.  
    54.       } # End if
    55.      
    56.       $result =~ s/<!--\s*form\s*:\s*code\s*-->/$FORM{ 'phone_code' }/gis;
    57.       $result =~ s/<!--\s*form\s*:\s*phone\s*-->/$FORM{ 'phone_phone' }/gis;
    58.      
    59.       if( $err_message ) {
    60.          $result =~ s/<!--\s*if_error\s*:\s*begin\s*-->(.*?)<!--\s*if_error\s*:\s*begin\s*-->/$1/is;
    61.          $result =~ s/<!--\s*error\s*:\s*message\s*-->/$err_message/is;
    62.  
    63.       } else {
    64.          $result =~ s/<!--\s*if_error\s*:\s*begin\s*-->(.*?)<!--\s*if_error\s*:\s*begin\s*-->//is;
    65.       } # End if
    66.  
    67.    } # End if
    68.    
    69.    
    70.    return $result;
    71. }
    Вот что я написал, дальше не пойму что творить, нужно ли тоже использовать json и как.
    PHP:
    1. <?  
    2.  if(!preg_match("/^[0-9]{0,3}+$/", $_POST['userCode'])) echo ("Код задан в неверном формате");
    3.  if(!preg_match("/^[0-9]{0,7}+$/", $_POST['userPhone'])) echo ("Телефон задан в неверном формате");
    4.      
    5.  $phone = "7".$_POST['userCode'].$_POST['userPhone'];
    6.  $fields = array (
    7.     'token' => '43f234f368679oyujf32',
    8.     'response' => 'json',
    9.     'phone' => $phone);
    10.      
    11. $response = http_post_fields("http://mobiquest.ru/coupon_campaign/api/add_subscriber_to_campaign", $fields);
    12. ?>