To jest add_admin.php, który dodaje administratorów do bazy danych:
<? //połączenie z bazą danych require_once('../mysql_connect.php'); //funkcja wstawiaąca przed znakami specjalnymi znak odwrotnego ukośnika. function escape_data ($data){ //Potrzebne połączenie } } //tablica typu array na błędy if($_POST['wyslij']){ //sprawdzanie, czy wszystkie pola są wypełnione //nazwa admina $errors[] = "Nie podano nazwy admina."; } else{ $name = escape_data($_POST['name']); } $errors[] = "Nie podano adresu e-mail admina."; } else{ $email = escape_data($_POST['email']); } //haslo $errors[] = "Nie podano hasła admina."; } else{ $password = escape_data($_POST['password']); } //jeśli nie ma błędów //zapytanie $query = "INSERT INTO admins (name, email, password, date) VALUES ('$name', '$email', SHA('$password'), NOW())"; //jeśli zapytanie zostało przyjęte if($result){ } else{ } } //a jeśli błędy są else{ foreach($errors AS $raport){ } } } ?>
A to jest plik logowanie.php:
<? //jeśli formularz został wysłany if($_POST['wyslij']){ //połączenie z bazą danych require_once('../mysql_connect.php'); //////////////////////FUNCTION ESCAPE DATA////////////////////////////// //funkcja wstawiaąca przed znakami specjalnymi znak odwrotnego ukośnika. function escape_data ($data){ //Potrzebne połączenie } } ////////////////////KONIEC FUNKCJI ESCAPE DATA////////////////////////// //tablica typu array przechowująca błędy //sprawdzanie pól formularza $errors [] = "Nie podano adresu mailowego."; } else{ $email = escape_data($_POST['email']); } //haslo $errors [] = "Nie podano hasła."; } else{ $password = escape_data($_POST['password;']); } //jeśli nie ma błędów //pobranie identyfikatora administratora i nazwy do kombinacji loginu i hasła //zapytanie $query = "SELECT admin_id, name FROM admins WHERE email='$email' AND password=SHA('$password')"; //jeśli zapytanie zwróciło jakiś rekord if($row){ /////////////////////////////USTAWIENIE SESJI/////////////////////////// //ustawienie danych sesji $_SESSION['admin_id'] = $row[0]; $_SESSION['name'] = $row[1]; ///////////////////////KONIEC USTAWIANIA SESJI////////////////////////// //przekierowanie do strony loggedin.php //definicja adresu URL ///////////////////////////DEFINICJA ADRESU URL //////////////////////// //sprawdzenie końcowego ukośnika //definicja adresu URL - ciąg dalszy //odcinamy ukośnik } //definicja adresu URL - ciąg dalszy //dodanie strony $url .= './loggedin.php'; ////////////////////KONIEC DEFINICJI ADRESU URL //////////////////////// //przekierowanie do wcześniej zdefiniowanego adresu url } //koniec klauzuli wyyrażenia warunkowego if($row) //a jeśli zapytanie nie zwróciło żadnego rekordu else{ } } //zamknięcie klałzuli wyrażenia warunkowego if(empty($errors)) //koniec połączenia z bazą danych } //zamknięcie klałzuli wyrażenia warunkowego if($_POST['wyslij']) ?>
Problem jest następujący. Gdy dodaję admina i wpisuję jego odpowiednie dane, do panelu logowania wyświetla mi się za każdym razem:
Cytat
Wprowadzone dane są niepoprawne!
Tabela bazy danych admins została utworzona w serwisie cba.pl przez PHPMyAdmina.