Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem Z 'header'
Forum PHP.pl > Forum > PHP
nuerher
pierwszy plik wyglada tak:
index.php
  1. <html>
  2. <head>
  3. <title>TYTUL</title>
  4. </head>
  5. <body>
  6. <table>
  7. <tr><td><a href=\"index.php?id=linki>linki</a>
  8. <a href=\"index.php?id=loguj>loguj</a>
  9.  <td>
  10. <!-----start
  11. <?php
  12.  //otwierania stron np. index.php?id=plik\"
  13. if( !empty( $_GET[ 'id' ] ) )
  14. {
  15.  if( file_exists( $_GET[ 'id' ].'.php' ) )
  16. {
  17.  include( $_GET[ 'id' ].'.php' );
  18. }
  19. else
  20. {
  21.  echo &#092;"<center><font color=\"red\">Error 404. Sorry!</font></center>\";
  22. }
  23.  }
  24.  else
  25. {
  26. echo(&#092;"\");
  27. include(&#092;"main.php\");
  28. echo(&#092;"\");
  29. }
  30.  ?>
  31. </td></tr>
  32. </body>
  33. </html>

Plik do ktorego odnosi sie drugi link, czyli loguj wyglada nastepujaco:
loguj.php
  1. <?php
  2. <html>
  3. <head><title>tytul</title></head>
  4. <body>
  5. <center>
  6.  
  7. <form action=index.php?id=strefa/index method=post>
  8. login:<input type=&#092;"text\" name=\"login\" maxlength=\"10\" size=\"20\"><br>
  9. hasło:<input type=&#092;"text\" name=\"haslo\" maxlength=\"20\" size=\"20\"><br>
  10. <input type=submit value=loguj>
  11. </form>
  12.  
  13. </center>
  14. </body>
  15. </html>
  16.  
  17. ?>

Zatem, login oraz haslo zachowane w formularzu wysylane sa do tego pliku:
strefa/index.php
  1. <?
  2. $auth=false;
  3. $_SERVER['PHP_AUTH_USER']=$login; // login z formularza
  4. $_SERVER['PHP_AUTH_PW']=$haslo; //haslo z formularza
  5.  
  6. if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
  7.  
  8. $lines = file('users.txt');
  9.  
  10. // sprawdzenie każdej pary UŻYTKOWNIK:HASŁO
  11. foreach ($lines as $line) {
  12.  list($username, $password) = explode(':', $line );
  13.  if($username == $_SERVER['PHP_AUTH_USER'] && trim($password) == $_SERVER['PHP_AUTH_PW']) {
  14.  $auth=true;
  15.  break;
  16.  }
  17. }
  18. }
  19. if (!$auth) {
  20. header('WWW-Authenticate: Basic realm=\"Strefa\"' );
  21. header('HTTP/1.0 401 Unauthorized' );
  22. echo &#092;"Przykro mi! Dostęp do tego zasobu wymaga autoryzacji.\";
  23. } else {
  24.  
  25. //koniec autoryzacji
  26. // plik wlasciwy
  27.  
  28. echo &#092;"<p align=center>Witaj:<strong>\".$_SERVER['PHP_AUTH_USER'].\"</strong></p>\";
  29. }
  30. ?>

Niestety, po wywołaniu w/w pliku otrzymuje taki o to błąd:
Kod
Warning: Cannot modify header information - headers already sent by (output started at dysk/sciezka/dostepu/plik.php:10) in dysk/sciezka/dostepu/plik.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at dysk/sciezka/dostepu/plik.php:10) in dysk/sciezka/dostepu/plik.php on line 21
Przykro mi! Dostęp do tego zasobu wymaga autoryzacji.

Gdy plik strefa/index.php otwieram normalnie, bez $_GET jest ok. Ale gdy juz z tą funkcją, to wówczas tak sie gmatwa.

Nie wie ktoś przypakdiem co z tym zrobić?
Za pomoc z góry dziękuję.
bamboos
A umiesz po angielsku?
Cytat
Warning: Cannot modify header information - headers already sent by (output started at dysk/sciezka/dostepu/plik.php:10) in dysk/sciezka/dostepu/plik.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at dysk/sciezka/dostepu/plik.php:10) in dysk/sciezka/dostepu/plik.php on line 21
Przykro mi! Dostęp do tego zasobu wymaga autoryzacji.

Cytat
Uwaga: Nie moge wysłać nagłówków - nagłówki już zostały wysłane....


Nagłówek wysyłany jest przy każdym wysłaniu danych do użytkownika...
RTFM: header" title="Zobacz w manualu PHP" target="_manual
hwao
Problem był wieeeeeeeeeeeeeeeeele razy na forum... a nikt nie umie kozystac w szukaj....
Tak jak wszedzie napisze

ob_start" title="Zobacz w manualu PHP" target="_manual() ( w 1 linijce kodu )

Albo naglowek przed htmlem jak wolisz....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.