• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Rejestracja + Logowanie (uporządkowanie kodu)

VPS Starter Arubacloud
+1 głos
2,565 wizyt
pytanie zadane 26 września 2015 w HTML i CSS przez Krzysiek_34 Mądrala (6,050 p.)

Witam.

Przystąpiłem do tworzenia rejestracji + logowania. Na początek postanowiłem uporządkować kod, aby wszystko działało jak należy.

Na stronie głównej mam na górze przycisk LOGOWANIE w pliku index.php i po jego kliknięciu mam 2 przyciski: "Logowanie" i "Rejestracja".

<input type="submit" value="Logowanie" class="inpLogowanie">
<a href="rejestracja.html" class="inpRejestracja">Rejestracja</a>

Gdy klikam na przycisk "Rejestracja", to uruchamiam plik rejestracja.html, w którym widnieje pole formularza do nazwy użytkownika, e-maila i hasła, natomiast na dole jest przycisk "Załóż konto".

<form method="post" action="formularz.php">
	<label for="username">Nazwa użytkownika:</label>
	<input type="text" placeholder="Login" id="username" name="username" maxlength="30" class="inpUsername">
	<label for="email">Adres e-mail:</label>
	<input type="email" placeholder="Twój adres e-mail" id="email" name="email" class="inpEmail">
	<label for="password">Hasło:</label>
	<input type="password" placeholder="Hasło" id="password" name="password" class="inpPassword">
	<input type="submit" value="Załóż konto" class="inpKonto">
</form>

Po kliknięciu na przycisk "Załóż konto", uruchamiam plik formularz.php.

Mam następujące pytanie.

Aby to wszystko było uporządkowane, to do pliku index.php muszę umieścić dodatkowo kod PHP, zmienić nazwę pliku rejestracja.html na register.php i do pliku formularz.php wprowadzić dane użytkownika?

2 odpowiedzi

+1 głos
odpowiedź 26 września 2015 przez Krzysiek_34 Mądrala (6,050 p.)
Biorę pod uwagę tylko ten skrypt, który podobno jest dobry i mam zamiar wzorować się na nim:

http://www.forumweb.pl/gotowe-komponenty-www/skrypt-system-rejestracji-i-logowania-profil-2-0,88605

 

Staram się to ogarnąć i uporządkować, aby skrypt działał jak należy. W sieci jest wiele przykładów jak wygląda skrypt do rejestracji i logowania, ale każdy stosuje nieco inne metody, np. niektórzy stosują PDO albo piszą bez PDO, następni stosują mysql (podobno zła metoda), a lepiej stosować mysqli. Na końcu mam zamiar przetestować ten skrypt przy pomocy XAMPP-a, aby przekonać się czy działa jak należy.
komentarz 26 września 2015 przez Schizohatter Nałogowiec (39,600 p.)
Tak, to jest dobry skrypt.

A co do używania PDO czy mysqli - wszystko zależy od daty opublikowania tego tutorialu. W ciągu ostatnich lat PHP ewoluowało.
komentarz 26 września 2015 przez writen Nałogowiec (29,060 p.)
Tak naprawdę nie ma znaczenia czy korzystasz z PDO czy mysqli. Obie klasy są dobre.

PDO jednak jest według mnie wygodniejsze. Posiada dużo ciekawych metod oraz potrafi obsługiwać wiele różnych rodzai baz danych.

Standardowe funkcje mysql_ są już przestarzałe, niebezpieczne, szczególnie dla początkujących. Nie należy ich już używać.
komentarz 26 września 2015 przez Boshi VIP (100,240 p.)
@up zapomniałeś dodać- usunięte z wersji 7 php
komentarz 26 września 2015 przez writen Nałogowiec (29,060 p.)
Racja.

