Ankündigung

Einklappen
Keine Ankündigung bisher.

php Variable in ein Script über geben...

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php Variable in ein Script über geben...

    Hallo,

    Ich habe eine php Code der macht aus einem DL Code z.b.123456789012345 ein Pfad. Mit Hilfe einer SQL Datenbank.
    www.example.com/downloader?123456789012345
    Das funktioniert 1a, sowie das Script für den Download mit LadeBalken.

    Jetzt Soll der Pfad in ein Script übergeben. Das Script Zeigt einen Download Balken an, das sehr wichtig ist.

    1. Wie übergebe ich die Variable?
    2. Wie verstecke ich das Script?








  • #2
    Bitte verwende example.com wenn du eine Beispieldomain benötigst, die ist unter anderem extra dafür gedacht und gehört niemanden.
    Schau dir mal $_GET an, was dort drin steht, da ist dann auch dein Parameter.
    Wie verstecke ich das Script?
    Wie darf ich das verstehen?
    PHP Scripte kann man nicht verstecken, vor wem überhaupt, sie sind über den Browser nicht direkt einsehbar.

    Kommentar


    • #3
      Jetzt Soll der Pfad in ein Script übergeben. Das Script Zeigt einen Download Balken an, das sehr wichtig ist.
      Aha Ö???
      Ein DownloadBalken scheint mir weniger wichtig, da wohl jeder Browser anzeigt, wie viel schon downgeloaded ist;
      Anders als beim Upload

      Kommentar


      • #4
        HTML-Code:
        <!DOCTYPE html>
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href='https://fonts.googleapis.com/css?family=Titillium+Web:400' rel='stylesheet' type='text/css'>
        <style type="text/css">
        
        body {
            margin: 0;
            font-family: "Titillium Web";
            font-size: 15px;
        }
        
        #demo-container {
            width: 400px;
            margin: 60px auto;
        }
        
        #download-button {
            background-color: white;
            color: #2980b9;
            border: 2px solid #2980b9;
            font-family: inherit;
            outline: none;
            min-width: 100px;
            padding: 10px;
            font-size: inherit;
            border-radius: 2px;
            cursor: pointer;
            display: block;
            margin: 0 auto;
        }
        
        #start-download {
            text-align: center;
            display: none;
        }
        
        #download-progress-container {
            border: 1px solid #cccccc;
            padding: 4px;
            display: none;
            height: 20px;
        }
        
        #download-progress {
            background-color: #2980b9;
            display: inline-block;
            height: 100%;
        }
        
        #save-file {
            color: #2980b9;
            text-decoration: none;
            display: none;
            text-align: center;
        }
        
        #save-file:hover {
            text-decoration: underline;
        }
        
        </style>
        </head>
        
        <body>
        
        <div id="demo-container">
            <button id="download-button">Download</button>
            <div id="download-ui-container">
                <div id="start-download">Starting Download..</div>
                <div id="download-progress-container"><div id="download-progress"></div></div>
                <a id="save-file">Save File</a>
            </div>
        </div>
        
        <script>
        
        HTTP_GET_VARS=new Array();
        strGET=document.location.search.substr(1,document.location.search.length);
        if(strGET!='')
            {
            gArr=strGET.split('&');
            for(i=0;i<gArr.length;++i)
                {
                v='';vArr=gArr[i].split('=');
                if(vArr.length>1){v=vArr[1];}
                HTTP_GET_VARS[unescape(vArr[0])]=unescape(v);
                }
            }
        
        function GET(v)
        {
        if(!HTTP_GET_VARS[v]){return 'undefined';}
        return HTTP_GET_VARS[v];
        }
        
        
                  alert (GET('FileName'));
        
                          var file_name = "test.exe";             
        document.querySelector('#download-button').addEventListener('click', function()
        {
        
            var request;
            var _OBJECT_URL;
        
          //  
        
          if (window.XMLHttpRequest)
           {
                 // code for IE7+, Firefox, Chrome, Opera, Safari
                 request = new XMLHttpRequest();
            }
            else
            {
            alert ('dreck');
                 // code for IE6, IE5
                 request = new ActiveXObject("Microsoft.XMLHTTP");  
            }
        
            request.addEventListener('readystatechange', function(e)
            {
                if(request.readyState == 2 && request.status == 200)
              {                                           
                    document.querySelector('#start-download').style.display = 'block';
                    document.querySelector('#download-button').style.display = 'none';
                }
                else if(request.readyState == 3)
               {
                    document.querySelector('#download-progress-container').style.display = 'block';
                    document.querySelector('#start-download').style.display = 'none';
                }
                else if(request.readyState == 4)
               {
                    if (window.navigator && window.navigator.msSaveOrOpenBlob && !(navigator.appVersion.indexOf('Edge') > -1)) { // for IE
                        window.navigator.msSaveOrOpenBlob(request.response, file_name);
                    } else { // for Non-IE (chrome, firefox, edge, etc.)
        
                        _OBJECT_URL = URL.createObjectURL(request.response);
        
                        document.querySelector('#save-file').setAttribute('href', _OBJECT_URL);
                        document.querySelector('#save-file').setAttribute('download', file_name);
        
                        document.querySelector('#save-file').style.display = 'block';
                        document.querySelector('#download-progress-container').style.display = 'none';
        
                        setTimeout(function() {
                            window.URL.revokeObjectURL(_OBJECT_URL);
        
                            document.querySelector('#download-button').style.display = 'block';
                            document.querySelector('#save-file').style.display = 'none';
                        }, 60*1000);
                    }
                }
            });
            request.addEventListener('progress', function(e) {
                var percent_complete = (e.loaded / e.total)*100;
                document.querySelector('#download-progress').style.width = percent_complete + '%';
            });
        try{
         request.responseType = 'blob';
         request.open('get', file_name);
         }
         catch(err) {
         request.open('get', file_name);
         request.responseType = 'blob';
         }
            request.send();
        });
        
        </script>
        
        </body>
        </html>
        zu meinem Problem, ich rufe auf www.example.com/downloader2.html?FileName=434.zip
        HTML-Code:
        ...schnip
          alert (GET('FileName'));
        
                          var file_name = "test.exe";   
        schnipp...
        Ich bekomme die Message 434.zip angezeigt und dann lädt er test.exe (50 MByte)runter. Soweit so gut und alles Super
        Mach ich aber eine folgende Änderung...
        var file_name = GET('FileName');
        .. dann lädt er mir eine 1k Byte große 434.zip runter.

        Kommentar


        • #5
          Zitat von tomovic Beitrag anzeigen
          dann lädt er mir eine 1k Byte große 434.zip runter.
          Und auf die Idee einfach mal den Dateiinhalt anzuschauen kommst du nicht?

          Kommentar


          • #6
            HTML-Code:
            <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
            <html><head>
            <title>404 Not Found</title>
            </head><body>
            <h1>Not Found</h1>
            <p>The requested URL /downloads/434.zip was not found on this server.</p>
            <hr>
            <address>Apache/2.4.12 (Ubuntu) Server at www.example.com Port 80</address>
            </body></html>
            Aber der Pfad stimmt 100%

            Kommentar


            • #7
              Tja, ohne den Code zu kenenn, kann an wohl nix dazu sagen.

              Außerdem fällt mir auf, oben schreibst du:

              /downloader2.html?FileName=434.zip

              In der Fehlermeldung steht aber:

              /downloads/434.zip

              Was denn jetzt?

              Kommentar


              • #8
                hallo,

                /downloader2.html?FileName=434.zip <--------so starte ich script, sprich, die downloader2.html soll die 434.zip herunterladen

                /downloads/434.zip <----- der Pfad der Datei die heruntergeladen werden soll.

                Kannst du die html Datei bei dir testen? Vielleicht mache ich einen Denkfehler.




                Kommentar


                • #9
                  Zitat von tomovic Beitrag anzeigen
                  /downloader2.html?FileName=434.zip <--------so starte ich script, sprich, die downloader2.html soll die 434.zip herunterladen

                  /downloads/434.zip <----- der Pfad der Datei die heruntergeladen werden soll.
                  Was heißt "der Pfad"? Wie ein Dateipfad sieht das nicht aus und als URL wäre es unvollständig.

                  Zitat von tomovic Beitrag anzeigen
                  Kannst du die html Datei bei dir testen? Vielleicht mache ich einen Denkfehler.
                  Was jetzt? PHP oder HTML?

                  Kommentar


                  • #10
                    HTML-Code:
                     www.example.com/downloader2.html?FileName=434.zip <--------so starte ich script, sprich, die downloader2.html soll die 434.zip herunterladen
                    /var/www/html/downloader2.html?FileName=434.zip <--------so starte ich script, sprich, die downloader2.html soll die 434.zip herunterladen  
                    
                    www.example.com/downloads/434.zip <----- der Pfad der Datei die heruntergeladen werden soll.
                    /var/www/html/downloads/434.zip <----- der Pfad der Datei die heruntergeladen werden soll.  
                    php ? Ja und Nein
                    Die Auswertung ist in der download.php <---- ?DLCode=12345678901234 (über eine SQL Abfrage bekomme ich die Dateiname)
                    Der Download ist in der download2.html <---- ?FileName=434.zip (Hier wird die Datei heruntergeladen)

                    Kommentar


                    • #11
                      download2.html
                      ist eine HTML Datei, die nimmt im Normalfall keine Parameter entgegen.

                      Kommentar


                      • #12
                        ja und nein
                        nein im Normal Fall
                        HTML-Code:
                        schnipp  HTTP_GET_VARS=new Array(); strGET=document.location.search.substr(1,document.location.search.length); if(strGET!='')     {     gArr=strGET.split('&');     for(i=0;i<gArr.length;++i)         {         v='';vArr=gArr[i].split('=');         if(vArr.length>1){v=vArr[1];}         HTTP_GET_VARS[unescape(vArr[0])]=unescape(v);         }     }  function GET(v) { if(!HTTP_GET_VARS[v]){return 'undefined';} return HTTP_GET_VARS[v]; }             alert (GET('FileName')); scnipp
                        Die letzte Zeile macht eine Messagebox in dem Meim Parameter angezeigt wird. Das geht.Der Komplett Code ist oben.

                        Kommentar


                        • #13
                          Hier werden zu viele Technologien auf einmal vermischt. Das hilft bei der Problemlösung nicht. Brich es auf das nötigste runter. Das heißt vor allen JavaScript weg lassen. Und poste ein vollständiges kleines Code-Beispiel, bei dem das Problem nachvollziehbar auftritt.

                          Kommentar

                          Lädt...
                          X