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

    בקשה מימות המשיח בקשר למעבר לשרתי Private

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

      @שואל-ברצינות נכון. גם אני נתקלתי בזה. לא נכנס שם משתנה בשום צורה. אז עשיתי ככה...

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

        @שמואל עשיתי בדיקה על אחת המחלקות ולא עובד:

        <?php
        /*================יצירת אובייקט(מופע) חדש====================*/
         
        $con = new connecting_to_yemot_api('0*********', '1212');
        /*================קבלת מספר היחידות====================*/
        $a = $con -> connecting('GetSession');
        print_r($a);
         
        /*===============================================================*/
        
        $SetSite = $_GET["SetSite"];
        	if ($SetSite == NULL) {
        	define("URL", "https://www.call2all.co.il/ym/api/");
        }
        	if ($SetSite == "private") {
        	define("URL", "https://private.call2all.co.il/ym/api/");
        }
        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 = URL;
         
            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;
            }
        }
        ?>
        

        הרצתי בדפדפן את הכתובת ולא קורה כלום.
        אם אני מריץ עם המחלקה הרגילה זה עובד מצויין.

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

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

            @ממפ אתה לא יכול לשים את

             $con = new connecting_to_yemot_api('077777', '8888');
            

            לפני המחלקה....

            המחלקה אמורה להיות למעלה.

            לנוחות אפשר לשים אותה אפילו בקובץ נפרד

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • מ
              ממפ @dudu נערך לאחרונה על ידי ממפ

              @dudu מה אמור להתקבל במשתנה private כדי שהשרת יפנה אותו לכתובת הנכונה?

              D תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • D
                dudu @ממפ נערך לאחרונה על ידי

                @ממפ true

                מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • מ
                  ממפ @dudu נערך לאחרונה על ידי

                  @dudu
                  יש סכוי להסבר יותר? בשרת הרגיל זה עובד.
                  ניסתי לבדוק את זה על שרת פרייבט ולא עובד..
                  הוספתי את זה לבדיקה (ניסיתי גם בלי זה..)

                  $private = true;
                  
                  שמואל ש D 3 תגובות תגובה אחרונה תגובה ציטוט 0
                  • שמואל
                    שמואל @ממפ נערך לאחרונה על ידי

                    @ממפ עם איזה מחלקה אתה עובד? איך קוד העתקת?

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

                      @ממפ אמר בבקשה מימות המשיח בקשר למעבר לשרתי Private:

                      @dudu
                      יש סכוי להסבר יותר? בשרת הרגיל זה עובד.
                      ניסתי לבדוק את זה על שרת פרייבט ולא עובד..
                      הוספתי את זה לבדיקה (ניסיתי גם בלי זה..)

                      $private = true;
                      

                      אם אתה מתכוון למה שאני עשיתי, אז הערך של

                      $private 
                      

                      צריך להיות www או private בהתאם לשרת

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

                        @שמואל בדקתי עכשיו שוב עם מה שאתה עשית, והסתדרתי. תודה רבה.
                        באמת מעניין שעם המחלקה של מאזין נלהב זה עובד גם אם אני כותב את
                        $con = new connecting_to_yemot_api('077777', '8888');
                        בהתחלה..

                        D תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • D
                          dudu @ממפ נערך לאחרונה על ידי

                          @ממפ נראה לי שאתה יכול לשים את זה לפני המחלקה, אבל לא לפני התוספת של @שמואל כי מה שמחוץ למחלקה או לפונקציה הוא מבצע לפי הסדר, ולכן אתה צריך לעשות את זה אחרי ההגדרה של שורת הכתובת.

                          תגובה 1 תגובה אחרונה תגובה ציטוט 1
                          • D
                            dudu @ממפ נערך לאחרונה על ידי

                            @ממפ אתה אמור פשוט לכתוב ככה:

                            $con = new connecting_to_yemot_api('077777', '8888', true);
                            
                            תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • פוסט ראשון
                              פוסט אחרון