D/L-Script für htaccess gesch. Verz. geht nur ab und zu

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

  • D/L-Script für htaccess gesch. Verz. geht nur ab und zu

    Hallo All

    ähm ich hab hier ein komisches Prob: Ich habe mir ein DL Scriptg ebastelt welches eine Datei schickt , welche wiederum in einem mit htaccess geschützen Verzeichnis liegt. hintergrund ist einfach daß ncht jeder alles runterladen soll...diese Script schickt ales die Datei per <meta refresh...> an den User und bisher kam immer der speichenr unter dialog.also genau dfas was ich wollte !

    Öhm..tja und seit neuestem kommt nicht mehr der speicehrn unter sondern diese Browser Abfrage nach User und Passwort *argh*

    Ich hab keine Ahnung was ich da geändert haben soll..zumindest nicht wissentlich...das ding lief...und jetzt greifen eben diese htacess Abfragen auch auf diesen Refrseh

    Hatte Jemand mal das gleiche Prob ?

    ..neue Test ergaben, daß das ding je nach laune mal den Speichern unter Dialog zeigt und mal eben den htaccess Login Die Zeile für den Download ist einfach:

    <meta http-equiv="refresh" content="0; url=<? echo "restricted/".$filename ?>">

    Thx
    Ray

  • #2
    Es kann auch sein, daß es sich um ein Caching Problem handelt:

    1. Lösche einmal alle Deine "Temporären Internetdateien" über Extras Internetoptionen

    2. Deaktiviere, soferne möglich im IExplorer die Verbindung über Proxy

    PROXY-CACHE unterbinden:
    Aus dem Manual:
    "
    PHP-Skripte erzeugen oft dynamisches HTML, das weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden soll bzw. darf. Bei vielen Proxies und Browsern kann das Cachen unterbunden werden und zwar mit:
    header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum der Vergangenheit
    header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); // immer geändert
    header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header ("Pragma: no-cache"); // HTTP/1.0
    "
    Versuche diese Header Informationen ganz zu Beginn Deines Skripts einzufügen, vor dem Statement, das ist wichtig. Diese Statements müssen ganz zu Beginn des Datenstroms übertragen werden, damit der Proxy Chache Mechanismus ausgeschaltet wird.

    LOKALEN BROWSER-CACHE unterbinden:

    Den Browsercache umschiffst Du mit dem Meta-Tag
    <META http-equiv="expires" content="0">
    im HEAD-Bereich.

    Kommentar


    • #3
      hi hand,


      ich hab das grad probiert, leider ohne Erfolg. Habe die Headers an den Beginn meiner index.php gestzt (im endeffekt rufe ich imemr wieder diese Index auf, nur halt mit anderen inlcudes) und auch das Meta-Tag sowohl im http Header gestzt als auch zum Spaß mal VOR dem meta-refresh tag..


      Hast Du noch eine Andere Idee ?

      Thx
      Ray

      Kommentar


      • #4
        Bin noch überfragt. Poste bitte mal Deine htaccess. Wo befindet sich diese? Im Verzeichnis der downzuloadenden Files oder im Verzeichnis Deiner Skripte? Hast Du vielleicht zwei verschiedene htaccess Files, die auf verschiedene htpasswd zugreifen (gleiche USERIDs mit anderen Passworten?

        Was in etwa hast Du in der httpd.conf zum Schluß geändert?

        Läuft Apache unter Linux oder Windoz?

        Ansich ist es so, daß nach dem autentifiziern gegen htpasswd über htaccess die Userid und das Passwort diese beiden Variablen in Headerbereich des Browser eingetragen werden und immer wieder zum Server geschickt werden, solange bis das Browserfenster geschlossen wird.

        Versuch mal nur zum Test die Files über die URL inklusive Userid und Passowrt aufzurufen (nur zum Test) "http://useridassword@www.domain.xx/blabla"

        UID und PWD müßtest Du ja über die Variablen $PHP_AUTH_USER und $PHP_AUTH_PW dort einsetzen können. (Ich weiß aber nicht wo Du die Autentifizierung erwartest, erst beim Download, oder bereits vor der Selektion.) Vielleicht kommst Du so irgendwie auf des Pudels Kern.

        Es scheint so als würden die Autentifizierungsinformationen im Browsercache verloren gehen. Vor dem Download öffnest Du da vielleicht ein eigenes Fenster?
        Zuletzt geändert von hand; 01.04.2002, 13:48.

        Kommentar


        • #5
          Hallo Hand,

          also ich muß gestehen mit PHP hab ich noch nicht lang zu tun, ich komme aus der Screen-design Ecke (Flash)...

          die Variablen PHP_AUTH_XXX erlauben mir queasi Username und Pass der in htaccess hintelgten Files anzugeben ?

          Wenn das geht wäre mein Problem gelöst und ich könnte ja den dirkt-link auf die files setzen. Ich denke mal das der User dann die Login-Date nicht mitbekommt, richtig ? Darum gehts mir.

          Wenn das funktioniert brauch auch kein header oder refresh mehr

          Kannst du mir ein vielleicht kleines Bsp. zeigen ?

          Vielen Dank
          Heiko

          Kommentar


          • #6
            Umgekehrt. In PHP kannst Du die Inhalte der Variablen $PHP_AUTH_USER und $PHP_AUTH_PW abfragen, wenn zuvor eine Autentifizierung über htaccess erfolgt ist.
            Es gibt aber auch noch eine andere Möglichkeit direkt über PHP diese Variablen belegen zu lassen und danach weiterzuverarbeiten.

            PHP-Code:
            <?php 
            if(!isset($PHP_AUTH_USER)) { 
                
            Header("WWW-Authenticate: Basic Realm=\"Streng Geheim\""); 
                
            Header("HTTP/1.0 401 Unauthorized"); 
                echo 
            "You hit the Cancel-Button"
                exit; 
            } else { 
                echo 
            "Hallo $PHP_AUTH_USER.<p></p>"
                echo 
            "Entered: $PHP_AUTH_PW as Password";
                
            // Weiterverarbeitung

            ?>
            Solange nun das Browserfenster nicht geschlossen wird, sendet der Browser immer die beiden gesetzten Variablen zum Server, die dann über PHP abgefragt und weiterverarbeitet werden können.

            Wenn Du o.a. SKript verwendest wird ein LOGIN-Fenster gepromptet, das ansich nichts mit htaccess zu tun hat (Wenn natürlich zuvor ein Lgin über htaccess erfolgt ist, wird kein LOGIN gepromptet, wegen des if (!isset(...)) ), da ja dann die Vraiable bereits belegt ist.

            Es liegt an Dir was Du mit den Variablen anstellst. In o.a. Sample werden die Daten halt ausgegeben.

            Kommentar

            Lädt...
            X