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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
ASSA

ASS

@ASS
אודות
פוסטים
162
נושאים
32
שיתופים
0
קבוצות
0
עוקבים
2
עוקב אחרי
2

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

    @שמואל4
    נניח הקובץ PHP שבו הפונקציה נמצאת הוא A אם אני יקרא ל בקובץ B היא תעבוד?

    תכנות

  • שליפת כתובת URL מתוך mysql
    ASSA ASS

    @שמואל4

    נראה לי שיש דרך יותר רשמית "לטמיע" סירטון מיוטיוב מאשר לעשות iframe לקישור, זה נראה לי נקודה שצריך להוסיף.

    ב www.w3schools.com זה הייתה הדרך היחידה. אפשר פרטים על הדרך הנוספת?

    תכנות

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

    @שמואל4
    אם אני מבין נכון, אז הפונקציה צריכה להיות באותו עמוד של מה שרוצים לשרש לה.

    תכנות

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

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

    תכנות

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

    @ליבל
    מכיר, אבל לא התנסתי בזה.
    הקובץ מכיל את המחלקה של מ. מ פליישער
    ושני משתנים של פרטי ההתחברות:

    $con = new connecting_to_yemot_api('07900000','1234');
    $token =  "07900000:1234";
    
    תכנות

  • שליפת כתובת URL מתוך mysql
    ASSA ASS

    @ליבל
    תוקן, תודה.

    תכנות

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

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

    מקווה שהצלחתי להסביר..

    תכנות

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

    @www אמר בשגיאת Login.php כבר בשימוש:

    include_once 'C:\wamp64\www\my_php\Login.php';

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

    תכנות

  • שליפת כתובת URL מתוך mysql
    ASSA ASS

    שלום וברכה.
    יש לי רשימת קישורי URL במסד נתונים של mysql, הרשימה מתעדכנת בכל פעם שעולה סרטון חדש ליוטיוב.
    במקביל יש לי דף באתר שאמור למשוך את הקישורים ולהציג כל סרטון באיפרם נפרד.
    הרעיון הוא שבעצם האתר מתעדכן מעצמו בכל פעם שעולה סרטון חדש לערוץ היוטיוב.
    ביצעתי את זה באמצעות שילוב ה iframe בתוך לולאת ה PHP ששולפת את הנתונים.

    $Data_extraction = "SELECT * FROM `id`";
    $mysqli_query = mysqli_query($Login, $Data_extraction);
    
    while ($Data = mysqli_fetch_array($mysqli_query)){
    
        $Dat =  $Data ["URL"];
        ?>
          <div class="row">
            <div class="column">
              <iframe src="<?php echo $Dat; ?>" width="100%" height="100%"></iframe>
          </div>
    
        <?php
    };
    
    ?>
    

    החסרונות בשיטה הזו הם:

    1. זמן טעינה ארוך. (אולי)
    2. דף ה PHP חשוף למשתשמים.
    3. הסרטונים מוצגים בצורה שהסרטון החדש מופיע בסוף רשימת הסרטונים במקום בהתחלה.

    האם יש שיטות אחרות או דרך לשפר את זאת?

    תודה רבה.

    תכנות

  • הגדרת localhost עם דומיין
    ASSA ASS

    @yossiz

    ספרייה לדוגמה:
    https://www.npmjs.com/package/node-apiless-youtube-upload

    זה ל Node.JS יש משהו ב PHP?

    תכנות

  • הגדרת localhost עם דומיין
    ASSA ASS

    @yossiz
    תודה על התשובה....
    בררתי לפני כמה ימים ואסור לעשות בחול המועד, בע"ה אני איישם לאחר שמחת תורה...

    תכנות

  • הגדרת localhost עם דומיין
    ASSA ASS

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

    שאלתי היא:

    1. האם זו אכן הדרך היחידה - בהתחשב שהאפליקציה היא לשימוש פרטי בלבד ומתחברת רק לחשבון יוטיוב אחד.
    2. אם אין דרך אחרת כיצד אני יכול להגדיר את ה localhost עם דומיין שיהיה ניתן להתחבר אליו מכל מקום.

    תודה רבה.

    תכנות

  • בעיה ב API של youtube
    ASSA ASS

    @yossiz
    עשיתי את הפתרון הזה.
    ב"ה הסתדר.
    אין לי בעיה עם נטפרי.
    בכל מקרה ממש תודה על התשובה המהירה.

    תכנות

  • בעיה ב API של youtube
    ASSA ASS

    @odeddvir
    @nigun

    עשיתי כדבריכם, וע"פ המדריך של גוגל, השגיאה שאני מקבל היא:
    cURL error 60: SSL certificate problem: unable to get local issuer certificate
    כמובן שניסיתי את הפתרונות שיש באינטרנט כמו זה, אבל עדיין מקבל את אותה שגיאה..

    תכנות

  • בעיה ב API של youtube
    ASSA ASS

    @yossiz
    @odeddvir
    יתכן שזה בגלל שהוא לא מקבל נתונים מהטופס?

    <?php
    // Destroy previous session data
    if(session_id() != '') session_destroy();
    
    // Get file upload status
    if(isset($_GET['err'])){
        if($_GET['err'] == 'bf'){
            $errorMsg = 'Please select a video file to upload.';
        }elseif($_GET['err'] == 'ue'){
            $errorMsg = 'Sorry, there was an error on uploading your file.';
        }elseif($_GET['err'] == 'fe'){
            $errorMsg = 'Sorry, only MP4, AVI, MPEG, MPG, MOV and WMV files are allowed.';
        }else{
            $errorMsg = 'Some problems occurred, please try again.';
        }
    }
    ?>
    
    <form method="post" enctype="multipart/form-data" action="upload.php">
        <?php echo (!empty($errorMsg))?'<p class="err-msg">'.$errorMsg.'</p>':''; ?>
        <label for="title">Title:</label>
        <input type="text" name="title" value="" />
        <label for="description">Description:</label>
        <textarea name="description" cols="20" rows="2" ></textarea>
        <label for="tags">Tags:</label>
        <input type="text" name="tags" value="" />
        
        <label for="tags">Privacy:</label>
        <select name="privacy">
            <option value="public">Public</option>
            <option value="private">Private</option>
        </select>
        <label for="file">Choose Video File:</label> <input type="file" name="file" >
        <input name="videoSubmit" type="submit" value="Upload">
    </form>
    

    לא מצליח להבין מדוע?

    תכנות

  • בעיה ב API של youtube
    ASSA ASS

    @yossiz
    @odeddvir
    אוקי, קיבלתי!
    אז התחלתי מחדש עם קוד יותר פשוט (בלי לאחסן את הטוקן במסד נתונים וכו)
    כמופיע במדריך הזה.

    <?php
    // Include api config file
    require_once 'config.php';
    // Include database class
    require_once 'DB.class.php';
    
    // Create an object of database class
    $db = new DB;
    
    // If the form is submitted
    if(isset($_POST['videoSubmit'])){
        // Video info
        $title = $_POST['title'];
        $desc = $_POST['description'];
        $tags = $_POST['tags'];
        $privacy = !empty($_POST['privacy'])?$_POST['privacy']:'public';
        
        // Check whether file field is not empty
        if($_FILES["file"]["name"] != ''){
            // File upload path
            $fileName = str_shuffle('codexworld').'-'.basename($_FILES["file"]["name"]);
            $filePath = "videos/".$fileName;
            
            // Check the file type
            $allowedTypeArr = array("video/mp4", "video/avi", "video/mpeg", "video/mpg", "video/mov", "video/wmv", "video/rm");
            if(in_array($_FILES['file']['type'], $allowedTypeArr)){
                // Upload file to local server
                if(move_uploaded_file($_FILES['file']['tmp_name'], $filePath)){
                    // Insert video data in the database
                    $vdata = array(
                        'title' => $title,
                        'description' => $desc,
                        'tags' => $tags,
                        'privacy' => $privacy,
                        'file_name' => $fileName
                    );
                    $insert = $db->insert($vdata);
                    
                    // Store db row id in the session
                    $_SESSION['uploadedFileId'] = $insert;
                }else{
                    header("Location:".BASE_URL."index.php?err=ue");
                    exit;
                }
            }else{
                header("Location:".BASE_URL."index.php?err=fe");
                exit;
            }
        }else{
            header('Location:'.BASE_URL.'index.php?err=bf');
            exit;
        }
    }
    
    // Get uploaded video data from database
    $videoData = $db->getRow($_SESSION['uploadedFileId']);
    
    // Check if an auth token exists for the required scopes
    $tokenSessionKey = 'token-' . $client->prepareScopes();
    if (isset($_GET['code'])) {
      if (strval($_SESSION['state']) !== strval($_GET['state'])) {
        die('The session state did not match.');
      }
    
      $client->authenticate($_GET['code']);
      $_SESSION[$tokenSessionKey] = $client->getAccessToken();
      header('Location: ' . REDIRECT_URL);
    }
    
    if (isset($_SESSION[$tokenSessionKey])) {
      $client->setAccessToken($_SESSION[$tokenSessionKey]);
    }
    
    // Check to ensure that the access token was successfully acquired.
    if ($client->getAccessToken()) {
      $htmlBody = '';
      try{
        // REPLACE this value with the path to the file you are uploading.
        $videoPath = 'videos/'.$videoData['file_name'];
        
        if(!empty($videoData['youtube_video_id'])){
            // Uploaded video data
            $videoTitle = $videoData['title'];
            $videoDesc = $videoData['description'];
            $videoTags = $videoData['tags'];
            $videoId = $videoData['youtube_video_id'];
        }else{
            // Create a snippet with title, description, tags and category ID
            // Create an asset resource and set its snippet metadata and type.
            // This example sets the video's title, description, keyword tags, and
            // video category.
            $snippet = new Google_Service_YouTube_VideoSnippet();
            $snippet->setTitle($videoData['title']);
            $snippet->setDescription($videoData['description']);
            $snippet->setTags(explode(",", $videoData['tags']));
        
            // Numeric video category. See
            // https://developers.google.com/youtube/v3/docs/videoCategories/list
            $snippet->setCategoryId("22");
        
            // Set the video's status to "public". Valid statuses are "public",
            // "private" and "unlisted".
            $status = new Google_Service_YouTube_VideoStatus();
            $status->privacyStatus = $videoData['privacy'];
        
            // Associate the snippet and status objects with a new video resource.
            $video = new Google_Service_YouTube_Video();
            $video->setSnippet($snippet);
            $video->setStatus($status);
        
            // Specify the size of each chunk of data, in bytes. Set a higher value for
            // reliable connection as fewer chunks lead to faster uploads. Set a lower
            // value for better recovery on less reliable connections.
            $chunkSizeBytes = 1 * 1024 * 1024;
        
            // Setting the defer flag to true tells the client to return a request which can be called
            // with ->execute(); instead of making the API call immediately.
            $client->setDefer(true);
        
            // Create a request for the API's videos.insert method to create and upload the video.
            $insertRequest = $youtube->videos->insert("status,snippet", $video);
        
            // Create a MediaFileUpload object for resumable uploads.
            $media = new Google_Http_MediaFileUpload(
                $client,
                $insertRequest,
                'video/*',
                null,
                true,
                $chunkSizeBytes
            );
            $media->setFileSize(filesize($videoPath));
        
        
            // Read the media file and upload it chunk by chunk.
            $status = false;
            $handle = fopen($videoPath, "rb");
            while (!$status && !feof($handle)) {
              $chunk = fread($handle, $chunkSizeBytes);
              $status = $media->nextChunk($chunk);
            }
            fclose($handle);
        
            // If you want to make other calls after the file upload, set setDefer back to false
            $client->setDefer(false);
            
            // Update youtube video id to database
            $db->update($videoData['id'], $status['id']);
            
            // Delete video file from local server
            @unlink("videos/".$videoData['file_name']);
            
            // uploaded video data
            $videoTitle = "";
        }
        
        // uploaded video embed html
        $youtubeURL = 'https://youtu.be/'.$videoId
        
        
        .'</li>';
        $htmlBody .= '<li><b>Description: </b>'.$videoDesc.'</li>';
        $htmlBody .= '<li><b>Tags: </b>'.$videoTags.'</li></ul>';
        $htmlBody .= '<a href="logout.php">Logout</a>';
    
      } catch (Google_Service_Exception $e) {
        $htmlBody .= sprintf('<p>A service error occurred: <code>%s</code></p>',
            htmlspecialchars($e->getMessage()));
      } catch (Google_Exception $e) {
        $htmlBody .= sprintf('<p>An client error occurred: <code>%s</code></p>',
            htmlspecialchars($e->getMessage()));
        $htmlBody .= 'Please reset session <a href="logout.php">Logout</a>';
      }
    
      $_SESSION[$tokenSessionKey] = $client->getAccessToken();
    } elseif (OAUTH_CLIENT_ID == '') {
      $htmlBody = <<<END
      <h3>Client Credentials Required</h3>
      <p>
        You need to set <code>\$oauthClientID</code> and
        <code>\$oauthClientSecret</code> before proceeding.
      <p>
    END;
    } else {
      // If the user hasn't authorized the app, initiate the OAuth flow
      $state = mt_rand();
      $client->setState($state);
      $_SESSION['state'] = $state;
    
      $authUrl = $client->createAuthUrl();
      $htmlBody = <<<END
      <h3>Authorization Required</h3>
      <p>You need to <a href="$authUrl">authorize access</a> before proceeding.<p>
    END;
    }
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
    <title>Upload Video to YouTube using PHP by CodexWorld</title>
    </head>
    <body>
     <div class="uplink"><a href
      
      
      echo $htmlBody; ?>
     </div>
    </body>
    </html>
    

    אני מקבל שגיאה : Notice: Undefined index: uploadedFileI
    כלומר זה:

    // Get uploaded video data from database
    $videoData = $db->getRow($_SESSION['uploadedFileId']);
    
    

    לא מבין מה עשיתי לא נכון...

    תכנות

  • בעיה ב API של youtube
    ASSA ASS

    @yossiz
    קודם כל תודה על המוסר 🙂
    אז אכן עשיתי כדבריך, לא כ"כ הצלחתי להבין בבירור מה הבעיה, אבל כנראה השיטה שבעל המדריך השתמש לא נתמכת או משהוא כזה...
    בכל אופן ישבתי על זה 6 שעות, וזה בערך מה שהבנתי.

    אשמח אם מישהו מהזקנים החכמים יחכימו את העלם צעיר שכבר יושב על זה חודש...
    איזה מדריך PHP נורמאלי יש בעניין. (חוץ מהמדריכים המעצבנים של יוטיוב).
    עברתי על עשרות מדריכים כל אחד והבאג שלו..
    ממש אודה מאוד למי שיוכל לעזור בעניין.

    תודה רבה..

    תכנות

  • בעיה ב API של youtube
    ASSA ASS

    אני מעוניין לפתח תוכנה שמעלה אוטומטית וידאו ליוטיוב, (כבר פיתחתי אחת דומה שמעלה לימות משיח), הקוד שלי כתוב כמו במדריך הזה: https://artisansweb.net/use-youtube-api-upload-video-youtube-channel/
    שבעצם יוצר טוקן שלא פג...
    משום מה הקוד לא מעלה לי סרטונים ליוטיוב, פשוט לא קורה כלום בטופס של העלאה. (כמופיע

    של ההדרכה הנ"ל).
    להלן הקובץ של הקוד שמעלה את הסרטון (הקריאה ל config.php זה בעצם לאחר שהקובץ config.php מקבל את הטוקן שמאוחסן במסד נתונים).

    <?php
    require_once 'config.php';
      
    if (isset($_POST['submit'])) {
        $arr_data = array(
            'title' => $_POST['title'],
            'summary' => $_POST['summary'],
            'video_path' => $_FILES['file']['tmp_name'],
        );
        upload_video_on_youtube($arr_data);
    }
      
    function upload_video_on_youtube($arr_data) {
      
        $client = new Google_Client();
      
        $db = new DB();
      
        $arr_token = (array) $db->get_access_token();
        $accessToken = array(
            'access_token' => $arr_token['access_token'],
            'expires_in' => $arr_token['expires_in'],
        );
      
        $client->setAccessToken($accessToken);
      
        $service = new Google_Service_YouTube($client);
      
        $video = new Google_Service_YouTube_Video();
      
        $videoSnippet = new Google_Service_YouTube_VideoSnippet();
        $videoSnippet->setDescription($arr_data['summary']);
        $videoSnippet->setTitle($arr_data['title']);
        $video->setSnippet($videoSnippet);
      
        $videoStatus = new Google_Service_YouTube_VideoStatus();
        $videoStatus->setPrivacyStatus('public');
        $video->setStatus($videoStatus);
      
        try {
            $response = $service->videos->insert(
                'snippet,status',
                $video,
                array(
                    'data' => file_get_contents($arr_data['video_path']),
                    'mimeType' => 'video/*',
                    'uploadType' => 'multipart'
                )
            );
            echo "Video uploaded successfully. Video ID is ". $response->id;
        } catch(Exception $e) {
            if( 401 == $e->getCode() ) {
                $refresh_token = $db->get_refersh_token();
      
                $client = new GuzzleHttp\Client(['base_uri' => 'https://accounts.google.com']);
      
                $response = $client->request('POST', '/o/oauth2/token', [
                    'form_params' => [
                        "grant_type" => "refresh_token",
                        "refresh_token" => $refresh_token,
                        "client_id" => GOOGLE_CLIENT_ID,
                        "client_secret" => GOOGLE_CLIENT_SECRET,
                    ],
                ]);
      
                $data = (array) json_decode($response->getBody());
                $data['refresh_token'] = $refresh_token;
      
                $db->update_access_token(json_encode($data));
      
                upload_video_on_youtube($arr_data);
            } else {
                //echo $e->getMessage(); //print the error just in case your video is not uploaded.
            }
        }
    }
    ?>
    
    <form method="post" enctype="multipart/form-data">
        <p><input type="text" name="title" placeholder="Enter Video Title" /></p>
        <p><textarea name="summary" cols="30" rows="10" placeholder="Video description"></textarea></p>
        <p><input type="file" name="file" /></p>
        <input type="submit" name="submit" value="Submit" />
    </form>
    
    

    תודה רבה.

    תכנות

  • שגיאת Login.php כבר בשימוש
    ASSA ASS

    שלום לכל החברים.
    אז ב"ה סיימתי את הפרוייקט הזה, תודה לכולם על העזרה והייעוץ!

    והנה הבעיה האחרונה 🙂
    יש לי קובץ PHP שמבצע Login לשרת של ימות, ועוד הרבה קבצים שכולם מבצעים אליו קריאה באמצעות:

    <?php
    include 'C:\wamp64\www\my_php/Login.php';
    ?>
    

    הבעיה ששתי קבצים פועלים בו זמנית אני מקבל שגיאה ש Login.php כבר בשימוש, כיצד אפשר לטפל בזה?

    חשבתי אולי על קוד שיפעיל אותם אחד אחד, לא כ"כ יודע איך לעשות את זה, או שיש פתרון אחר.

    תודה רבה.

    תכנות
  • 1
  • 2
  • 5
  • 6
  • 7
  • 8
  • 9
  • 7 / 9
  • התחברות

  • אין לך חשבון עדיין? הרשמה

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