Witam serdecznie, napisałem skrypt, który ma za zadanie udostępnić stronę tylko zalogowanemu użytkownikowi (w tym wypadku będzie to administrator). Informacje o jego loginie i haśle są dostępne w stałych LOGIN i PASSWORD. Sęk w tym, że przy odpaleniu skryptu wyświetlają mi się dwa błędy, oto ich treść:
Warning
: session_start() [function.session
-start
]: Cannot send session cookie
- headers already sent by
(output started at C
:\xampp\htdocs\cms\index
.php
:1
) in C
:\xampp\htdocs\cms\index
.php on line 4
Warning
: session_start() [function.session
-start
]: Cannot send session cache limiter
- headers already sent
(output started at C
:\xampp\htdocs\cms\index
.php
:1) in C
:\xampp\htdocs\cms\index
.php on line
4
A to sam skrypt:
<?php
// Uruchomienie obsługi sesji
?>
<html>
<head>
<title>Logowanie do panelu administratora</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="lukaszphp" />
<style type="text/css">
body {
margin: 10px auto;
text-align: center;
font: 13px Arial, Verdana, Helvetica, sans-serif;
}
</style>
</head>
<body>
<?php
// Sprawdzenie czy użytkownik jest już zalogowany
if ($_SESSION["authuser"] == true) {
// Jeśli tak wyświetlenie pliku admin.php, w którym znajduję się strona widoczna
// tylko dla zalogowanego użytkownika
require_once("main.php");
echo "\n</body>\n</html>"; }
// Definiujemy stałe, które posłużą jako login i hasło
// Funkcja wyświetlająca formularz
function loginForm($alert = NULL) {
// Formularz HTML
echo "<form action=\"index.php\" method=\"post\">"; echo "<table align=\"center\" cellpadding=\"5\">"; echo "<tr><td>Login:</td><td><input type=\"text\" name=\"login\" /></td></tr>"; echo "<tr><td>Hasło:</td><td><input type=\"password\" name=\"password\" /></td></tr>"; echo "<tr><td colspan=\"2\" align=\"center\"><button type=\"submit\">Zaloguj</button></td></tr>"; echo "<input type=\"hidden\" name=\"formSent\" />";
// Ew. wyświetlenie wiadomości informujące użytkownika o popełnionym błędzie
if ($alert != NULL)
echo "<p style=\"color: #ff0000\">$alert</p>"; }
// Wyświetlenie formularza logowania
if (!isset($_POST["formSent"])) loginForm();
else {
// Sprawdzenie czy wpisany został login
if ($_POST["login"]) {
// Sprawdzenie czy wpisane zostało hasło
if ($_POST["password"]) {
// Sprawdzenie czy dane są prawidłowe
$login = $_POST["login"];
$password = $_POST["password"];
if ($login === LOGIN and $password === PASSWORD) {
// Ustawienie sesji informujące, że użytkownik jest zalogowany
$_SESSION["login"] = $login;
$_SESSION["password"] = $password;
$_SESSION["authuser"] = true;
// Wyświetlenie informacji użytkownikowi, że został zalogowany oraz przeładowanie strony
echo "<div style=\"margin: 10px auto; padding: 10px; text-align: center; border: 1px dotted; width: 500px;\">"; echo "Dziękuję za zalogowanie się użytkowniku <strong>" . $_SESSION["login"] . "</strong>!<br />"; echo "Proszę czekać, trwa przekierowanie..."; // Odświeżenie strony
echo "<meta http-equiv=\"refresh\" content=\"2\" />"; } else
loginForm("Dane są nieprawidłowe!");
} else
loginForm("Wpisz swoje hasło!");
} else
loginForm("Wpisz swój login!");
}
?>
</body>
</html>
Z góry dziękuję za pomoc w odnalezieniu błędu, miło widziane będą również uwagi co w poprawić w kodzie.
Pozdrawiam, lukaszphp.