נפתר קוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה
-
@שואל-ברצינות ???
-
<?php $token = $_GET['token']; if ($token == null ) { print("token is null"); exit(); } $name = $_GET['name']; if ($name == null) { print("name is null"); exit(); } $newname = $_GET['newname']; if ($newname == null) { print("newname is null"); exit(); } $what = $_GET['what']; if ($what == null) { print("what is null"); exit(); } $newwhat = $_GET['newwhat']; if ($newwhat == null) { print("newwhat is null"); exit(); } $yemot = "https://www.call2all.co.il/ym/api/FileAction?token={$token}&action=copy&what=ivr2:{$what}/{$name}.wav&target=ivr2:{$newwhat}/{$newname}.wav" ; $url1 = file_get_contents($yemot); $url = json_decode("$url1", true); $status = $url['responseStatus']; if ($status == "OK") { echo "הקובץ מספר" . " <br /> " . $name . "נעתק בהצלחה בשם: " . " <br /> " . $newname ; }else{ echo "$url1"; } ?>
זה עובד לי מעולה בשרת הוסטינגר.
זה בגדול הקוד שהיה כתוב כאן , רק הוספתי לו הודעות שגיאה מתאימות.
הוא מדפיס את התגובה של ימות אם יש שגיאה
-
בקיצור... לא עובד...
האם מישהו יודע יותר עלfile_get_contents()
בוובהוסט?"
כי נראה שהם לא מאפשרים שימוש ב-file_get_contents() בקוד... יכול להיות? -
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
בקיצור... לא עובד...
האם מישהו יודע יותר עלfile_get_contents()
בוובהוסט?"
כי נראה שהם לא מאפשרים שימוש ב-file_get_contents() בקוד... יכול להיות?תנסה על קובץ לוקאלי לבדוק אם הוא מחזיר תקין, ותבדוק.
-
@MGM-IVR כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
תנסה על קובץ לוקאלי לבדוק אם הוא מחזיר תקין, ותבדוק.
הוא מַחזיר תקין
?? -
נראה שגם ל @יהודה-הוצלר-0 היה לו בעיה זו...
בכתובת הלינק של השרת (הכותרת לא קשור לנושא...) מיום 8 ביוני 2021, 11:25@יהודה-הוצלר-0 כתב בכתובת הלינק של השרת:
זה מה שעשיתי אבל זה עושה לי שקט ומחזיר לתפריט הראשי
@יוסף-ח כתב בכתובת הלינק של השרת:
@יהודה-הוצלר-0
זה רק מודול מתחברות זה לא משהו שאמור לשנות לך משהו....
תסמן את הנושא כנפתרוהוא סימנו !
אבל @יהודה-הוצלר-0 כתב בכתובת הלינק של השרת:
זה עושה לי שקט
ועיינו:
@BARKOL כתב בכל מודולי ה API של ימות להדגמה:
if ($str["responseStatus"] === "OK"){ echo "id_list_message=t-ההתנתקות בוצעה בהצלחה, ממערכת מספר.d-$ApiDID.&go_to_folder=$FolderLogoutOk";}
בקיצור היה לו לשמוע "ההתנתקות בוצעה בהצלחה, ממערכת מספר---" והוא שמע "NULL" ואין הנושא כלל! למה זה?
-
@יואל-נחמיה מסובך לעבור על הפוסטים להבין את הבעיה אולי תפרט בקצרה?
-
@הלי יש לנו את זה שנערך ע"י החברים היקרים, קוד בעצם פשוט
<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); //טוקן $token = $_GET['token']; //שם מקור $name = $_GET['name']; //שם יעד $newname = $_GET['newname']; //שלוחת מקור $what = $_GET['what']; //שלוחת היעד $newwhat = $_GET['newwhat']; $yemot = "https://www.call2all.co.il/ym/api/FileAction?token={$token}&action=copy&what=ivr2:{$what}/{$name}.wav&target=ivr2:{$newwhat}/{$newname}.wav" ; $url1 = file_get_contents($yemot); $url = json_decode("$url1", true); $status = $url['responseStatus']; if ($status == "OK") { echo "הקובץ מספר" . " <br /> " . $name . "נעתק בהצלחה בשם: " . " <br /> " . $newname ; }else{ echo "$url1"; } ?>
מה שעובד כמעט לכולם כאן
ולי (אני משתמש ב 000webhost.com) המענה היאWarning: file_get_contents(...): failed to open stream: Connection timed out in /storage/.../copy.php on line 20
-
@יואל-נחמיה ניסית להשתמש ב-cUrl במקום?
-
@שואל-ברצינות כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
@יואל-נחמיה ניסית להשתמש ב-cUrl במקום?
איך? ואיפה ?
(שכחתי לחזור על עיקר כזה, אני מתחיל.. )
-
תנסה בבקשה את הקוד הבא (שינוי קטן) ותעדכן
בהצלחה<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); //טוקן $token = $_GET['token']; //שם מקור $name = $_GET['name']; //שם יעד $newname = $_GET['newname']; //שלוחת מקור $what = $_GET['what']; //שלוחת היעד $newwhat = $_GET['newwhat']; $yemot = "https://www.call2all.co.il/ym/api/FileAction?token={$token}&action=copy&what=ivr2:{$what}/{$name}.wav&target=ivr2:{$newwhat}/{$newname}.wav" ; $url1= shell_exec("curl '$yemot'"); $url = json_decode("$url1", true); $status = $url['responseStatus']; if ($status == "OK") { echo "הקובץ מספר" . " <br /> " . $name . "נעתק בהצלחה בשם: " . " <br /> " . $newname ; }else{ echo "$url1"; } ?>
-
@הלי אם הבקשה ממני ( @יואל-נחמיה ) ניסיתי והמענה היא:
Warning: shell_exec() has been disabled for security reasons in /storage/ssd4/862/20280862/public_html/copy4.php on line 20
וובהוסט לא מאפשרים שימוש ב- ;shell_exec()
-
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
בקיצור... לא עובד...
האם מישהו יודע יותר עלfile_get_contents()
בוובהוסט?"
כי נראה שהם לא מאפשרים שימוש ב-file_get_contents() בקוד... יכול להיות?בגירסת php 8.0 לא נתמך file_get_contents().
אבל את הקוד שהבאת בתחילת הנושא בדקתי והוא עובד מעולה, הבעייה שלך כנראה שהקובץ שאתה רוצה להעתיק לא קיים במערכת או שהשלוחה אליה אתה רוצה להעתיק אינה קיימת במערכת או שהקובץ קיים בתיקיית היעד.
פשוט תשנה את הקוד לקוד הבא ותכתוב פה מה הפלט שאתה מקבל:<?php $token = $_GET['token']; $name = $_GET['name']; $newname = $_GET['newname']; $yemot = "https://www.call2all.co.il/ym/api/FileAction?token=$token&action=copy&what=ivr2:3/1/$name.wav&target=ivr2:3/1/0/$newname.wav" ; $url = file_get_contents($yemot); $json = json_decode($url,true); $status = $json['responseStatus']; if ($status == "OK") { echo "הקובץ מספר" & " <br /> " & $name & "נעתק בהצלחה בשם: " & " <br /> " & $newname ; }else{ echo "error"."</br>סטטוס השגיאה הוא:".$url; } ?>
-
@פיסטוק-פרווה לֹא, כי אין מענה מימות כלל (!)
ולגבי הקוד שלך המענה, כמובן היאerror סטטוס השגיאה הוא:
ועם
ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL);
Warning: file_get_contents(https://www.call2all.co.il/ym/api/FileAction?token=****&action=copy&what=ivr2:3/1/***.wav&target=ivr2:3/1/0/***.wav): failed to open stream: Connection timed out in /storage/***/public_html/copy.php on line 20 error סטטוס השגיאה הוא:
אני לא יודע אם 000webhost.com משתמש בגרסה php 8.0. אם כן, מה יכול להחליף את file_get_contents() ??
(shell_exec() נעול בוובהוסט כנ"ל) -
@פיסטוק-פרווה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
הבעייה שלך כנראה שהקובץ שאתה רוצה להעתיק לא קיים במערכת או שהשלוחה אליה אתה רוצה להעתיק אינה קיימת במערכת או שהקובץ קיים בתיקיית היעד.
זה בעיה בצד השרת שלו ולא ברמת ה API של ימות
תראה את השגיאה שהוא מקבל@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
Warning: file_get_contents(...): failed to open stream: Connection timed out in /storage/.../copy.php on line 20
מצביע על בעיה כל שהיא שיש בתקשורת בין השרת שהוא משתמש, לבין ימות
-
@פיסטוק-פרווה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
בגירסת php 8.0 לא נתמך file_get_contents().
בתיעוד הרשמי דווקא כתוב שכן
אני בעצמי משתמש עם זה ב-PHP 8.2 -
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
וובהוסט לא מאפשרים שימוש ב- ;shell_exec()
רוב ככל שירותי אירוח אתרים לא מאפשרים את הפונקציה הזו מכיוון שהיא מאפשרת לעקוף את המגבלות שחברות האחסון מטילות על החשבון
-
@יואל-נחמיה כתב בקוד להעתיק קובץ ע"י מספר בלבד : צריך עזרה:
אם כן, מה יכול להחליף את file_get_contents() ??
curl
<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); $url = 'https://www.call2all.co.il/ym/api/FileAction'; $query = [ 'token' => '0770000000:1234', 'action' => 'copy', 'what' => 'ivr2:3/1/***.wav', 'target' => 'ivr2:3/1/0/***.wav', ]; $result = call_API($url, $query); var_dump( $result['code'], $result['answer'] ); function call_API($url, $query = []){ $ch = curl_init(); if( !empty( $query ) ) $url .= '?'.http_build_query($query); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); // Receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); return( ['code' => $http_code, 'answer' => $server_output ] ); }
-
-
הקוד הבא מכיל ניפוי שגיאות:
<?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); $url = 'https://www.call2all.co.il/ym/api/FileAction'; $query = [ 'token' => '0770000000:1234', 'action' => 'copy', 'what' => 'ivr2:3/1/***.wav', 'target' => 'ivr2:3/1/0/***.wav', ]; $result = call_API($url, $query); var_dump( $result['code'], $result['answer'], $result['error'] ); function call_API($url, $query = []){ $ch = curl_init(); if( !empty( $query ) ) $url .= '?'.http_build_query($query); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); // Receive server response ... curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); if (curl_errno($ch)) { $error_msg = curl_error($ch); } $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close ($ch); return( ['code' => $http_code, 'answer' => $server_output , 'error' => ( $error_msg ?? 'no errors' )] ); }