דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. רשתות
  4. בקשת מידע | API של פקע"ר

בקשת מידע | API של פקע"ר

מתוזמן נעוץ נעול הועבר רשתות
42 פוסטים 4 כותבים 2.4k צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י יהודי זה הכי

    @יוסי-רחמים למה לא יעבוד בנטפרי ומי פיתח את זה?

    בניתי את זה אבל אין לי מושג אם זה יעבוד וזה גם בדיליי

    י מנותק
    י מנותק
    יוסי רחמים
    כתב נערך לאחרונה על ידי
    #27

    @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

    למה לא יעבוד בנטפרי

    כמו שאמרתי.לא מאשרים PHP שהם לא יודעים מה מכיל.

    @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

    מי פיתח את זה

    אני

    י תגובה 1 תגובה אחרונה
    0
    • י יוסי רחמים

      @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

      למה לא יעבוד בנטפרי

      כמו שאמרתי.לא מאשרים PHP שהם לא יודעים מה מכיל.

      @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

      מי פיתח את זה

      אני

      י מנותק
      י מנותק
      יהודי זה הכי
      כתב נערך לאחרונה על ידי
      #28

      @יוסי-רחמים אגיד להם מה מכיל
      יש מצב לקרוא את זה מהשרת שלך?

      י תגובה 1 תגובה אחרונה
      0
      • י יהודי זה הכי

        @יוסי-רחמים אגיד להם מה מכיל
        יש מצב לקרוא את זה מהשרת שלך?

        י מנותק
        י מנותק
        יוסי רחמים
        כתב נערך לאחרונה על ידי
        #29

        @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

        אגיד להם מה מכיל

        זה לא עוזר.הם לא מאמינים

        @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

        יש מצב לקרוא את זה מהשרת שלך

        רק אם אני יביא לך.

        י תגובה 1 תגובה אחרונה
        0
        • י יוסי רחמים

          @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

          אגיד להם מה מכיל

          זה לא עוזר.הם לא מאמינים

          @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

          יש מצב לקרוא את זה מהשרת שלך

          רק אם אני יביא לך.

          י מנותק
          י מנותק
          יהודי זה הכי
          כתב נערך לאחרונה על ידי
          #30

          @יוסי-רחמים זה מה שאני רוצה

          י תגובה 1 תגובה אחרונה
          0
          • י יהודי זה הכי

            @יוסי-רחמים זה מה שאני רוצה

            י מנותק
            י מנותק
            יוסי רחמים
            כתב נערך לאחרונה על ידי
            #31

            @יהודי-זה-הכי

            <?php
            // =================================================================
            //      API לקבלת התראות פיקוד העורף - גרסת cURL משופרת
            // =================================================================
            
            // קובעים את אזור הזמן לישראל
            date_default_timezone_set('Asia/Jerusalem');
            
            // ============== CORS Headers ==============
            header("Access-Control-Allow-Origin: *");
            header("Content-Type: application/json; charset=utf-8");
            header("Access-Control-Allow-Methods: GET");
            header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
            
            // כתובת ה-API של פיקוד העורף
            $apiUrl = 'https://www.oref.org.il/WarningMessages/alert/alerts.json';
            
            // 1. אתחול cURL
            $ch = curl_init();
            
            // 2. הגדרת האפשרויות של cURL
            // הגדרת הכתובת לביצוע הבקשה
            curl_setopt($ch, CURLOPT_URL, $apiUrl);
            
            // החזרת התוצאה כמחרוזת במקום להדפיס אותה ישירות
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            
            // הגדרת Headers כדי לדמות דפדפן אמיתי
            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                'Referer: https://www.oref.org.il/',
                'X-Requested-With: XMLHttpRequest',
                'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
            ]);
            
            // הגדרת זמן קצוב (timeout) של 10 שניות לחיבור
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
            
            // עקיבת אחר הפניות מחדש (redirects) אם יש
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            
            // אימות תעודת SSL של השרת (חשוב לאבטחה)
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
            
            // 3. ביצוע הבקשה
            $rawResponse = curl_exec($ch);
            
            // יצירת מערך שיכיל את התגובה הסופית
            $response = [];
            
            // 4. בדיקת שגיאות
            if (curl_errno($ch)) {
                // אם הייתה שגיאת cURL (למשל, אין תקשורת, timeout)
                http_response_code(500);
                $response = [
                    'status' => 'error',
                    'message' => 'Failed to connect to Oref server. cURL Error: ' . curl_error($ch),
                    'timestamp' => date('c')
                ];
            } else {
                // אם הבקשה הצליחה
                $alertsData = json_decode($rawResponse, true);
            
                if (empty($alertsData) || !isset($alertsData['data']) || empty($alertsData['data'])) {
                    $response = [
                        'status' => 'success',
                        'alerts_active' => false,
                        'data' => null,
                        'message' => 'No active alerts.',
                        'timestamp' => date('c')
                    ];
                } else {
                    $response = [
                        'status' => 'success',
                        'alerts_active' => true,
                        'data' => [
                            'id' => $alertsData['id'],
                            'title' => $alertsData['title'],
                            'locations' => $alertsData['data']
                        ],
                        'timestamp' => date('c')
                    ];
                }
            }
            
            // 5. סגירת cURL
            curl_close($ch);
            
            // הדפסת התגובה בפורמט JSON
            echo json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
            
            ?>
            
            י תגובה 1 תגובה אחרונה
            0
            • י יוסי רחמים

              @יהודי-זה-הכי

              <?php
              // =================================================================
              //      API לקבלת התראות פיקוד העורף - גרסת cURL משופרת
              // =================================================================
              
              // קובעים את אזור הזמן לישראל
              date_default_timezone_set('Asia/Jerusalem');
              
              // ============== CORS Headers ==============
              header("Access-Control-Allow-Origin: *");
              header("Content-Type: application/json; charset=utf-8");
              header("Access-Control-Allow-Methods: GET");
              header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
              
              // כתובת ה-API של פיקוד העורף
              $apiUrl = 'https://www.oref.org.il/WarningMessages/alert/alerts.json';
              
              // 1. אתחול cURL
              $ch = curl_init();
              
              // 2. הגדרת האפשרויות של cURL
              // הגדרת הכתובת לביצוע הבקשה
              curl_setopt($ch, CURLOPT_URL, $apiUrl);
              
              // החזרת התוצאה כמחרוזת במקום להדפיס אותה ישירות
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              
              // הגדרת Headers כדי לדמות דפדפן אמיתי
              curl_setopt($ch, CURLOPT_HTTPHEADER, [
                  'Referer: https://www.oref.org.il/',
                  'X-Requested-With: XMLHttpRequest',
                  'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
              ]);
              
              // הגדרת זמן קצוב (timeout) של 10 שניות לחיבור
              curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
              curl_setopt($ch, CURLOPT_TIMEOUT, 10);
              
              // עקיבת אחר הפניות מחדש (redirects) אם יש
              curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
              
              // אימות תעודת SSL של השרת (חשוב לאבטחה)
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
              
              // 3. ביצוע הבקשה
              $rawResponse = curl_exec($ch);
              
              // יצירת מערך שיכיל את התגובה הסופית
              $response = [];
              
              // 4. בדיקת שגיאות
              if (curl_errno($ch)) {
                  // אם הייתה שגיאת cURL (למשל, אין תקשורת, timeout)
                  http_response_code(500);
                  $response = [
                      'status' => 'error',
                      'message' => 'Failed to connect to Oref server. cURL Error: ' . curl_error($ch),
                      'timestamp' => date('c')
                  ];
              } else {
                  // אם הבקשה הצליחה
                  $alertsData = json_decode($rawResponse, true);
              
                  if (empty($alertsData) || !isset($alertsData['data']) || empty($alertsData['data'])) {
                      $response = [
                          'status' => 'success',
                          'alerts_active' => false,
                          'data' => null,
                          'message' => 'No active alerts.',
                          'timestamp' => date('c')
                      ];
                  } else {
                      $response = [
                          'status' => 'success',
                          'alerts_active' => true,
                          'data' => [
                              'id' => $alertsData['id'],
                              'title' => $alertsData['title'],
                              'locations' => $alertsData['data']
                          ],
                          'timestamp' => date('c')
                      ];
                  }
              }
              
              // 5. סגירת cURL
              curl_close($ch);
              
              // הדפסת התגובה בפורמט JSON
              echo json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
              
              ?>
              
              י מנותק
              י מנותק
              יהודי זה הכי
              כתב נערך לאחרונה על ידי
              #32

              @יוסי-רחמים אני רוצה לשאוב את מה שכבר מתקבל אצלך כי אין לי גישה לAPI של פקע"ר כי השרת שלי לא בארץ
              ואגב הוא בודק גם כשהאתר סגור?

              י תגובה 1 תגובה אחרונה
              0
              • י יהודי זה הכי

                @יוסי-רחמים אני רוצה לשאוב את מה שכבר מתקבל אצלך כי אין לי גישה לAPI של פקע"ר כי השרת שלי לא בארץ
                ואגב הוא בודק גם כשהאתר סגור?

                י מנותק
                י מנותק
                יוסי רחמים
                כתב נערך לאחרונה על ידי
                #33

                @יהודי-זה-הכי

                @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

                כי השרת שלי לא בארץ

                זה לא משנה.

                ואגב הוא בודק גם כשהאתר סגור?

                לא(איך הוא יבדוק?)

                י תגובה 1 תגובה אחרונה
                0
                • י יוסי רחמים

                  @יהודי-זה-הכי

                  @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

                  כי השרת שלי לא בארץ

                  זה לא משנה.

                  ואגב הוא בודק גם כשהאתר סגור?

                  לא(איך הוא יבדוק?)

                  י מנותק
                  י מנותק
                  יהודי זה הכי
                  כתב נערך לאחרונה על ידי
                  #34

                  @יוסי-רחמים לא יודע?

                  י תגובה 1 תגובה אחרונה
                  0
                  • י יהודי זה הכי

                    @יוסי-רחמים לא יודע?

                    י מנותק
                    י מנותק
                    יוסי רחמים
                    כתב נערך לאחרונה על ידי
                    #35

                    @יהודי-זה-הכי לגבי אם הוא בודק אם האתר סגור?
                    אם זה פועל ברקע אז כן אם לא אז לא

                    תגובה 1 תגובה אחרונה
                    0
                    • י מנותק
                      י מנותק
                      יהודי זה הכי
                      כתב נערך לאחרונה על ידי יהודי זה הכי
                      #36

                      אני עשיתי את זה וזה לא מצליח להתחבר לשרת ואני רוצה לדעת איך אפשר כן להתחבר

                      index.php

                      <!DOCTYPE html>
                      <html lang="he" dir="rtl">
                      <head>
                      <meta charset="UTF-8" />
                      <meta name="viewport" content="width=device-width, initial-scale=1" />
                      <title>🎗️האלפון של הזירה הית🎗️</title>
                      <link rel="icon" href="https://lh3.googleusercontent.com/a/ACg8ocLCPoxjLoSems6ya7IDqC2PPZ8pbKjT6MCpYDvD9_yU2-tcV6JQ=s288-c-no" type="image/png" />
                      
                      <meta name="description" content="האלפון של הזירה הית">
                      <meta name="keywords" content="תגיותב">
                      
                      <style>
                        body {
                          font-family: Arial, sans-serif;
                          text-align: center;
                          background-image: url("https://i.ibb.co/Q3fVHtsZ/unnamed.png");
                          background-size: cover;
                          background-position: center;
                          background-repeat: no-repeat;
                          padding: 80px 20px 100px 20px;
                          position: relative;
                          direction: rtl;
                        }
                        .container {
                          background-color: rgba(255, 255, 255, 0.8);
                          padding: 20px;
                          border-radius: 10px;
                          box-shadow: 0 0 10px rgba(0,0,0,0.1);
                          display: inline-block;
                          text-align: right;
                          margin: 10px auto;
                          max-width: 600px;
                          width: 100%;
                        }
                        .input-group {
                          display: flex;
                          align-items: center;
                          margin: 10px 0;
                        }
                        .input-group input {
                          flex: 1;
                          padding: 10px;
                          border: 1px solid #ccc;
                          border-radius: 5px 0 0 5px;
                          font-size: 16px;
                          direction: rtl;
                        }
                        .input-group span {
                          padding: 10px;
                          background-color: #0073e6;
                          color: white;
                          border-radius: 0 5px 5px 0;
                          cursor: default;
                        }
                        button {
                          padding: 10px 20px;
                          border: none;
                          background-color: #0073e6;
                          color: white;
                          border-radius: 5px;
                          cursor: pointer;
                          margin: 5px 0;
                          font-size: 16px;
                        }
                        button:hover {
                          background-color: #005bb5;
                        }
                        .footer {
                          margin-top: 30px;
                          padding: 10px;
                          background-color: rgba(221, 221, 221, 0.8);
                          border-radius: 5px;
                          font-size: 14px;
                          max-width: 600px;
                          margin-left: auto;
                          margin-right: auto;
                        }
                        #results {
                          display: flex;
                          flex-wrap: wrap;
                          justify-content: center;
                          margin-top: 20px;
                          gap: 15px;
                        }
                        .result-item {
                          background-color: rgba(255, 255, 255, 0.8);
                          border-radius: 8px;
                          border: 1px solid #ddd;
                          width: 250px;
                          min-height: 160px;
                          padding: 15px;
                          box-sizing: border-box;
                          text-align: right;
                          display: flex;
                          flex-direction: column;
                          justify-content: space-between;
                          position: relative;
                        }
                        .result-item strong {
                          font-size: 16px;
                        }
                        .details-btn {
                          margin-top: 10px;
                          align-self: flex-start;
                          background-color: #28a745;
                        }
                        .details-btn:hover {
                          background-color: #1e7e34;
                        }
                        /* חלון קופץ לפרטים */
                        #detailsModal {
                          display: none;
                          position: fixed;
                          z-index: 1500;
                          left: 0; top: 0;
                          width: 100%; height: 100%;
                          background-color: rgba(0,0,0,0.5);
                          overflow: auto;
                          justify-content: center;
                          align-items: center;
                          display: flex;
                        }
                        #detailsModal.hidden {
                          display: none !important;
                        }
                        #detailsModalContent {
                          background-color: white;
                          padding: 20px 30px;
                          border-radius: 10px;
                          max-width: 400px;
                          width: 90%;
                          text-align: right;
                          font-size: 18px;
                          position: relative;
                          box-sizing: border-box;
                        }
                        #closeModalBtn {
                          position: absolute;
                          top: 10px;
                          left: 10px;
                          background-color: #dc3545;
                          border: none;
                          color: white;
                          font-size: 18px;
                          padding: 5px 10px;
                          border-radius: 5px;
                          cursor: pointer;
                        }
                        #closeModalBtn:hover {
                          background-color: #a71d2a;
                        }
                        #showMapBtn {
                          margin-top: 15px;
                          background-color: #0073e6;
                          color: white;
                          padding: 10px 15px;
                          border: none;
                          border-radius: 5px;
                          cursor: pointer;
                          font-size: 16px;
                        }
                        #showMapBtn:hover {
                          background-color: #005bb5;
                        }
                        /* חלון קופץ למפה */
                        #mapModal {
                          display: none;
                          position: fixed;
                          z-index: 1600;
                          left: 0; top: 0;
                          width: 100vw; height: 100vh;
                          background-color: rgba(0,0,0,0.7);
                          justify-content: center;
                          align-items: center;
                          display: flex;
                        }
                        #mapModal.hidden {
                          display: none !important;
                        }
                        #mapContent {
                          position: relative;
                          background: white;
                          border-radius: 10px;
                          width: 90%;
                          max-width: 600px;
                          height: 400px;
                          box-sizing: border-box;
                          padding-top: 35px;
                        }
                        #closeMapBtn {
                          position: absolute;
                          top: 8px; right: 8px;
                          background: #dc3545;
                          border: none;
                          color: white;
                          font-size: 16px;
                          padding: 6px 10px;
                          border-radius: 5px;
                          cursor: pointer;
                          z-index: 10;
                        }
                        #closeMapBtn:hover {
                          background: #b02a37;
                        }
                        #mapIframe {
                          width: 100%;
                          height: 100%;
                          border: none;
                          border-radius: 0 0 10px 10px;
                          display: block;
                        }
                        /* משחק נחש */
                        #snakeGameContainer {
                          display: none;
                          position: fixed;
                          bottom: 10px;
                          left: 10px;
                          background-color: rgba(255,255,255,0.8);
                          padding: 10px;
                          border-radius: 10px;
                          box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
                          z-index: 1000;
                        }
                      
                        /* pagination controls */
                        #paginationControls {
                          text-align: center;
                          margin-top: 10px;
                          max-width: 600px;
                          margin-left: auto;
                          margin-right: auto;
                        }
                        #paginationControls button {
                          margin: 0 10px;
                          padding: 8px 16px;
                          font-size: 14px;
                        }
                      
                        /* results per page selector */
                        #resultsPerPageContainer {
                          max-width: 600px;
                          margin: 10px auto 0 auto;
                          text-align: right;
                        }
                      
                        /* הוספת תיבת התראות צבע אדום במקום הטלפון */
                        .phone-box {
                          position: fixed;
                          top: 120px;
                          right: 15px;
                          width: 260px;
                          height: 480px;
                          background: #222;
                          border-radius: 30px;
                          border: 6px solid #000;
                          box-shadow: 0 0 20px rgba(0,0,0,0.5);
                          z-index: 9999;
                          overflow: hidden;
                          display: flex;
                          flex-direction: column;
                        }
                        .phone-box .screen {
                          background: #fff;
                          height: 100%;
                          display: flex;
                          flex-direction: column;
                          align-items: stretch;
                          justify-content: flex-start;
                          direction: rtl;
                          overflow: hidden;
                        }
                        #alert-box {
                          flex: 1;
                          overflow-y: auto;
                          padding: 10px;
                        }
                        #alert-box .message {
                          padding: 10px;
                          font-size: 14px;
                          text-align: right;
                          border-bottom: 1px solid #ddd;
                          background-color: #fff;
                          color: #c0392b;
                        }
                        .phone-box .controls {
                          background: #111;
                          padding: 10px;
                          text-align: center;
                          user-select: none;
                        }
                        .phone-box .controls button {
                          margin: 2px;
                          padding: 5px 10px;
                          font-size: 14px;
                          cursor: pointer;
                          border-radius: 5px;
                          border: none;
                          background-color: #0073e6;
                          color: white;
                        }
                        .phone-box .controls button:hover {
                          background-color: #005bb5;
                        }
                      </style>
                      </head>
                      
                      <body>
                      
                      <div id="bthn" lang="he"></div>
                      <script>
                       (function () {
                         var script = document.createElement("script");
                         script.type = "text/javascript";
                         script.src = "https://bringthemhomenow.net/1.3.0/hostages-ticker.js";
                         script.setAttribute(
                           "integrity",
                           "sha384-MmP7bD5QEJWvJccg9c0lDnn3LjjqQWDiRCxRV+NU8hij15icuwb29Jfw1TqJwuSv"
                         );
                         script.setAttribute("crossorigin", "anonymous");
                         document.getElementsByTagName("head")[0].appendChild(script);
                       })();
                      </script>
                      
                      <h1>📖 🎗️האלפון של הזירה הית 🎗️📖</h1>
                      <h1>שימו לב האלפון בשלבי בנייה ופיתוח ייתכנו תקלות</h1>
                      
                      <!-- תיבת ההתראות בצבע אדום - הטלפון בצד ימין -->
                      <div class="phone-box" role="region" aria-label="התראות צבע אדום">
                        <div class="screen">
                          <div id="alert-box" aria-live="polite" aria-relevant="additions">
                            <div class="message">📞 האלפון מתעדכן מדי יום!</div>
                          </div>
                          <div class="controls" role="group" aria-label="כפתורי עדכון התראות">
                            <button onclick="fetchAlerts()" aria-label="עדכן התראות צבע אדום">🔄 עדכן</button>
                            <button onclick="sendTestAlert()" aria-label="שלח התראת בדיקה">🧪 בדיקה</button>
                          </div>
                        </div>
                      </div>
                      
                      <!-- מערכת חיפוש -->
                      <div class="container">
                          <h2>🔍 מערכת חיפוש</h2>
                          <div class="input-group">
                              <span>🔍</span>
                              <input
                                  type="text"
                                  id="searchInput"
                                  placeholder="הקלד שם, כתובת או מספר טלפון"
                                  onkeydown="if(event.key === 'Enter') searchData()"
                              />
                          </div>
                          <button onclick="searchData()">חפש</button>
                      
                          <!-- בחירת מספר תוצאות בדף -->
                          <div id="resultsPerPageContainer" style="display:none;">
                            <label for="resultsPerPage">הצג תוצאות בכל דף: </label>
                            <select id="resultsPerPage" onchange="renderResults()">
                              <option value="5">5</option>
                              <option value="10" selected>10</option>
                              <option value="20">20</option>
                            </select>
                          </div>
                      
                          <div id="results"></div>
                      <div id="paginationControls" style="display:none;">
                        <button onclick="changePage(1)" id="nextBtn" disabled>הבא ➡</button>
                        <span id="pageInfo" style="margin: 0 10px;"></span>
                        <button onclick="changePage(-1)" id="prevBtn" disabled>⬅ קודם</button>
                      </div>
                      </div>
                      
                      <!-- חלון קופץ לפרטים -->
                      <div id="detailsModal" class="hidden" aria-modal="true" role="dialog" aria-labelledby="detailsTitle">
                          <div id="detailsModalContent">
                              <button id="closeModalBtn" onclick="closeDetails()" aria-label="סגור חלון">✖</button>
                              <div id="detailsContent" dir="rtl"></div>
                              <button id="showMapBtn" onclick="openMap()" style="display:none;">הצג מיקום במפה</button>
                          </div>
                      </div>
                      
                      <!-- חלון קופץ למפה -->
                      <div id="mapModal" class="hidden" aria-modal="true" role="dialog" aria-labelledby="mapTitle" aria-hidden="true">
                          <div id="mapContent">
                              <button id="closeMapBtn" onclick="closeMap()" aria-label="סגור מפה">✖</button>
                              <iframe id="mapIframe" src="" allowfullscreen loading="lazy" title="מפת מיקום"></iframe>
                          </div>
                      </div>
                      
                      <!-- כפתור למשחק נחש -->
                      <button onclick="openSnakeGame()" style="position: fixed; bottom: 80px; left: 10px;">
                          🎮 שחק נחש
                      </button>
                      <div
                          id="snakeGameContainer"
                          style="display: none; position: fixed; bottom: 10px; left: 10px; background-color: rgba(255,255,255,0.8); padding: 10px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); z-index: 1000;">
                          <button onclick="closeSnakeGame()" style="float: left;">❌ סגור</button>
                          <h3>🐍 משחק נחש</h3>
                          <canvas
                              id="snakeCanvas"
                              width="300"
                              height="300"
                              style="background-color: #f4f4f4">
                          </canvas>
                      </div>
                      
                      <!-- תחתית -->
                      <div class="footer">
                          <p>📢 הפיתוח נעשה בחסות <strong>הזירה הית</strong> - המרחב החם של הציבור הי</p>
                          <p>☎️ טלפון: 02-313-60-90</p>
                          <p>🛠️ פיתוח ע"י <strong>אבי ש.</strong> אל תדאגו נעזרתי בבינה מלאכותית 😋😋😋 אני לא כזה מומחה</p>
                          <p>💬 לכניסה לצ'אט: <a href="https://chat.google.com/room/AAQApcvo9RM?cls=7" target="_blank" rel="noopener noreferrer">לחץ כאן</a></p>
                          <p>📧 להצטרפות שלח מייל ל: <a href="mailto:avshainin@gmail.com">avshainin@gmail.com</a></p>
                          <p>© 2025 הזירה הית</p>
                      </div>
                      
                      <script>
                      let currentResults = [];
                      let currentPage = 1;
                      let resultsPerPage = 10;
                      
                      function searchData() {
                          let input = document.getElementById("searchInput").value.trim();
                          const resultsDiv = document.getElementById("results");
                          const paginationControls = document.getElementById("paginationControls");
                          const resultsPerPageContainer = document.getElementById("resultsPerPageContainer");
                      
                          resultsDiv.innerHTML = "🔍 טוען...";
                          paginationControls.style.display = "none";
                          resultsPerPageContainer.style.display = "none";
                      
                          fetch("get.php")
                              .then(res => res.json())
                              .then(database => {
                                  let results = database.filter(item =>
                                      item["שם"].includes(input) ||
                                      item["כתובת"].includes(input) ||
                                      item["פלאפון"].includes(input)
                                  );
                      
                                  results.sort((a, b) => a["שם"].localeCompare(b["שם"], "he", { sensitivity: "base" }));
                      
                                  currentResults = results;
                                  currentPage = 1;
                      
                                  if(results.length === 0) {
                                      resultsDiv.innerHTML = "❌ לא נמצאו תוצאות";
                                      paginationControls.style.display = "none";
                                      resultsPerPageContainer.style.display = "none";
                                      return;
                                  }
                      
                                  paginationControls.style.display = "block";
                                  resultsPerPageContainer.style.display = "block";
                      
                                  renderResults();
                              })
                              .catch(() => {
                                  resultsDiv.innerHTML = "❌ קרתה שגיאה בטעינת הנתונים";
                                  paginationControls.style.display = "none";
                                  resultsPerPageContainer.style.display = "none";
                              });
                      }
                      
                      function renderResults() {
                          const resultsDiv = document.getElementById("results");
                          resultsPerPage = parseInt(document.getElementById("resultsPerPage").value);
                      
                          const startIndex = (currentPage -1) * resultsPerPage;
                          const endIndex = startIndex + resultsPerPage;
                          const pageResults = currentResults.slice(startIndex, endIndex);
                      
                          if(pageResults.length === 0 && currentPage > 1) {
                              currentPage--;
                              renderResults();
                              return;
                          }
                      
                          resultsDiv.innerHTML = pageResults.map((item, index) => `
                              <div class="result-item" tabindex="0">
                                  <div><strong>שם:</strong> ${item["שם"]}</div>
                                  <div><strong>כתובת:</strong> ${item["כתובת"]}</div>
                                  <div><strong>פלאפון:</strong> ${item["פלאפון"]}</div>
                                  <div><strong>טלפון בבית:</strong> ${item["טלפון בבית"] || "❌"}</div>
                                  <div><strong>תא קולי:</strong> ${item["תא קולי"] || "❌"}</div>
                              </div>
                          `).join("");
                      
                          // עדכון כפתורי ניווט
                          document.getElementById("pageInfo").textContent = `עמוד ${currentPage} מתוך ${Math.ceil(currentResults.length / resultsPerPage)}`;
                          document.getElementById("nextBtn").disabled = currentPage >= Math.ceil(currentResults.length / resultsPerPage);
                          document.getElementById("prevBtn").disabled = currentPage <= 1;
                      }
                      
                      function changePage(direction) {
                          if(direction === 1 && currentPage < Math.ceil(currentResults.length / resultsPerPage)) {
                              currentPage++;
                          } else if(direction === -1 && currentPage > 1) {
                              currentPage--;
                          }
                          renderResults();
                      }
                      
                      // פונקציות לפרטי איש קשר ומפות (יש למלא בהתאם לצורך שלך)
                      function closeDetails() {
                          document.getElementById("detailsModal").classList.add("hidden");
                      }
                      
                      function openMap() {
                          const modal = document.getElementById("mapModal");
                          const iframe = document.getElementById("mapIframe");
                          // example of google maps embed, צריך להתאים למיקום בפועל
                          iframe.src = "https://maps.google.com/maps?q=32.0804,34.7805&hl=he&z=14&output=embed";
                          modal.classList.remove("hidden");
                      }
                      
                      function closeMap() {
                          document.getElementById("mapModal").classList.add("hidden");
                          document.getElementById("mapIframe").src = "";
                      }
                      
                      // המשחק נחש - פונקציות נפתח וסוגר
                      function openSnakeGame() {
                          document.getElementById("snakeGameContainer").style.display = "block";
                          startSnakeGame();
                      }
                      function closeSnakeGame() {
                          document.getElementById("snakeGameContainer").style.display = "none";
                          stopSnakeGame();
                      }
                      
                      let snakeGameInterval = null;
                      function startSnakeGame() {
                          // כאן לשים את הקוד של משחק הנחש
                      }
                      function stopSnakeGame() {
                          if(snakeGameInterval) {
                              clearInterval(snakeGameInterval);
                              snakeGameInterval = null;
                          }
                      }
                      
                      // --- קוד ההתראות צבע אדום ---
                      
                      const alertBox = document.getElementById("alert-box");
                      
                      async function fetchAlerts() {
                        try {
                          const res = await fetch('https://www.oref.org.il/WarningMessages/alert/alerts.json');
                          if(!res.ok) throw new Error('Network response was not ok');
                          const data = await res.json();
                      
                          // נקרא לפי מפתח התרעות "alerts"
                          const alerts = data["alerts"];
                      
                          if(!alerts || alerts.length === 0) {
                            alertBox.innerHTML = `<div class="message">📞 אין כרגע התראות צבע אדום</div>`;
                            return;
                          }
                      
                          // הצגת כל ההתראות בקופסה, כל הודעה ב-div נפרד
                          alertBox.innerHTML = alerts.map(alert => {
                            // יש גם תאריך התחלה וסיום
                            const start = alert["StartTime"];
                            const end = alert["EndTime"];
                            const region = alert["RegionDesc"] || "";
                            const desc = alert["Message"] || "";
                            // פורמט פשוט
                            return `<div class="message"><strong>🔴 אזור:</strong> ${region}<br><strong>הודעה:</strong> ${desc}<br><small>${start} - ${end}</small></div>`;
                          }).join("");
                        } catch(err) {
                          alertBox.innerHTML = `<div class="message">❌ שגיאה בטעינת ההתראות</div>`;
                          console.error("Error fetching alerts:", err);
                        }
                      }
                      
                      function sendTestAlert() {
                        alertBox.innerHTML = `<div class="message">🧪 זוהי התראת בדיקה - אין התראה אמיתית כרגע</div>`;
                      }
                      
                      // אתחל את ההתראות אוטומטית בהעמסה ועם ריענון כל 2 דקות
                      fetchAlerts();
                      setInterval(fetchAlerts, 3000);
                      
                      </script>
                      
                      </body>
                      </html>
                      
                      
                      <?php
                      $apiUrl = 'https://api.tzevaadom.co.il/notifications';
                      
                      function getAlerts($url) {
                          $ch = curl_init($url);
                          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                          curl_setopt($ch, CURLOPT_TIMEOUT, 10);
                          $json = curl_exec($ch);
                          $error = curl_error($ch);
                          curl_close($ch);
                      
                          if ($json === false || $json === '') {
                              error_log("שגיאה ב-cURL: " . $error);
                              return null;
                          }
                      
                          $data = json_decode($json, true);
                          if ($data === null) {
                              error_log("שגיאה בפענוח JSON");
                          }
                          return $data;
                      }
                      
                      function saveAlerts($alerts) {
                          $file = __DIR__ . '/alerts_history.json';
                      
                          $existing = [];
                          if (file_exists($file)) {
                              $existingJson = file_get_contents($file);
                              $existing = json_decode($existingJson, true);
                              if ($existing === null) $existing = [];
                          }
                      
                          foreach ($alerts as $alert) {
                              $time = $alert['created_at'] ?? '';
                              $location = implode(', ', $alert['data']['locations'] ?? ['מיקום לא ידוע']);
                      
                              $exists = false;
                              foreach ($existing as $ex) {
                                  if ($ex['time'] === $time) {
                                      $exists = true;
                                      break;
                                  }
                              }
                      
                              if (!$exists) {
                                  $existing[] = [
                                      'time' => $time,
                                      'location' => $location,
                                  ];
                              }
                          }
                      
                          file_put_contents($file, json_encode($existing, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
                      }
                      
                      $alerts = getAlerts($apiUrl);
                      if ($alerts) {
                          saveAlerts($alerts);
                          echo "התראות נשמרו בהצלחה.\n";
                      } else {
                          echo "שגיאה בקבלת ההתראות.\n";
                      }
                      
                      

                      fetch_and_save_alerts.php

                      <?php
                      // get_alerts.php
                      header('Content-Type: application/json');
                      if (file_exists('alerts_log.txt')) {
                          $lines = file('alerts_log.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
                          $alerts = [];
                          foreach ($lines as $line) {
                              $parts = explode(" - ", $line, 2);
                              if (count($parts) === 2) {
                                  $alerts[] = ['time' => $parts[0], 'location' => $parts[1]];
                              }
                          }
                          echo json_encode($alerts);
                      } else {
                          echo json_encode([]);
                      }
                      ?>
                      
                      
                      <?php
                      // save_alert.php
                      if ($_SERVER['REQUEST_METHOD'] === 'POST') {
                          $json = file_get_contents('php://input');
                          $data = json_decode($json, true);
                      
                          if ($data && isset($data['time']) && isset($data['location'])) {
                              $entry = $data['time'] . " - " . $data['location'] . "\n";
                              file_put_contents('alerts_log.txt', $entry, FILE_APPEND | LOCK_EX);
                              echo "OK";
                          } else {
                              http_response_code(400);
                              echo "Invalid data";
                          }
                      } else {
                          http_response_code(405);
                          echo "Method not allowed";
                      }
                      ?>
                      
                      
                      י תגובה 1 תגובה אחרונה
                      0
                      • י יהודי זה הכי

                        אני עשיתי את זה וזה לא מצליח להתחבר לשרת ואני רוצה לדעת איך אפשר כן להתחבר

                        index.php

                        <!DOCTYPE html>
                        <html lang="he" dir="rtl">
                        <head>
                        <meta charset="UTF-8" />
                        <meta name="viewport" content="width=device-width, initial-scale=1" />
                        <title>🎗️האלפון של הזירה הית🎗️</title>
                        <link rel="icon" href="https://lh3.googleusercontent.com/a/ACg8ocLCPoxjLoSems6ya7IDqC2PPZ8pbKjT6MCpYDvD9_yU2-tcV6JQ=s288-c-no" type="image/png" />
                        
                        <meta name="description" content="האלפון של הזירה הית">
                        <meta name="keywords" content="תגיותב">
                        
                        <style>
                          body {
                            font-family: Arial, sans-serif;
                            text-align: center;
                            background-image: url("https://i.ibb.co/Q3fVHtsZ/unnamed.png");
                            background-size: cover;
                            background-position: center;
                            background-repeat: no-repeat;
                            padding: 80px 20px 100px 20px;
                            position: relative;
                            direction: rtl;
                          }
                          .container {
                            background-color: rgba(255, 255, 255, 0.8);
                            padding: 20px;
                            border-radius: 10px;
                            box-shadow: 0 0 10px rgba(0,0,0,0.1);
                            display: inline-block;
                            text-align: right;
                            margin: 10px auto;
                            max-width: 600px;
                            width: 100%;
                          }
                          .input-group {
                            display: flex;
                            align-items: center;
                            margin: 10px 0;
                          }
                          .input-group input {
                            flex: 1;
                            padding: 10px;
                            border: 1px solid #ccc;
                            border-radius: 5px 0 0 5px;
                            font-size: 16px;
                            direction: rtl;
                          }
                          .input-group span {
                            padding: 10px;
                            background-color: #0073e6;
                            color: white;
                            border-radius: 0 5px 5px 0;
                            cursor: default;
                          }
                          button {
                            padding: 10px 20px;
                            border: none;
                            background-color: #0073e6;
                            color: white;
                            border-radius: 5px;
                            cursor: pointer;
                            margin: 5px 0;
                            font-size: 16px;
                          }
                          button:hover {
                            background-color: #005bb5;
                          }
                          .footer {
                            margin-top: 30px;
                            padding: 10px;
                            background-color: rgba(221, 221, 221, 0.8);
                            border-radius: 5px;
                            font-size: 14px;
                            max-width: 600px;
                            margin-left: auto;
                            margin-right: auto;
                          }
                          #results {
                            display: flex;
                            flex-wrap: wrap;
                            justify-content: center;
                            margin-top: 20px;
                            gap: 15px;
                          }
                          .result-item {
                            background-color: rgba(255, 255, 255, 0.8);
                            border-radius: 8px;
                            border: 1px solid #ddd;
                            width: 250px;
                            min-height: 160px;
                            padding: 15px;
                            box-sizing: border-box;
                            text-align: right;
                            display: flex;
                            flex-direction: column;
                            justify-content: space-between;
                            position: relative;
                          }
                          .result-item strong {
                            font-size: 16px;
                          }
                          .details-btn {
                            margin-top: 10px;
                            align-self: flex-start;
                            background-color: #28a745;
                          }
                          .details-btn:hover {
                            background-color: #1e7e34;
                          }
                          /* חלון קופץ לפרטים */
                          #detailsModal {
                            display: none;
                            position: fixed;
                            z-index: 1500;
                            left: 0; top: 0;
                            width: 100%; height: 100%;
                            background-color: rgba(0,0,0,0.5);
                            overflow: auto;
                            justify-content: center;
                            align-items: center;
                            display: flex;
                          }
                          #detailsModal.hidden {
                            display: none !important;
                          }
                          #detailsModalContent {
                            background-color: white;
                            padding: 20px 30px;
                            border-radius: 10px;
                            max-width: 400px;
                            width: 90%;
                            text-align: right;
                            font-size: 18px;
                            position: relative;
                            box-sizing: border-box;
                          }
                          #closeModalBtn {
                            position: absolute;
                            top: 10px;
                            left: 10px;
                            background-color: #dc3545;
                            border: none;
                            color: white;
                            font-size: 18px;
                            padding: 5px 10px;
                            border-radius: 5px;
                            cursor: pointer;
                          }
                          #closeModalBtn:hover {
                            background-color: #a71d2a;
                          }
                          #showMapBtn {
                            margin-top: 15px;
                            background-color: #0073e6;
                            color: white;
                            padding: 10px 15px;
                            border: none;
                            border-radius: 5px;
                            cursor: pointer;
                            font-size: 16px;
                          }
                          #showMapBtn:hover {
                            background-color: #005bb5;
                          }
                          /* חלון קופץ למפה */
                          #mapModal {
                            display: none;
                            position: fixed;
                            z-index: 1600;
                            left: 0; top: 0;
                            width: 100vw; height: 100vh;
                            background-color: rgba(0,0,0,0.7);
                            justify-content: center;
                            align-items: center;
                            display: flex;
                          }
                          #mapModal.hidden {
                            display: none !important;
                          }
                          #mapContent {
                            position: relative;
                            background: white;
                            border-radius: 10px;
                            width: 90%;
                            max-width: 600px;
                            height: 400px;
                            box-sizing: border-box;
                            padding-top: 35px;
                          }
                          #closeMapBtn {
                            position: absolute;
                            top: 8px; right: 8px;
                            background: #dc3545;
                            border: none;
                            color: white;
                            font-size: 16px;
                            padding: 6px 10px;
                            border-radius: 5px;
                            cursor: pointer;
                            z-index: 10;
                          }
                          #closeMapBtn:hover {
                            background: #b02a37;
                          }
                          #mapIframe {
                            width: 100%;
                            height: 100%;
                            border: none;
                            border-radius: 0 0 10px 10px;
                            display: block;
                          }
                          /* משחק נחש */
                          #snakeGameContainer {
                            display: none;
                            position: fixed;
                            bottom: 10px;
                            left: 10px;
                            background-color: rgba(255,255,255,0.8);
                            padding: 10px;
                            border-radius: 10px;
                            box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
                            z-index: 1000;
                          }
                        
                          /* pagination controls */
                          #paginationControls {
                            text-align: center;
                            margin-top: 10px;
                            max-width: 600px;
                            margin-left: auto;
                            margin-right: auto;
                          }
                          #paginationControls button {
                            margin: 0 10px;
                            padding: 8px 16px;
                            font-size: 14px;
                          }
                        
                          /* results per page selector */
                          #resultsPerPageContainer {
                            max-width: 600px;
                            margin: 10px auto 0 auto;
                            text-align: right;
                          }
                        
                          /* הוספת תיבת התראות צבע אדום במקום הטלפון */
                          .phone-box {
                            position: fixed;
                            top: 120px;
                            right: 15px;
                            width: 260px;
                            height: 480px;
                            background: #222;
                            border-radius: 30px;
                            border: 6px solid #000;
                            box-shadow: 0 0 20px rgba(0,0,0,0.5);
                            z-index: 9999;
                            overflow: hidden;
                            display: flex;
                            flex-direction: column;
                          }
                          .phone-box .screen {
                            background: #fff;
                            height: 100%;
                            display: flex;
                            flex-direction: column;
                            align-items: stretch;
                            justify-content: flex-start;
                            direction: rtl;
                            overflow: hidden;
                          }
                          #alert-box {
                            flex: 1;
                            overflow-y: auto;
                            padding: 10px;
                          }
                          #alert-box .message {
                            padding: 10px;
                            font-size: 14px;
                            text-align: right;
                            border-bottom: 1px solid #ddd;
                            background-color: #fff;
                            color: #c0392b;
                          }
                          .phone-box .controls {
                            background: #111;
                            padding: 10px;
                            text-align: center;
                            user-select: none;
                          }
                          .phone-box .controls button {
                            margin: 2px;
                            padding: 5px 10px;
                            font-size: 14px;
                            cursor: pointer;
                            border-radius: 5px;
                            border: none;
                            background-color: #0073e6;
                            color: white;
                          }
                          .phone-box .controls button:hover {
                            background-color: #005bb5;
                          }
                        </style>
                        </head>
                        
                        <body>
                        
                        <div id="bthn" lang="he"></div>
                        <script>
                         (function () {
                           var script = document.createElement("script");
                           script.type = "text/javascript";
                           script.src = "https://bringthemhomenow.net/1.3.0/hostages-ticker.js";
                           script.setAttribute(
                             "integrity",
                             "sha384-MmP7bD5QEJWvJccg9c0lDnn3LjjqQWDiRCxRV+NU8hij15icuwb29Jfw1TqJwuSv"
                           );
                           script.setAttribute("crossorigin", "anonymous");
                           document.getElementsByTagName("head")[0].appendChild(script);
                         })();
                        </script>
                        
                        <h1>📖 🎗️האלפון של הזירה הית 🎗️📖</h1>
                        <h1>שימו לב האלפון בשלבי בנייה ופיתוח ייתכנו תקלות</h1>
                        
                        <!-- תיבת ההתראות בצבע אדום - הטלפון בצד ימין -->
                        <div class="phone-box" role="region" aria-label="התראות צבע אדום">
                          <div class="screen">
                            <div id="alert-box" aria-live="polite" aria-relevant="additions">
                              <div class="message">📞 האלפון מתעדכן מדי יום!</div>
                            </div>
                            <div class="controls" role="group" aria-label="כפתורי עדכון התראות">
                              <button onclick="fetchAlerts()" aria-label="עדכן התראות צבע אדום">🔄 עדכן</button>
                              <button onclick="sendTestAlert()" aria-label="שלח התראת בדיקה">🧪 בדיקה</button>
                            </div>
                          </div>
                        </div>
                        
                        <!-- מערכת חיפוש -->
                        <div class="container">
                            <h2>🔍 מערכת חיפוש</h2>
                            <div class="input-group">
                                <span>🔍</span>
                                <input
                                    type="text"
                                    id="searchInput"
                                    placeholder="הקלד שם, כתובת או מספר טלפון"
                                    onkeydown="if(event.key === 'Enter') searchData()"
                                />
                            </div>
                            <button onclick="searchData()">חפש</button>
                        
                            <!-- בחירת מספר תוצאות בדף -->
                            <div id="resultsPerPageContainer" style="display:none;">
                              <label for="resultsPerPage">הצג תוצאות בכל דף: </label>
                              <select id="resultsPerPage" onchange="renderResults()">
                                <option value="5">5</option>
                                <option value="10" selected>10</option>
                                <option value="20">20</option>
                              </select>
                            </div>
                        
                            <div id="results"></div>
                        <div id="paginationControls" style="display:none;">
                          <button onclick="changePage(1)" id="nextBtn" disabled>הבא ➡</button>
                          <span id="pageInfo" style="margin: 0 10px;"></span>
                          <button onclick="changePage(-1)" id="prevBtn" disabled>⬅ קודם</button>
                        </div>
                        </div>
                        
                        <!-- חלון קופץ לפרטים -->
                        <div id="detailsModal" class="hidden" aria-modal="true" role="dialog" aria-labelledby="detailsTitle">
                            <div id="detailsModalContent">
                                <button id="closeModalBtn" onclick="closeDetails()" aria-label="סגור חלון">✖</button>
                                <div id="detailsContent" dir="rtl"></div>
                                <button id="showMapBtn" onclick="openMap()" style="display:none;">הצג מיקום במפה</button>
                            </div>
                        </div>
                        
                        <!-- חלון קופץ למפה -->
                        <div id="mapModal" class="hidden" aria-modal="true" role="dialog" aria-labelledby="mapTitle" aria-hidden="true">
                            <div id="mapContent">
                                <button id="closeMapBtn" onclick="closeMap()" aria-label="סגור מפה">✖</button>
                                <iframe id="mapIframe" src="" allowfullscreen loading="lazy" title="מפת מיקום"></iframe>
                            </div>
                        </div>
                        
                        <!-- כפתור למשחק נחש -->
                        <button onclick="openSnakeGame()" style="position: fixed; bottom: 80px; left: 10px;">
                            🎮 שחק נחש
                        </button>
                        <div
                            id="snakeGameContainer"
                            style="display: none; position: fixed; bottom: 10px; left: 10px; background-color: rgba(255,255,255,0.8); padding: 10px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); z-index: 1000;">
                            <button onclick="closeSnakeGame()" style="float: left;">❌ סגור</button>
                            <h3>🐍 משחק נחש</h3>
                            <canvas
                                id="snakeCanvas"
                                width="300"
                                height="300"
                                style="background-color: #f4f4f4">
                            </canvas>
                        </div>
                        
                        <!-- תחתית -->
                        <div class="footer">
                            <p>📢 הפיתוח נעשה בחסות <strong>הזירה הית</strong> - המרחב החם של הציבור הי</p>
                            <p>☎️ טלפון: 02-313-60-90</p>
                            <p>🛠️ פיתוח ע"י <strong>אבי ש.</strong> אל תדאגו נעזרתי בבינה מלאכותית 😋😋😋 אני לא כזה מומחה</p>
                            <p>💬 לכניסה לצ'אט: <a href="https://chat.google.com/room/AAQApcvo9RM?cls=7" target="_blank" rel="noopener noreferrer">לחץ כאן</a></p>
                            <p>📧 להצטרפות שלח מייל ל: <a href="mailto:avshainin@gmail.com">avshainin@gmail.com</a></p>
                            <p>© 2025 הזירה הית</p>
                        </div>
                        
                        <script>
                        let currentResults = [];
                        let currentPage = 1;
                        let resultsPerPage = 10;
                        
                        function searchData() {
                            let input = document.getElementById("searchInput").value.trim();
                            const resultsDiv = document.getElementById("results");
                            const paginationControls = document.getElementById("paginationControls");
                            const resultsPerPageContainer = document.getElementById("resultsPerPageContainer");
                        
                            resultsDiv.innerHTML = "🔍 טוען...";
                            paginationControls.style.display = "none";
                            resultsPerPageContainer.style.display = "none";
                        
                            fetch("get.php")
                                .then(res => res.json())
                                .then(database => {
                                    let results = database.filter(item =>
                                        item["שם"].includes(input) ||
                                        item["כתובת"].includes(input) ||
                                        item["פלאפון"].includes(input)
                                    );
                        
                                    results.sort((a, b) => a["שם"].localeCompare(b["שם"], "he", { sensitivity: "base" }));
                        
                                    currentResults = results;
                                    currentPage = 1;
                        
                                    if(results.length === 0) {
                                        resultsDiv.innerHTML = "❌ לא נמצאו תוצאות";
                                        paginationControls.style.display = "none";
                                        resultsPerPageContainer.style.display = "none";
                                        return;
                                    }
                        
                                    paginationControls.style.display = "block";
                                    resultsPerPageContainer.style.display = "block";
                        
                                    renderResults();
                                })
                                .catch(() => {
                                    resultsDiv.innerHTML = "❌ קרתה שגיאה בטעינת הנתונים";
                                    paginationControls.style.display = "none";
                                    resultsPerPageContainer.style.display = "none";
                                });
                        }
                        
                        function renderResults() {
                            const resultsDiv = document.getElementById("results");
                            resultsPerPage = parseInt(document.getElementById("resultsPerPage").value);
                        
                            const startIndex = (currentPage -1) * resultsPerPage;
                            const endIndex = startIndex + resultsPerPage;
                            const pageResults = currentResults.slice(startIndex, endIndex);
                        
                            if(pageResults.length === 0 && currentPage > 1) {
                                currentPage--;
                                renderResults();
                                return;
                            }
                        
                            resultsDiv.innerHTML = pageResults.map((item, index) => `
                                <div class="result-item" tabindex="0">
                                    <div><strong>שם:</strong> ${item["שם"]}</div>
                                    <div><strong>כתובת:</strong> ${item["כתובת"]}</div>
                                    <div><strong>פלאפון:</strong> ${item["פלאפון"]}</div>
                                    <div><strong>טלפון בבית:</strong> ${item["טלפון בבית"] || "❌"}</div>
                                    <div><strong>תא קולי:</strong> ${item["תא קולי"] || "❌"}</div>
                                </div>
                            `).join("");
                        
                            // עדכון כפתורי ניווט
                            document.getElementById("pageInfo").textContent = `עמוד ${currentPage} מתוך ${Math.ceil(currentResults.length / resultsPerPage)}`;
                            document.getElementById("nextBtn").disabled = currentPage >= Math.ceil(currentResults.length / resultsPerPage);
                            document.getElementById("prevBtn").disabled = currentPage <= 1;
                        }
                        
                        function changePage(direction) {
                            if(direction === 1 && currentPage < Math.ceil(currentResults.length / resultsPerPage)) {
                                currentPage++;
                            } else if(direction === -1 && currentPage > 1) {
                                currentPage--;
                            }
                            renderResults();
                        }
                        
                        // פונקציות לפרטי איש קשר ומפות (יש למלא בהתאם לצורך שלך)
                        function closeDetails() {
                            document.getElementById("detailsModal").classList.add("hidden");
                        }
                        
                        function openMap() {
                            const modal = document.getElementById("mapModal");
                            const iframe = document.getElementById("mapIframe");
                            // example of google maps embed, צריך להתאים למיקום בפועל
                            iframe.src = "https://maps.google.com/maps?q=32.0804,34.7805&hl=he&z=14&output=embed";
                            modal.classList.remove("hidden");
                        }
                        
                        function closeMap() {
                            document.getElementById("mapModal").classList.add("hidden");
                            document.getElementById("mapIframe").src = "";
                        }
                        
                        // המשחק נחש - פונקציות נפתח וסוגר
                        function openSnakeGame() {
                            document.getElementById("snakeGameContainer").style.display = "block";
                            startSnakeGame();
                        }
                        function closeSnakeGame() {
                            document.getElementById("snakeGameContainer").style.display = "none";
                            stopSnakeGame();
                        }
                        
                        let snakeGameInterval = null;
                        function startSnakeGame() {
                            // כאן לשים את הקוד של משחק הנחש
                        }
                        function stopSnakeGame() {
                            if(snakeGameInterval) {
                                clearInterval(snakeGameInterval);
                                snakeGameInterval = null;
                            }
                        }
                        
                        // --- קוד ההתראות צבע אדום ---
                        
                        const alertBox = document.getElementById("alert-box");
                        
                        async function fetchAlerts() {
                          try {
                            const res = await fetch('https://www.oref.org.il/WarningMessages/alert/alerts.json');
                            if(!res.ok) throw new Error('Network response was not ok');
                            const data = await res.json();
                        
                            // נקרא לפי מפתח התרעות "alerts"
                            const alerts = data["alerts"];
                        
                            if(!alerts || alerts.length === 0) {
                              alertBox.innerHTML = `<div class="message">📞 אין כרגע התראות צבע אדום</div>`;
                              return;
                            }
                        
                            // הצגת כל ההתראות בקופסה, כל הודעה ב-div נפרד
                            alertBox.innerHTML = alerts.map(alert => {
                              // יש גם תאריך התחלה וסיום
                              const start = alert["StartTime"];
                              const end = alert["EndTime"];
                              const region = alert["RegionDesc"] || "";
                              const desc = alert["Message"] || "";
                              // פורמט פשוט
                              return `<div class="message"><strong>🔴 אזור:</strong> ${region}<br><strong>הודעה:</strong> ${desc}<br><small>${start} - ${end}</small></div>`;
                            }).join("");
                          } catch(err) {
                            alertBox.innerHTML = `<div class="message">❌ שגיאה בטעינת ההתראות</div>`;
                            console.error("Error fetching alerts:", err);
                          }
                        }
                        
                        function sendTestAlert() {
                          alertBox.innerHTML = `<div class="message">🧪 זוהי התראת בדיקה - אין התראה אמיתית כרגע</div>`;
                        }
                        
                        // אתחל את ההתראות אוטומטית בהעמסה ועם ריענון כל 2 דקות
                        fetchAlerts();
                        setInterval(fetchAlerts, 3000);
                        
                        </script>
                        
                        </body>
                        </html>
                        
                        
                        <?php
                        $apiUrl = 'https://api.tzevaadom.co.il/notifications';
                        
                        function getAlerts($url) {
                            $ch = curl_init($url);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
                            $json = curl_exec($ch);
                            $error = curl_error($ch);
                            curl_close($ch);
                        
                            if ($json === false || $json === '') {
                                error_log("שגיאה ב-cURL: " . $error);
                                return null;
                            }
                        
                            $data = json_decode($json, true);
                            if ($data === null) {
                                error_log("שגיאה בפענוח JSON");
                            }
                            return $data;
                        }
                        
                        function saveAlerts($alerts) {
                            $file = __DIR__ . '/alerts_history.json';
                        
                            $existing = [];
                            if (file_exists($file)) {
                                $existingJson = file_get_contents($file);
                                $existing = json_decode($existingJson, true);
                                if ($existing === null) $existing = [];
                            }
                        
                            foreach ($alerts as $alert) {
                                $time = $alert['created_at'] ?? '';
                                $location = implode(', ', $alert['data']['locations'] ?? ['מיקום לא ידוע']);
                        
                                $exists = false;
                                foreach ($existing as $ex) {
                                    if ($ex['time'] === $time) {
                                        $exists = true;
                                        break;
                                    }
                                }
                        
                                if (!$exists) {
                                    $existing[] = [
                                        'time' => $time,
                                        'location' => $location,
                                    ];
                                }
                            }
                        
                            file_put_contents($file, json_encode($existing, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
                        }
                        
                        $alerts = getAlerts($apiUrl);
                        if ($alerts) {
                            saveAlerts($alerts);
                            echo "התראות נשמרו בהצלחה.\n";
                        } else {
                            echo "שגיאה בקבלת ההתראות.\n";
                        }
                        
                        

                        fetch_and_save_alerts.php

                        <?php
                        // get_alerts.php
                        header('Content-Type: application/json');
                        if (file_exists('alerts_log.txt')) {
                            $lines = file('alerts_log.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
                            $alerts = [];
                            foreach ($lines as $line) {
                                $parts = explode(" - ", $line, 2);
                                if (count($parts) === 2) {
                                    $alerts[] = ['time' => $parts[0], 'location' => $parts[1]];
                                }
                            }
                            echo json_encode($alerts);
                        } else {
                            echo json_encode([]);
                        }
                        ?>
                        
                        
                        <?php
                        // save_alert.php
                        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
                            $json = file_get_contents('php://input');
                            $data = json_decode($json, true);
                        
                            if ($data && isset($data['time']) && isset($data['location'])) {
                                $entry = $data['time'] . " - " . $data['location'] . "\n";
                                file_put_contents('alerts_log.txt', $entry, FILE_APPEND | LOCK_EX);
                                echo "OK";
                            } else {
                                http_response_code(400);
                                echo "Invalid data";
                            }
                        } else {
                            http_response_code(405);
                            echo "Method not allowed";
                        }
                        ?>
                        
                        
                        י מנותק
                        י מנותק
                        יוסי רחמים
                        כתב נערך לאחרונה על ידי
                        #37

                        @יהודי-זה-הכי
                        1.מה זה כל הקבצים האלה?מה המטרה של כל אחד?
                        2.למה אתה משתמש בAPI לא רישמי?(https://api.tzevaadom.co.il/notifications)
                        3.תשתמש בקוד שהבאתי לך.

                        י 2 תגובות תגובה אחרונה
                        0
                        • י יוסי רחמים

                          @יהודי-זה-הכי
                          1.מה זה כל הקבצים האלה?מה המטרה של כל אחד?
                          2.למה אתה משתמש בAPI לא רישמי?(https://api.tzevaadom.co.il/notifications)
                          3.תשתמש בקוד שהבאתי לך.

                          י מנותק
                          י מנותק
                          יהודי זה הכי
                          כתב נערך לאחרונה על ידי
                          #38

                          @יוסי-רחמים אני לא מסתדר איתו

                          י תגובה 1 תגובה אחרונה
                          0
                          • י יוסי רחמים

                            @יהודי-זה-הכי
                            1.מה זה כל הקבצים האלה?מה המטרה של כל אחד?
                            2.למה אתה משתמש בAPI לא רישמי?(https://api.tzevaadom.co.il/notifications)
                            3.תשתמש בקוד שהבאתי לך.

                            י מנותק
                            י מנותק
                            יהודי זה הכי
                            כתב נערך לאחרונה על ידי יהודי זה הכי
                            #39

                            @יוסי-רחמים כתב בבקשת מידע | API של פקע"ר:

                            3.תשתמש בקוד שהבאתי לך.

                            {
                              "סטטוס": "שגיאה",
                              "message": "נכשל בהתחברות לשרת Oref. שגיאת cURL: נכשל בהתחברות ל-www.oref.org.il פורט 443: החיבור נדחה",
                              "חותמת זמן": "2025-06-23T20:21:03+03:00"
                            }
                            
                            תגובה 1 תגובה אחרונה
                            0
                            • י יהודי זה הכי

                              @יוסי-רחמים אני לא מסתדר איתו

                              י מנותק
                              י מנותק
                              יוסי רחמים
                              כתב נערך לאחרונה על ידי יוסי רחמים
                              #40

                              @יהודי-זה-הכי אז תשאל את AI STUDIO איך להתחבר לPHP שהבאתי לך שנמצא בקובץ
                              https://clarityai-smart-tools.onrender.com/alerts.php

                              וכנראה שיש שגיאה כי אתה לא שולח אליו נתונים טוב
                              כי זה מה שאני מקבל:

                              {
                                  "status": "success",
                                  "alerts_active": false,
                                  "data": null,
                                  "message": "No active alerts.",
                                  "timestamp": "2025-06-23T20:22:53+03:00"
                              }
                              
                              י תגובה 1 תגובה אחרונה
                              0
                              • י יוסי רחמים

                                @יהודי-זה-הכי אז תשאל את AI STUDIO איך להתחבר לPHP שהבאתי לך שנמצא בקובץ
                                https://clarityai-smart-tools.onrender.com/alerts.php

                                וכנראה שיש שגיאה כי אתה לא שולח אליו נתונים טוב
                                כי זה מה שאני מקבל:

                                {
                                    "status": "success",
                                    "alerts_active": false,
                                    "data": null,
                                    "message": "No active alerts.",
                                    "timestamp": "2025-06-23T20:22:53+03:00"
                                }
                                
                                י מנותק
                                י מנותק
                                יהודי זה הכי
                                כתב נערך לאחרונה על ידי
                                #41

                                @יוסי-רחמים כתב בבקשת מידע | API של פקע"ר:

                                https://clarityai-smart-tools.onrender.com/alerts.php

                                זה כן טוב

                                אז תשאל את AI STUDIO

                                מי זה?

                                י תגובה 1 תגובה אחרונה
                                0
                                • י יהודי זה הכי

                                  @יוסי-רחמים כתב בבקשת מידע | API של פקע"ר:

                                  https://clarityai-smart-tools.onrender.com/alerts.php

                                  זה כן טוב

                                  אז תשאל את AI STUDIO

                                  מי זה?

                                  י מנותק
                                  י מנותק
                                  יוסי רחמים
                                  כתב נערך לאחרונה על ידי יוסי רחמים
                                  #42

                                  @יהודי-זה-הכי כתב בבקשת מידע | API של פקע"ר:

                                  מי זה?

                                  צאט AI חכם במיוחד עם הרבה יכולות😎
                                  (AI רגיל... גם GPT טוב...)

                                  תגובה 1 תגובה אחרונה
                                  0

                                  שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                                  נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                                  בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                                  הרשמה התחברות

                                  • התחברות

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

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