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
config.php
<?php #config.php // Stale Dokumentu nie znaleziono. <br /><br /><a href=\"javascript:history.back()\">Powrót</a><br />'); // Raport bledow // produkcja // Funkcja do obslugi bledow function my_error_handler ($e_number, $e_message, $e_file, $e_line) { $message = 'W skrypcie ' . $e_file . ' wystąpił błąd w wierszu ' . $e_line . \": $e_message\"; //error_log ($message, 1, 'jaragorn@o2.pl'); // Produkcja (+mail) echo '<BR /><font color=\"red\" size=\"+1\">', $message, '</font><BR />'; // Projektowanie (tylko blad) } ?>
header.inc
<?php #header.inc // Sesja i buforowanie $page_title = ''.serwis.''; } ?> <html> <head> <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\" /> <link href=\"includes/style.css\" rel=\"Stylesheet\" type=\"text/css\"> </head> <body> <h2>Eko</h2> ?>
footer.inc
<?php #footer.inc </body> </html> <?php // Pozeganie z buforowaniem ?>
account.php
<?php #account.php require_once (\"./includes/config.inc\"); ?> <?php $urls=\"./account/$action\".\".php\"; // pamietaj o rozszerzeniu { { } } else{ } /* Gdy plik nie zostanie znaleziony... */ ?> <?php include(\"./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:
You forgot to enter your username!'; } else { $u = escape_data($_POST['username']); } if (empty($_POST['password'])) { // Validate the password. $p = FALSE; echo ' You forgot to enter your password! '; } 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 ' The username and password entered do not match those on file. '; } mysql_close(); // Close the database connection. } else { // If everything wasn't OK. echo ' Please try again. '; } } // End of SUBMIT conditional. ?> Login Your browser must allow cookies in order to login. /* w ty miejscu pojawiaja się pola formularza, przy czym pole \"user name\" ma w zawartosci część kodu (nizej) */ Password: Foo Bar 2k4 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:
<?php You forgot to enter your username!'; } else { $u = escape_data($_POST['username']); } if (empty($_POST['password'])) { // Validate the password. $p = FALSE; echo ' You forgot to enter your password! '; } 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 ' Please try again. '; } } // End of SUBMIT conditional. ?> Login Your browser must allow cookies in order to login. /* w ty miejscu pojawiaja się pola formularza, przy czym pole \"user name\" ma w zawartosci część kodu (nizej) */ User Name: Password: Foo Bar 2k4
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? 