PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   header htaccess (http://www.selfphp.de/forum/showthread.php?t=5751)

Jürg 10.10.2003 15:36:55

header htaccess
 
Guten Tag
Folgendes:
1. Ich habe ein htaccess geschütztes Verzeichnis "Dateien". Hier befinden sich div. Dateien, so auch pdf, die nicht mit session geschützt werden können.
2. Ich habe eine per session geschützte Seite "xy.php" im Verzeichnis "da_bin_ich".
3. Auf der Seite klicke ich auf einen Link, der mir (sollte) in "Dateien" die pdf-Dateien öffnet.
4. Die Idee ist, ein User meldet sich an, bekommt ein Kennwort per Mail, gibt dieses ein und kommt auf der mit session geschützten Seite an, dort kann er nun die pdf-dateien auswählen und einsehen. Nach einer gewissen Zeit wird das Kennwort in der DB zur session gelöscht. Mit der Funktion header möchte ich den immer gleichen, effektiven Benutzername und das ebenfalls immer geiche eigentliche Kennwort für die htaccess eingeben. So sieht der Benutzer diese nie!
5. Es tut nicht! Bildschirmmeldung:
Warning: Cannot add header information - headers already sent by (output started at /www/xy.info/doc/da_bin_ich/xy.php:6) in /www/xy.info/doc/da_bin_ich/xy.php on line 1000. Line 1000 entspricht der Zeile mit "header" am Anfang.
6. Was mache ich falsch? Was soll das ":6" in Warning?
PHP-Code:

<?php
if (! session_is_registered('EMail')){ die; exit;}
$command == 0;
?>
----code----
<ul><b>
    <li><?php echo "<a href="$PHP_SELF?command=1">"?>xy.pdf</a></li>
    <li>----weitere: command 2,3,4, etc.----
</b></ul>
----code----
<?php
if ($command == ){
    
header ("Location: http://Benutzername:Kennwort@www.xy.info/da_bin_ich/Dateien/xy.pdf");
    }
?>

Vielen Dank.

sourcecode 10.10.2003 16:24:33

:6 bedeutet, dass in Zeile 6 der erste header gesendet wurde. Vor dem header-Befehl darf keine Ausgabe erfolgt sein, nicht ein einziges Zeichen.

Jürg 10.10.2003 16:47:04

Vielen Dank sourcecode
Nun habe ich wenigstens eine Ahnung was ":6" bedeutet.
Aber wie soll das Ganze in Zeile 1 stehen, denn zuerst kommt die session und dann auch die if-Schleife?
Ober gibt es eine andere Funktion für header?
Der effektive Benutzername und das Kennwort dürfen natürlich nich gesehen werden.

Ben20 11.10.2003 09:41:18

Du brauchst den User nicht identifizieren, wenn er sich korrekt eingeloggt hat kannst Du ihm die Datei auch per PHP schicken, ohne das Du dich mit .htaccess auseinandersetzen musst:

Das könnte Dir dabei weiterhelfen
http://www.dclp-faq.de/q/q-datei-download.html

Jürg 11.10.2003 13:48:44

Vielen Dank für die Ideen. Ich habe alle angeschaut.
Nun bastelte ich an meinem Ursprungsscript weiter. Ich verschob den Abschnit:
PHP-Code:

<?php
if ($command == ){
    
header ("Location: http://Benutzername:Kennwort@www.xy.info/da_bin_ich/Dateien/xy.pdf");
    }
?>

nach ganz zu oberst. Und es läuft, aber nur mit Netscape (4.7!, 7.1), Opera (6.05), jedoch nicht mit IE (6.0)! Der öffnet das Fenster: Netzwerkkennwort eingeben; Benutzername; Kennwort.
Was ist der Fehler?

Ben20 11.10.2003 15:13:26

Bug im Internetexplorer würde ich mal vermuten. Die andere Methode von dclp-faq.de geht ganz prima. Hab' ich schon in mehreren Variationen getestet!


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:55:44 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.