• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    פקודה המבוצעת פעמיים?

    פורום מפתחים API
    3
    14
    265
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • מ
      מנסה מומחה @אהרן שובקס נערך לאחרונה על ידי

      @אהרן-שובקס

      תודה אבל בנתיים אני מסתדר עם המחלקה אז מה אכפת לי...

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • מ
        מנסה מומחה @אהרן שובקס נערך לאחרונה על ידי מנסה

        @אהרן-שובקס

        אין עליך, מגיע ומסתער על הצריכים עזרה

        תכלס, הוספתיאת הקוד וזה ממשיך להכניס פעמיים.

        אגב כשאני מריץ אותו מהמחשב [ללא GET, אלא רושם מספר לבד], אין את הבעיה הזאת, רק בשיחה מימות הוא מגיב ככה

        אהרן שובקס תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • אהרן שובקס
          אהרן שובקס ניהול @מנסה נערך לאחרונה על ידי

          @מנסה
          תוכל להעלות שוב את כל הקוד?

          מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • מ
            מנסה מומחה @אהרן שובקס נערך לאחרונה על ידי מנסה

            תודה

            <?php
            
             
            if (isset($_GET['hangup'])) {exit();}
            
            $ApiPhone = $_GET['ApiPhone'];
            
            
            //$ApiPhone = '058000000';
            //קובץ וול ניים ישן
            $wny = file_get_contents("http://call2all.co.il/ym/api/GetTextFile?token=077000000:1234&what=ivr2:/EnterID/EnterIDValName.ini");
            //המרה לגייסון
            $wny = json_decode($wny,true);
            //החלק של התוכן
            $wny = $wny ["contents"];
            
            //קובץ נרשמים חדשים
            $r = file_get_contents("http://call2all.co.il/ym/api/GetTextFile?token=077000000:1234&what=ivr2:/555/ApprovalAll.ymgr");
             
            //להמיר את זה לפורמט
            //$r = json_decode($r,true);
             
            //עכשיו מכיון שאנחנו מקבלים בתשובה מימות המשיח עוד כמה נתונים , נשלוף מתוך התשובה את הנתונים שאנחנו צריכים (תוכן הקובץ) 
            //$r = $r ["contents"];
            
            //עכשיו המשתנה  מכיל את תוכן הקובץ מהמערכת, ואפשר לערך אותו בשרת  (טיפל במחרוזות) 
            //מבודד את השורה
            $f =  stripos($r,$ApiPhone,0);
            $a = substr($r, $f,400);
            //מבודד את הערך
            $h =  stripos($a,"%p050",0);
            $e =  stripos($a,'\r\n',0);
            $j = substr($a, $h+6,$e-($h+6));
             //יוצר את הוויל ניים החדש
            $wn1 ="$ApiPhone=$j
            ";
             //מחבר את כל הטקסט להעלאה
            $wnn = "$wn1$wny";
            
            //זיהוי מערכת להעלות את הקובץ
            $con = new connecting_to_yemot_api('077000000', '1234');
            //יוצר קובץ להעלאה
            $File = new oFile('EnterIDValName.ini', 'text/plain', $wnn);
            //מיקום הקובץ
            $body = array
            (
            'path' => 'ivr2:EnterID/EnterIDValName.ini',
            'convertAudio' => 0,
            'fileUpload' => $File
            );
            //הפעלת העלאת הקובץ
            $a = $con -> connecting('UploadFile', $body);
            
            $b = $a->responseStatus; 
            
            if ($b <> 'OK'){
                 echo  "id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.";
            }else{
                echo "id_list_message=t-נרשמתם בהצלחה.";
            }
            
            
            
            //המחלקה
            class BodyPost
            {
            // part "multipart/form-data"
            public static function PartPost($name, $val)
            {
            $body = 'Content-Disposition: form-data; name="' . $name . '"';
            // check instance of oFile
            if($val instanceof oFile)
            {
            $file = $val->Name();
            $mime = $val->Mime();
            $cont = $val->Content();
            
            $body .= '; filename="' . $file . '"' . "\r\n";
            $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
            $body .= $cont."\r\n";
            } else $body .= "\r\n\r\n".$val."\r\n";
            return $body;
            }
            
            public static function Get(array $post, $delimiter = '-------------0123456789')
            {
            if(is_array($post) && !empty($post))
            {
            $bool = true;
            //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
            if($bool)
            {
            $ret = '';
            foreach($post as $name=>$val)
            $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
            $ret .= "--" . $delimiter . "--\r\n";
            } else $ret = http_build_query($post);
            } else throw new \Exception('Error input param!');
            return $ret;
            }
            }
            
            class oFile
            {
            private $name;
            private $mime;
            private $content;
            
            public function __construct($name, $mime=null, $content=null)
            {
            if(is_null($content))
            {
            $info = pathinfo($name);
            // check is exist and readable file
            if(!empty($info['basename']) && is_readable($name))
            {
            $this->name = $info['basename'];
            // get MIME
            $this->mime = mime_content_type($name);
            // load file
            $content = file_get_contents($name);
            if($content!==false)
            {
            $this->content = $content;
            }
            else
            {
            throw new Exception('Don`t get content - "'.$name.'"');
            }
            }
            else
            {
            throw new Exception('Error param');
            }
            }
            else
            {
            $this->name = $name;
            if(is_null($mime)) $mime = mime_content_type($name);
            $this->mime = $mime;
            $this->content = $content;
            };
            }
            
            public function Name() { return $this->name; }
            
            public function Mime() { return $this->mime; }
            
            public function Content() { return $this->content; }
            
            }
            
            class connecting_to_yemot_api
            {
            public $token;
            
            const URL = 'https://www.call2all.co.il/ym/api/';
            
            public function __construct($user_name, $password)
            {
            $body = array('username' => $user_name, 'password' => $password);
            
            $body = http_build_query($body);
            
            $opts = array('http' => array(
            
            'method' => 'POST',
            
            'header' => "Content-Type: application/x-www-form-urlencoded",
            
            'content' => $body,
            
            'follow_location' => false) );
            
            $context = stream_context_create($opts);
            
            $url = self::URL.'Login';
            
            $result = file_get_contents($url, FALSE, $context);
            
            $result = json_decode($result);
            
            if($result -> responseStatus == 'OK')
            {
            $this -> token = $result -> token;
            
            return TRUE;
            }
            else
            {
            throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
            }
            }
            
            public function __destruct()
            {
            $this -> connecting('Logout');
            }
            
            public function connecting($action, $body = array())
            {
            $delimiter = '----'.uniqid();
            
            $body['token'] = $this -> token;
            
            $body = BodyPost::Get($body, $delimiter);
            
            $opts = array('http' =>
            array(
            'method' => 'POST',
            'header' => 'Content-Type: multipart/form-data; boundary='.$delimiter,
            'content' => $body,
            'follow_location' => false
            )
            );
            $context = stream_context_create($opts);
            
            $url = self::URL.$action;
            
            $result = file_get_contents($url, FALSE, $context);
            
            $headers = $this -> parseHeaders($http_response_header);
            
            if($headers['Content-Type'][0] == 'application/json')
            {
            return json_decode($result);
            }
            else
            {
            return $result;
            }
            }
            
            private function parseHeaders($headers)
            {
            // פונקציה שמקבלת מערך של שורות הכותרות
            // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
            
            
            // מערך הכותרות
            $head = array();
            
            foreach( $headers as $k=>$v )
            {
            $t = explode( ':', $v, 2 );
            
            if( isset( $t[1] ) )
            {
            if($t[0] == 'Set-Cookie')
            {
            $CookiesArr = array();
            
            $cookies = explode( ';', $t[1]);
            
            foreach($cookies as $cookie)
            {
            $c = explode( '=', $cookie);
            
            if( isset( $c[1] ) )
            {
            $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
            }
            else
            {
            $CookiesArr[] = trim( $c[0] );
            }
            }
            
            $head[ trim($t[0]) ] = $CookiesArr;
            }
            elseif($t[0] == 'Content-Type')
            {
            $arr = array();
            
            $children = explode( ';', $t[1]);
            
            foreach($children as $child)
            {
            $c = explode( '=', $child);
            
            if( isset( $c[1] ) )
            {
            $arr[ trim($c[0]) ] = trim( $c[1] );
            }
            else
            {
            $arr[] = trim( $c[0] );
            }
            }
            
            $head[ trim($t[0]) ] = $arr;
            }
            else
            {
            $head[ trim($t[0]) ] = trim( $t[1] );
            }
            }
            else
            {
            $head[] = $v;
            if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
            {
            $head['reponse_code'] = intval($out[1]);
            }
            }
            }
            return $head;
            }
            }
            
            אהרן שובקס תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • אהרן שובקס
              אהרן שובקס ניהול @מנסה נערך לאחרונה על ידי

              @מנסה
              תנסה את הקוד הבא

              <?php
               
               
              if (isset($_GET['hangup'])) {exit();}
               
              $ApiPhone = $_GET['ApiPhone'];
               
               
              //$ApiPhone = '058000000';
              //קובץ וול ניים ישן
              $wny = file_get_contents("http://call2all.co.il/ym/api/GetTextFile?token=077000000:1234&what=ivr2:/EnterID/EnterIDValName.ini");
              //המרה לגייסון
              $wny = json_decode($wny,true);
              //החלק של התוכן
              $wny = $wny ["contents"];
               
              //קובץ נרשמים חדשים
              $r = file_get_contents("http://call2all.co.il/ym/api/GetTextFile?token=077000000:1234&what=ivr2:/555/ApprovalAll.ymgr");
               
              //להמיר את זה לפורמט
              //$r = json_decode($r,true);
               
              //עכשיו מכיון שאנחנו מקבלים בתשובה מימות המשיח עוד כמה נתונים , נשלוף מתוך התשובה את הנתונים שאנחנו צריכים (תוכן הקובץ) 
              //$r = $r ["contents"];
               
              //עכשיו המשתנה  מכיל את תוכן הקובץ מהמערכת, ואפשר לערך אותו בשרת  (טיפל במחרוזות) 
              //מבודד את השורה
              $f =  stripos($r,$ApiPhone,0);
              $a = substr($r, $f,400);
              //מבודד את הערך
              $h =  stripos($a,"%p050",0);
              $e =  stripos($a,'\r\n',0);
              $j = substr($a, $h+6,$e-($h+6));
               //יוצר את הוויל ניים החדש
              $wn1 ="$ApiPhone=$j
              ";
               //מחבר את כל הטקסט להעלאה
              $wnn = "$wn1$wny";
               
               
              $b = file_get_contents("https://www.call2all.co.il/ym/api/UploadTextFile?token=077:1234&what=ivr2:EnterID/EnterIDValName.ini&contents=$wnn");
              //המרה לגייסון
              $b = json_decode($b,true);
              
              $b =$b["responseStatus"]; 
               
              if ($b <> 'OK'){
                   echo  "id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.";
              }else{
                  echo "id_list_message=t-נרשמתם בהצלחה.";
              }
               
              
              מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • מ
                מנסה מומחה @אהרן שובקס נערך לאחרונה על ידי מנסה

                @אהרן-שובקס

                זאת התשובה

                גם בטלפון וגם דרך הדפדפן

                id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.
                

                אגב, הקובץ מכיל ים של שמות כך שנראה לי שאי אפשר להעלות כ"כ הרבה באמצעות UploadTextFile

                [איןלי מושג מה ההגבלה של הפקודה הזאת אבל אני יודע של GetTextFile יש הגבלה של כ2500 תווים

                שמואל אהרן שובקס 2 תגובות תגובה אחרונה תגובה ציטוט 0
                • שמואל
                  שמואל @מנסה נערך לאחרונה על ידי שמואל

                  @מנסה אמר בפקודה המבוצעת פעמיים?:

                  @אהרן-שובקס

                  זאת התשובה

                  גם בטלפון וגם דרך הדפדפן

                  id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.
                  

                  אגב, הקובץ מכיל ים של שמות כך שנראה לי שאי אפשר להעלות כ"כ הרבה באמצעות UploadTextFile

                  [איןלי מושג מה ההגבלה של הפקודה הזאת אבל אני יודע של GetTextFile יש הגבלה של כ2500 תווים

                  לא נראה לי שיש הגבלה בשימוש עם UploadTextFile,
                  אבל אתה משתמש בGET ושם בהחלט יש הגבלה כללית על גודל ה URL..
                  תעלה בPOST.

                  לפניות בנוגע לפורום: shmuel@yemot.co.il

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • אהרן שובקס
                    אהרן שובקס ניהול @מנסה נערך לאחרונה על ידי

                    @מנסה אמר בפקודה המבוצעת פעמיים?:

                    זאת התשובה
                    גם בטלפון וגם דרך הדפדפן

                    אבל בתכליס זה מעלה את השמות או שלא?

                    מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • מ
                      מנסה מומחה @אהרן שובקס נערך לאחרונה על ידי מנסה

                      @אהרן-שובקס

                      לא

                      [בנתיים אין לי מושג למה, זה הפסיק להעלות פעמיים, אולי בזכות השורה שהכנסת לי, בכל אופן תודה רבה]

                      אהרן שובקס תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • אהרן שובקס
                        אהרן שובקס ניהול @מנסה נערך לאחרונה על ידי

                        @מנסה אמר בפקודה המבוצעת פעמיים?:

                        @אהרן-שובקס

                        לא

                        [בנתיים אין לי מושג למה, זה הפסיק להעלות פעמיים, אולי בזכות השורה שהכנסת לי, בכל אופן תודה רבה]

                        לא אולי זה בטוח בגלל זה
                        אבל מוזר למה הקוד הנ"ל לא עובד לך תנסה את זה וכמובן תשנה את המספרי מערכת וסיסמאות וכו

                        
                        <?php
                         
                         
                        if (isset($_GET['hangup'])) {exit();}
                         
                        $ApiPhone = $_GET['ApiPhone'];
                         
                         
                        //$ApiPhone = '058000000';
                        //קובץ וול ניים ישן
                        $wny = file_get_contents("http://call2all.co.il/ym/api/GetTextFile?token=077000000:1234&what=ivr2:/EnterID/EnterIDValName.ini");
                        //המרה לגייסון
                        $wny = json_decode($wny,true);
                        //החלק של התוכן
                        $wny = $wny ["contents"];
                         
                        //קובץ נרשמים חדשים
                        $r = file_get_contents("http://call2all.co.il/ym/api/GetTextFile?token=077000000:1234&what=ivr2:/555/ApprovalAll.ymgr");
                         
                        //להמיר את זה לפורמט
                        $r = json_decode($r,true);
                         
                        //עכשיו מכיון שאנחנו מקבלים בתשובה מימות המשיח עוד כמה נתונים , נשלוף מתוך התשובה את הנתונים שאנחנו צריכים (תוכן הקובץ) 
                        $r = $r ["contents"];
                         
                        //עכשיו המשתנה  מכיל את תוכן הקובץ מהמערכת, ואפשר לערך אותו בשרת  (טיפל במחרוזות) 
                        //מבודד את השורה
                        $f =  stripos($r,$ApiPhone,0);
                        $a = substr($r, $f,400);
                        //מבודד את הערך
                        $h =  stripos($a,"%p050",0);
                        $e =  stripos($a,'\r\n',0);
                        $j = substr($a, $h+6,$e-($h+6));
                         //יוצר את הוויל ניים החדש
                        $wn1 ="$ApiPhone=$j";
                         //מחבר את כל הטקסט להעלאה
                        $wnn = "$wn1$wny";
                         
                         
                        $b = file_get_contents("https://www.call2all.co.il/ym/api/UploadTextFile?token=077:1234&what=ivr2:EnterID/EnterIDValName.ini&contents=$wnn");
                        //המרה לגייסון
                        $b = json_decode($b,true);
                         
                        $b =$b["responseStatus"]; 
                         
                        if ($b <> 'OK'){
                             echo  "id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.";
                        }else{
                            echo "id_list_message=t-נרשמתם בהצלחה.";
                        }
                         
                        
                        
                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • פוסט ראשון
                          פוסט אחרון