Witam,
temat jest raczej mylący, ale nie widziałem jak go dobrze sformułować.
Jeśli chodzi o php, to jest początkujący, więc proszę o wyrozumiałość.

Mam takich kilka plików, wszystkie są w odp katalogach (niestety nie mam możliwości wrzucenia ich na jakikolwiek serwer, u siebie sprawdzam na Krasnalu).
Pominąłem plik mysql_connet.php, ponieważ nie jest tu on do niczego potrzebny.

index.html
  1. <a href="account.php?action=login">account.php?action=login</a> - nie dziala :( <BR>
  2. <a href="account/login.php">account/login.php</a> - dziala


config.php
  1. <?php #config.php
  2. // Stale
  3. define ('error_404', '<p align=\"center\"><b>Błąd 404</b><br /><br />
  4. Dokumentu nie znaleziono.
  5. <br /><br /><a href=\"javascript:history.back()\">Powrót</a><br />');
  6.  
  7. define ('serwis', 'Foo Bar');
  8. // Raport bledow
  9.  
  10. // produkcja
  11. error_reporting (E_ALL); // Development level
  12.  
  13. // Funkcja do obslugi bledow
  14. function my_error_handler ($e_number, $e_message, $e_file, $e_line) {
  15.  
  16. $message = 'W skrypcie ' . $e_file . ' wystąpił błąd w wierszu ' . $e_line . &#092;": $e_message\";
  17. //error_log ($message, 1, 'jaragorn@o2.pl'); // Produkcja (+mail)
  18. echo '<BR /><font color=\"red\" size=\"+1\">', $message, '</font><BR />'; // Projektowanie (tylko blad)
  19. }
  20. set_error_handler('my_error_handler');
  21. ?>


header.inc
  1. <?php #header.inc
  2.  
  3. // Sesja i buforowanie
  4.  
  5.  
  6. if (!isset($page_title)) {
  7. $page_title = ''.serwis.'';
  8. }
  9. ?>
  10. <html>
  11. <head>
  12. <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\" />
  13. <title><?php echo $page_title; ?></title>
  14. <link href=\"includes/style.css\" rel=\"Stylesheet\" type=\"text/css\">
  15. </head>
  16. <body>
  17. <h2>Eko</h2>
  18. ?>


footer.inc
  1. <?php #footer.inc
  2. echo (' '. serwis . ' 2k4'); ?>
  3. </body>
  4. </html>
  5. <?php // Pozeganie z buforowaniem
  6. ?>


account.php
  1. <?php #account.php
  2. require_once (&#092;"./includes/config.inc\"); ?>
  3.  
  4. <?php
  5. $urls=&#092;"./account/$action\".\".php\"; // pamietaj o rozszerzeniu
  6. if(file_exists(&#092;"$urls\"))
  7. { 
  8. $file=fopen($urls,&#092;"r\"); // otwiera plik
  9.  
  10. while($linia=fgets($file, 99))
  11. {
  12. echo($linia); // wyswietla zawartosc pliku 
  13. }
  14. fclose($file); 
  15. }
  16. else{
  17. echo(&#092;"\".error_404.\"\");
  18. } /* Gdy plik nie zostanie znaleziony... */
  19. ?>
  20. <?php include(&#092;"./includes/footer.inc\"); ?>


I teraz tak:
w pliku index.html są daw linki, jeden działa, drugi nie.
W przypadku drugiego linka wiem dlaczego wszystko jest ok, jednak w przypadku kliknięcia na pierwszy:
  1. You forgot to enter your username!'; } else { $u = escape_data($_POST['username']); } if (empty($_POST['password'])) { // Validate the password. $p = FALSE; echo '
  2.  
  3. You forgot to enter your password!
  4. '; } else { $p = escape_data($_POST['password']); } if ($u && $p) { // If everything's OK. // Query the database. $query = \"SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')\"; $result = @mysql_query ($query); $row = mysql_fetch_array ($result, MYSQL_NUM); if ($row) { // A match was made. // Start the session, register the values & redirect. $_SESSION['first_name'] = $row[1]; $_SESSION['user_id'] = $row[0]; ob_end_clean(); // Delete the buffer. header (\"Location: http://\" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . \"/index.php\"); exit(); } else { // No match was made. echo '
  5.  
  6. The username and password entered do not match those on file.
  7. '; } mysql_close(); // Close the database connection. } else { // If everything wasn't OK. echo '
  8.  
  9. Please try again.
  10. '; } } // End of SUBMIT conditional. ?> 
  11. Login
  12.  
  13. Your browser must allow cookies in order to login.
  14. /* w ty miejscu pojawiaja się pola formularza, przy czym pole \"user name\" ma w zawartosci część kodu (nizej) */
  15. User Name: <?php if (isset($_POST['username'])) echo $_POST['username']; ?>
  16.  
  17. Password: 
  18.  
  19. Foo Bar 2k4 
  20. W skrypcie c:usrkrasnalwwwlamaincludesfooter.inc wystšpił błšd w wierszu 5: ob_f
    lush(): failed to flush buffer. No buffer to flush.


Domyślam się, że problem moze tkwić w tym, że plik account.php nie otwiera sesji, a robi to login.php, ale kiedy zaincluduje plik header.inc do account.php a usuwam include z login.php pojawia mi się coś takiego:
  1. <?php
  2. You forgot to enter your username!'; } else { $u = escape_data($_POST['username']); } if (empty($_POST['password'])) { // Validate the password. $p = FALSE; echo '
  3.  
  4. You forgot to enter your password!
  5. '; } else { $p = escape_data($_POST['password']); } if ($u && $p) { // If everything's OK. // Query the database. $query = \"SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')\"; $result = @mysql_query ($query); $row = mysql_fetch_array ($result, MYSQL_NUM); if ($row) { // A match was made. // Start the session, register the values & redirect. $_SESSION['first_name'] = $row[1]; $_SESSION['user_id'] = $row[0]; ob_end_clean(); // Delete the buffer. header (\"Location: http://\" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . \"/index.php\"); exit(); } else { // No match was made. echo '
  6.  
  7. The username and password entered do not match those on file.
  8. '; } mysql_close(); // Close the database connection. } else { // If everything wasn't OK. echo '
  9.  
  10. Please try again.
  11. '; } } // End of SUBMIT conditional. ?> 
  12. Login
  13.  
  14. Your browser must allow cookies in order to login.
  15. /* w ty miejscu pojawiaja się pola formularza, przy czym pole \"user name\" ma w zawartosci część kodu (nizej) */
  16. User Name: 
  17.  
  18. Password: 
  19.  
  20. Foo Bar 2k4 
  21. W skrypcie c:usrkrasnalwwwlamaincludesfooter.inc wystšpił błšd w wierszu 5: ob_flush(): failed to flush buffer. No buffer to flush.


Moje ostatnie przypuszczenie jest takie, że nawala cały plik account.php i ogólnie sprawa takich adresów (example.php?foo=bar) powina być inaczej rozwiązana, ale nie bardzo umiem sobie poradzić z takim problemem .
Jeżeli zna ktoś jakąs dobrą metodę na coś takiego, z miłą chęcią poczytam/wypróbuję.

Dzięki za poświęconą chwilkę.

Edit:
Jeżeli miałbym adresy do plików w tablicy np:
Kod
login => account/login.php, register => account/register.php etc
to czy mógłbym je jakoś wywoływać np za pomocą metody GET? Jeżeli tak, to jak? smile.gif