[PHP] skrypt ro rejestracji

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 )?

  1. 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.

pozdrawiam

swinia22

jeżeli palanujesz większą stronę opartą na systemie szablonów np smarty, to jak najbardziej rozdzielasz.

W przeciwnym wypadku, jeśli tym bardziej nie masz bladego pojęcia o tempatkach czy OO - nie zawracaj sobie tym gitary.

Czy i gdzie formularz będzie kierował, to już bardziej indywidualna kwestia kodera, nie zaś jakiś przymus.

W kwestii kodu

  1. sprawdzaj czy zmienne POST istnieją np. isset()

  2. filtruj otzrymane zmienne, zwłaszcza gdy zapisujesz je w bazie! !!

  3. korzystaj z sesji

  4. szyfruj, hashuj hasła itd.

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.

To tak na szybko co mi się nasunęło.

dzięki wam na posty.

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.

Tak.

a mam jeszcze takie pytanie, żeby nie wpadać w złe nawyki

bo nie wiem za bardzo jak się do tego zabrać.

Robię najpierw szkielet strony w html-u a później chcę do tego dopisywać skrypty

czy jest to dobre podejście czy raczej nie powinienem tego robić

Ja tak robię, najpierw szablon graficzny w programie do grafiki, potem tnę szablon i robię wersję HTML, a potem wkomponowuję htm w php.

Zaplanowanie Strony >> Szata Graficzna >> HTML & CSS >> PHP & MySQL >>ew. jakieś “zabiegi kosmetyczne” ;]