Jestem nowym użytkownikiem forum a zarazem i raczkującym w PHP. Chciałbym stworzyć na swojej stronce rejestrację i logowanie użytkowników tak aby mieli dostęp do swoich opcji. Rejestrację z trudem ale mam już z głowy. Problem natomist mam wielki z logowaniem. Znalazłem w takiej "mądrej" książce skrypt do logowania oparty na bazie danycch MySQL. Wygląda to tak.
Plik login.php
Kod
<?php
session_start();
if (isset($_POST["submit"])) {
$login = $_POST["login"];
$passwd = $_POST["passwd"];
$auth = false;
$pwdb = mysql_connect("localhost", "user_do_bazy", "password");
mysql_select_db("baza", $pwdb);
$rows = mysql_query("SELECT login, passwd FROM baza", $pwdb);
while ($row = mysql_fetch_array($rows)) {
if ($login == $row["login"] && $passwd == $row["passwd"]) {
$auth = true;
break;
}
}
if ($auth) {
$_SESSION["username"] = $login;
if (isset($_GET["url"])) {
$url = $_GET["url"];
} else {
$url = "panel.php";
}
if (!isset($_COOKIE[session_name()])) {
if (strstr($url, "?")) {
header("Location: " . $url .
"&" . session_name() . "=" . session_id());
} else {
header("Location: " . $url .
"?" . session_name() . "=" . session_id());
}
} else {
header("Location: " . $url);
}
}
}
?>
<html>
<head>
<title>Uwierzytelnianie użytkowników</title>
</head>
<body>
<form method="post">
<input type="text" name="login" />
<input type="password" name="passwd" />
<input type="submit" name="submit" value="Login" />
</form>
</body>
</html>
session_start();
if (isset($_POST["submit"])) {
$login = $_POST["login"];
$passwd = $_POST["passwd"];
$auth = false;
$pwdb = mysql_connect("localhost", "user_do_bazy", "password");
mysql_select_db("baza", $pwdb);
$rows = mysql_query("SELECT login, passwd FROM baza", $pwdb);
while ($row = mysql_fetch_array($rows)) {
if ($login == $row["login"] && $passwd == $row["passwd"]) {
$auth = true;
break;
}
}
if ($auth) {
$_SESSION["username"] = $login;
if (isset($_GET["url"])) {
$url = $_GET["url"];
} else {
$url = "panel.php";
}
if (!isset($_COOKIE[session_name()])) {
if (strstr($url, "?")) {
header("Location: " . $url .
"&" . session_name() . "=" . session_id());
} else {
header("Location: " . $url .
"?" . session_name() . "=" . session_id());
}
} else {
header("Location: " . $url);
}
}
}
?>
<html>
<head>
<title>Uwierzytelnianie użytkowników</title>
</head>
<body>
<form method="post">
<input type="text" name="login" />
<input type="password" name="passwd" />
<input type="submit" name="submit" value="Login" />
</form>
</body>
</html>
No i po poprawnym zalogowaniu się przechodzi mi do pliku panel.php, który wygląda tak:
Kod
<html>
<head>
</head>
<body>
<?
session_start();
if (!isset($_SESSION["username"])) {
header("Location: /protected3/login.php?url=" .
urlencode($_SERVER["SCRIPT_NAME"]));
} else {
echo "<B>Nazwa istniejacej sesji:</B> ".$_SESSION["username"];
echo " <A href=\"logout.php?\"" . SID . "\">";
echo "[Wyloguj]</A><BR>";
echo "<B>Twoj login:</B> ".$_GET['login'];
echo "<B>Twoje haslo:</B> ".$_GET['passwd'];
}
?>
</body>
</html>
<head>
</head>
<body>
<?
session_start();
if (!isset($_SESSION["username"])) {
header("Location: /protected3/login.php?url=" .
urlencode($_SERVER["SCRIPT_NAME"]));
} else {
echo "<B>Nazwa istniejacej sesji:</B> ".$_SESSION["username"];
echo " <A href=\"logout.php?\"" . SID . "\">";
echo "[Wyloguj]</A><BR>";
echo "<B>Twoj login:</B> ".$_GET['login'];
echo "<B>Twoje haslo:</B> ".$_GET['passwd'];
}
?>
</body>
</html>
No i problem jest taki że kiedy już po zalogowaniu się przechodzi mi do pliku panel.php nie mam tam dostępu do zmiennych $login oraz &passwd tzn po wpisaniu żeby wyświetlił login i hasło widzę coś takiego:
Kod
Notice: Undefined index: login in /usr/account/ftp/scoute/panel.php on line 19
Notice: Undefined index: passwd in /usr/account/ftp/scoute/panel.php on line 20
[\code]
Co ciekwae kiedy wpiszę:
[code]
echo $_SESSION["username"];
Notice: Undefined index: passwd in /usr/account/ftp/scoute/panel.php on line 20
[\code]
Co ciekwae kiedy wpiszę:
[code]
echo $_SESSION["username"];
pokazuje mi nazwę sesji więc uważam że jakieś tam dane przekazuje do panel.php. nie przekazuje jednak loginu i hasla. <B>W czym zatem tkwi problem. Co jest nie tak w tym skrypcie ?</B>