Chcę nauczyć się programowania obiektowego. Niestety, kursy internetowe opierają się na nieco głupich przykładach, w stylu:
- zaszczekaj burku
- hau hau
Nie ma to przełożenia na realne problemy z jakimi stykamy się w programowaniu. W mojej książce, "PHP i MySQL. Vademecum profesjonalisty" także programowanie obiektowe nie zostało dobrze opisane. Postanowiłem więc spróbować napisać coś prostego. W moim przypadku był ro system rejestracji. Skrypt działa w 100%, chociaż nie jest dokończony (nie ma walidacji hasła, a walidacja loginu też nie jest w pełni skończona). Chodzi mi raczej o samą zasadę działania. Od razu mówię, że jest to mój PIERWSZY, obiektowy projekt pisany bez żadnego wzoru. Zależy mi na tym, żeby ktoś poradził, co należy zmienić.
<?php /* class connect{ function __construct(){ $polaczenie = @new mysqli('localhost', 'root', 'haslo', 'login'); if (mysqli_connect_errno() != 0){ echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>'; } } } */ class formularz{ function wyswietl(){ echo"<table> <form action='register.php' method='post'> <tr><td>Login:</td><td><input type='text' name='login'></td></tr> <tr><td>Password:</td><td><input type='password' name='pass'></td></tr> <tr><td><input type='submit' value='zarejestruj'></td></tr></form> </table>"; } } class walidacja extends formularz{ //dodawanie usera function __construct(){ $mysqli = new mysqli('localhost', 'root', 'haslo', 'login'); $login = $mysqli->real_escape_string($_POST['login']); $pass = $mysqli->real_escape_string($_POST['pass']); $this->wyswietl(); } else { if ($this->sprawdz_login($login) ){ $query = $mysqli->query("INSERT INTO login VALUE('" . $login . "', '" . $pass . "')"); if ($query){ } else { } } } } //Poprawność loginu function sprawdz_login($login){ $login = $_POST['login']; } else { return true; } } } $formularz = new walidacja; ?>
Na początku chciałem napisać klasę connect (obecnie jest zawarta w komentarzu), jednak miałem problem z wykorzystaniem jej, tzn. zależy mi, żeby w jednej klasie zawrzeć wszystkie dane dotyczące logowania do mysql i później żebym mógł w innych klasach wykorzystywać wszystkie metody mysqli. Niestety miałem z tym problem. Jeżeli ktoś wie jak to zrobić, to byłbym także wdzięczny za odpowiedź.
pozdrawiam