Nie mogę się doczekać kiedy PHP7 stanie się standardową wersją na większości hostingów. Niestety nie prędko to się stanie.
0 głosów
odpowiedź 26 września 2015 przez Ehlert Ekspert (212,630 p.)
Pliki PHP powinno się dzielić wg funkcjonalności skryptów, które zawierają. Jeśli będziesz w jednym pliku umieszczać funkcję która wylogowuje i coś jeszcze z tym niepowiązane to prędzęj czy później się pogubisz.

Zrób jak w projekcie obiektowym. Weź kartkę ołowek i pomyśl o funkcjonalności którą ma spełniać to co tworzysz. Rozbij to na pliki, funkcje/obiekty. Z takim planem możesz zaczynać pisać.
komentarz 26 września 2015 przez Krzysiek_34 Mądrala (6,050 p.)

Ja już chyba się poddaje. Próbowałem różnych sposobów i ciagle jest źle. Po kliknięciu na przycisk "Rejestracja" na samym dole strony odnośnie pliku rejestracja.php nadal wyskakują znaki kodu z PHP. Albo ja coś źle robię albo ten kod jest błędny.

Pomoże ktoś z Was? Gdzie tu jest błąd?

<form method="post" action="">
	<label for="username">Nazwa użytkownika:</label>
	<input type="text" placeholder="Login" id="username" name="username" maxlength="30" class="inpUsername">
	<label for="email">Adres e-mail:</label>
	<input type="email" placeholder="Twój adres e-mail" id="email" name="email" class="inpEmail">
	<label for="password">Hasło:</label>
	<input type="password" placeholder="Hasło" id="password" name="password" class="inpPassword">
	<input type="submit" value="Załóż konto" class="inpKonto">
</form>
<?php

require 'includes/config.php';
require 'includes/header.php';

if ($_POST) {

    $login = $db->real_escape_string(htmlspecialchars(trim($_POST['login'])));
    $password = $_POST['password'];
    $passwordVerify = $_POST['password_v'];
    $email = $db->real_escape_string(htmlspecialchars(trim($_POST['email'])));
    $emailVerify = $db->real_escape_string(htmlspecialchars(trim($_POST['email_v'])));

    $checkLogin = $db->query("SELECT COUNT(*) FROM users WHERE login = '$login'")->fetch_row();
    $checkEmail = $db->query("SELECT COUNT(*) FROM users WHERE email = '$email'")->fetch_row();

    $errors = array();

    if (empty($login) || empty($email) || empty($emailVerify) || empty($password) || empty($passwordVerify)) {
        $errors[] = 'Proszę wypełnić wszystkie pola';
    }

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = 'Podany adres e-mail jest niepoprawny';
    }

    if ($checkLogin[0] > 0) {
        $errors[] = 'Ten login jest już zajęty';
    }
    if ($checkEmail[0] > 0) {
        $errors[] = 'Ten e-mail jest już używany';
    }

    if ($password != $passwordVerify) {
        $errors[] = 'Podane hasła się nie zgadzają';
    }
    if ($email != $emailVerify) {
        $errors[] = 'Podane adresy e-mail się nie zgadzają';
    }

    if (!empty($errors)) {
        foreach ($errors as $error) {
            echo '<p class="error">'.$error.'</p>';
        }
    } else {

        $password = password_hash($password, PASSWORD_BCRYPT);

        $result = $db->query("INSERT INTO users (login, email, password) VALUES('$login', '$email', '$password')");

        if (!$result) {
            echo '<p class="error">Wystąpił błąd przy rejestrowaniu użytkownika.<br>'.$db->error.'</p>';
        } else {
            echo '<p class="success">'.$login.', zostałeś zarejestrowany.
            <br><a href="login.php">Logowanie</a></p>';
        }
    }
}
?>

 

Podobne pytania

0 głosów
1 odpowiedź 423 wizyt
pytanie zadane 2 grudnia 2018 w PHP przez jakubmark Początkujący (370 p.)
+16 głosów
5 odpowiedzi 726 wizyt
0 głosów
1 odpowiedź 537 wizyt
pytanie zadane 27 stycznia 2022 w Java przez JanK Nowicjusz (120 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...