Witam, mam na swojej stronie link rejestracja.php to którym naciśnięciu wyskakuje formularz z polami do rejestracji i mam teraz kilka pytań odnośnie samego procesu.
1.Czy skrypt rejestracji powinien być zawarty w tym samym pliku co formularz (bo coś ostatnio czytałem o niemieszaniu PHP z HTML-em )?
Czy np. powinno być tak zrobione, że po naciśnięciu przycisku “zarejestruj się” cała akcja przenosi się np. do pliku powiedzmy na to rejestracja2.php?
jak powinien wyglądać profesjonalnie taki skrypt bo ja narazie mam coś takiego
$imie = $_POST['imie'];
$nazwisko = $_POST['Nazwisko'];
$mail = $_POST['mail'];
mysql_connect ("localhost","root","")or die("Nie można się połączyć. Komunikat: ".mysql_error()."; Numer błędu: ".mysql_errno());
$sql = mysql_select_db("test") or die("Nie można pobrać".mysql_error()."; Numer błędu: ".mysql_errno());
@mysql_query("INSERT INTO uzytkownicy (Imie, Nazwisko, mail) VALUES('$imie', '$nazwisko', '$mail')");
echo "Zostałeś Zarejestrowany";
?>
wiem, że jak bym robił sprawę na poważnie to dochodzi zabawa z sesjami, ale tak się zastanawiam, że raczej profesjonalne strony w taki sposób rejestracji nie przeprowadzają dlatego zastanawiam się jak się to robi profesjonalnie.
Nie słyszałem, żeby był problem z mieszaniem HTML i PHP w jednym pliku. Powinno się oddzielać wygląd strony od jej działania, ale to już inna kwestia. Jeśli to jest jakaś prosta strona to możesz zrobić wszystko w jednym pliku, ale też nie musisz.
Co do samego skryptu to wymaga kilku poprawek. Po pierwsze nie sprawdzasz przed zapisaniem do bazy czy dane w zmiennych zawierają odpowiednie dane, czy są odpowiedniej długości, czy ktoś nie wpisał zamiast maila nr telefonu.
Druga sprawa to oczyszczenie danych z ewentualnego kodu, który ktoś mógłby wkleić w pole formularza i zniszczyć twoją bazę. Poczytaj o atakach “sql injection”. Warto oczyścić zmienne funkcjami trim, preg_replace, mysql_escape_string, strip_tags. Pisząc polecenia do bazy danych i wstawiając zmienne lepiej robić to poza cudzysłowem:
@mysql_query("INSERT INTO uzytkownicy (Imie, Nazwisko, mail) VALUES('".$imie."', '".$nazwisko."', '".$mail."')");
No i trzecia sprawa to nie sprawdzasz czy dane zapisały się do bazy poprawnie, jeśli zapis się nie powiedzie to użytkownik i tak zobaczy komunikat, że został zarejestrowany.
Slepciu narazie chodziło mi tylko o samą ideę,(narazie jestem na etapie nauki) wiem, że należy sprawdzić poprawność danych itp, itd, ale o wszystkich rzeczach nie wiedziałem. Dzięki.
i czy np ten kod mógłby być użyty na jakiejś stronce czy caly skrypt powinien być zapisany jako funkcja np. funkcion rejestruj()??
I jeszcze jedno
czy naprawdę jest aż tak złe pisanie polskich nazw np. przy funkcji czy id dla diva??
Nie polecał bym tego robić …przynajmniej bez modyfikacji. No chyba że nie zależy ci na bezpieczeństwie i masz gdzieś to, że ktoś może w w kilka chwil poważnie nabruździć.
A co by to miało mieć na celu?
Jak dla mnie w tej chwili nie miało by to tutaj zupełnie sensu.