Rzeczywiście usunięcie apostrofów pomogło, ale pokazał się nowy błąd. Po wpisaniu w formularzu logowania wyszukiwarka pokazuje mi taki błąd:
Unknown column 'nazwa wpisana w pole Nazwa Użytkownika' in 'where clause'
cały kod wygląda następująco:
<?php
//sprawdza czy wypełniono wszytkie pola formularza
if((!$_POST['nazwa']) || (!$_POST['haslo'])) {
header("Location: logowanie.html"); }
//łączy się serwerem bazy
include("connect2.php");
//tworzy i wysyła zapytanie
$sql = "select imie, nazwisko from uzytkownicy where
nazwa = $_POST[nazwa] ||
haslo = password($_POST[haslo])";
$wynik = mysqli_query
($mysqli,$sql) or
die(mysqli_error
($mysqli));
if (mysqli_num_rows($wynik) == 1) {
// jeżeli to uprawniony użytkownik, pobiera wartości pól imie nazwisko
while ($info = mysqli_fetch_array($wynik)) {
$imie = stripshlashes($info['imie']);
$nazwisko = stripshlashes($info['nazwisko']);
}
// ustawia cookie autoryzacyjne
// tworzy ciąg do wyświetlenia
$wyswietlany_blok = "
<p>".$imie." ".$nazwisko." jest uprawnionym użytkownikiem!</p>
<p>Menu uprawnionych użytkowników:</p>
<ul>
<li><a href=\"tajnastrona.php\">tajna strona</a></li>
</ul>";
} else {
// przekierowuje z powrotem do formularza logowania, jeżeli to nieuprawniony użytkownik
header("Location: logowanie.html"); }
?>
<html>
<head>
<title>Użytkownik zalogowany</title>
<meta http-equiv=content-type content="text/html; charset=utf-8">
</head>
<body>
<? echo "$wyswietlany_blok"; ?> </body>
</html>
Na wszelki wypadek podaję jeszcze skrypt do logowania
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <h1>Formularz logowania
</h1> <form method="post" action="logowanie.php"> <input type="text" name="nazwa"></p> <input type="password" name="haslo"></p> <p><input type="submit" name="submit" value="Logowanie"></p>
i tablę z MYSQL przechowującą użytkowników
CREATE TABLE `uzytkownicy` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`imie` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`nazwisko` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`nazwa` varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
`haslo` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Gdzie jest błąd teraz?
Z góry dzięki za odpowiedź