פקודה המבוצעת פעמיים?
-
תודה אבל בנתיים אני מסתדר עם המחלקה אז מה אכפת לי...
-
אין עליך, מגיע ומסתער על הצריכים עזרה
תכלס, הוספתיאת הקוד וזה ממשיך להכניס פעמיים.
אגב כשאני מריץ אותו מהמחשב [ללא GET, אלא רושם מספר לבד], אין את הבעיה הזאת, רק בשיחה מימות הוא מגיב ככה
-
@מנסה
תוכל להעלות שוב את כל הקוד? -
תודה
<?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; } } -
@מנסה
תנסה את הקוד הבא<?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-נרשמתם בהצלחה."; } -
זאת התשובה
גם בטלפון וגם דרך הדפדפן
id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.אגב, הקובץ מכיל ים של שמות כך שנראה לי שאי אפשר להעלות כ"כ הרבה באמצעות
UploadTextFile[איןלי מושג מה ההגבלה של הפקודה הזאת אבל אני יודע של
GetTextFileיש הגבלה של כ2500 תווים -
@מנסה אמר בפקודה המבוצעת פעמיים?:
זאת התשובה
גם בטלפון וגם דרך הדפדפן
id_list_message=t-שגיאה בהכנסת הנתונים, נא נסו שנית.אגב, הקובץ מכיל ים של שמות כך שנראה לי שאי אפשר להעלות כ"כ הרבה באמצעות
UploadTextFile[איןלי מושג מה ההגבלה של הפקודה הזאת אבל אני יודע של
GetTextFileיש הגבלה של כ2500 תוויםלא נראה לי שיש הגבלה בשימוש עם
UploadTextFile,
אבל אתה משתמש בGET ושם בהחלט יש הגבלה כללית על גודל ה URL..
תעלה בPOST. -
@מנסה אמר בפקודה המבוצעת פעמיים?:
זאת התשובה
גם בטלפון וגם דרך הדפדפןאבל בתכליס זה מעלה את השמות או שלא?
-
לא
[בנתיים אין לי מושג למה, זה הפסיק להעלות פעמיים, אולי בזכות השורה שהכנסת לי, בכל אופן תודה רבה]
-
@מנסה אמר בפקודה המבוצעת פעמיים?:
לא
[בנתיים אין לי מושג למה, זה הפסיק להעלות פעמיים, אולי בזכות השורה שהכנסת לי, בכל אופן תודה רבה]
לא אולי זה בטוח בגלל זה
אבל מוזר למה הקוד הנ"ל לא עובד לך תנסה את זה וכמובן תשנה את המספרי מערכת וסיסמאות וכו<?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-נרשמתם בהצלחה."; }