ehhhh.......... czasami to nie wiem czy się śmiać, czy zacząć już płakać...
<?php
session_start();
session_register("zalogowany");
if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
mysql_connect("localhost", "xxx", "xxx")or die("Nie można nawiązać połączenia z bazą");
mysql_select_db("xxx")or die("Wystąpił błąd podczas wybierania bazy danych");
function ShowLogin($komunikat=""){
echo "$komunikat<br><br><br>";
echo "<form action='zaloguj.php' method=post>";
echo "Login: <input type=text name=login><br>";
echo "Hasło: <input type=text name=haslo><br>";
echo "<input type=submit value='Zaloguj!'>";
echo "</form>";
echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" href="/php/style.css" type="text/css" media="screen" />
<title>Strona główna</title>
</head>
<body>
<div id="header"></div>
<ul class="topnav">
<div id="tresc">
<li><a href="index.php">Home</a></li>
<li>
<a href="zaloguj.php">Zaloguj</a>
</li>
<li>
<a href="rejestruj.php">Rejestracja</a>
</li>
<li><a href="">Kontakt</a></li>
<li><a href="">Advertise</a></li>
</div>
</ul>
<?php
if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
if($_SESSION["zalogowany"]!=1){
if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
$_SESSION["zalogowany"]=1;
}
else echo ShowLogin("Podano złe dane!!!");
}
else ShowLogin();
}
else{
?><br><br><br>
Zalogowany jako
<?php
$query = mysql_query("select user_login from users where user_login = '".mysql_real_escape_string($_POST["login"])."' LIMIT 1;");
$result = mysql_fetch_row($query);
echo $result[0];
?> <a href='?wyloguj=tak'>(Wyloguj się)</a>
<?php
}
?>
</body>
</html>
<?php mysql_close(); ?>
Czasami się zastanawiam, gdzie "pr0gramistą" wywiało zdrową logikę. Masz zduplikowany rekord (zakładając że za klucz uznamy pole user_login), a na siłę próbujesz wyznaczyć to pole metodą która zwyczajnie nie przejdzie. W tym wypadku tylko sposób @crew'a by się udał. O ile logowanie przeszło (bo sprawdzasz 2 komórki) o tyle wyznaczenie loginu - który jest identyczny jak wartość z $_POST co daje dodatkowe,
ZBĘDNE zapytanie - jest niemożliwe.
Użytkownik Portek edytował ten post 07.02.2012 20:27