![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam następujący kod: Kod if(!$_SESSION['logged']) { // jeśli zostanie naciśnięty przycisk "Zarejestruj" if(isset($_POST['name'])) { // filtrujemy dane... $_POST['name'] = clear($_POST['name']); $_POST['password'] = clear($_POST['password']); $_POST['password2'] = clear($_POST['password2']); $_POST['email'] = clear($_POST['email']); // sprawdzamy czy wszystkie pola zostały wypełnione if(empty($_POST['name']) || empty($_POST['password']) || empty($_POST['password2']) || empty($_POST['email'])) { echo '<p>Musisz wypełnić wszystkie pola.</p>'; // sprawdzamy czy podane dwa hasła są takie same } elseif($_POST['password'] != $_POST['password2']) { echo '<p>Podane hasła różnią się od siebie.</p>'; // sprawdzamy poprawność emaila } elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) { echo '<p>Podany email jest nieprawidłowy.</p>'; } else { // sprawdzamy czy są jacyś uzytkownicy z takim loginem lub adresem email $result = mysql_query("SELECT Count(user_id) FROM `users` WHERE `user_name` = '{$_POST['name']}' OR `user_email` = '{$_POST['email']}'"); $row = mysql_fetch_row($result); if($row[0] > 0) { echo '<p>Już istnieje użytkownik z takim loginem lub adresem e-mail.</p>'; } else { // jeśli nie istnieje to kodujemy haslo... $_POST['password'] = codepass($_POST['password']); // i wykonujemy zapytanie na dodanie usera mysql_query("INSERT INTO `users` (`user_name`, `user_password`, `user_email`, `user_regdate`) VALUES ('{$_POST['name']}', '{$_POST['password']}', '{$_POST['email']}', '".time()."')"); echo '<p>Zostałeś poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>.</p>'; } } } // wyświetlamy formularz echo '<form method="post" action="register.php"> <p> Login:<br> <input type="text" value="'.$_POST['name'].'" name="name"> </p> <p> Hasło:<br> <input type="password" value="'.$_POST['password'].'" name="password"> </p> <p> Powtórz hasło:<br> <input type="password" value="'.$_POST['password2'].'" name="password2"> </p> <p> E-mail:<br> <input type="text" value="'.$_POST['email'].'" name="email"> </p> <p> Wyrażam zgodę na przetwarzanie moich danych osobowych przez Sommerzbi w celach marketingowych:<br> <input type="checkbox" value="'.$_POST['check'].'" name="check"> </p> <p> <input type="submit" value="Zarejestruj"> </p> </form>'; } else { echo '<p>Jesteś już zalogowany, więc nie możesz stworzyć nowego konta.</p> <p>[<a href="index.php">Powrót</a>]</p>'; } Do formularza dodałem checkboxa. Próbowałem jakoś dodać instrukcję if na sprawdzenie czy został zaznaczony, ale bezskutecznie. Przedszkolak jestem, więc proszę o pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 308 Pomógł: 13 Dołączył: 31.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Musisz dodać jakąś wartość do 'value' i wtedy sprawdzić w if czy pole w POST zawiera tą wartość. Musiałbym sprawdzić, ale wydaje mi się, że jeśli nie jest zaznaczony to nie ma tego pola w $_POST. Zobacz sobię print_r($_POST) po wysłaniu formularza.
Ten post edytował sannin 22.12.2014, 12:56:09 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Domyslam sie ze skoro jest to zgoda na przetwarzanie danych to mozesz poprostu zrobic tak:
czyli wstawiasz do tabeli wartosc zmiennej $checkbox_value = 1 albo $checkbox_value = 0. Ten post edytował rad11 22.12.2014, 13:06:23 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podpowiedzi.
Niestety jestem takim asem, że nie poradziłem sobie. Doszedłem do takiego czegoś: Kod <?php // sprawdzamy czy user nie jest przypadkiem zalogowany if(!$_SESSION['logged']) { // jeśli zostanie naciśnięty przycisk "Zarejestruj" if(isset($_POST['name'])) { // filtrujemy dane... $_POST['name'] = clear($_POST['name']); $_POST['password'] = clear($_POST['password']); $_POST['password2'] = clear($_POST['password2']); $_POST['email'] = clear($_POST['email']); $_POST['check'] = clear($_POST['check']); // sprawdzamy czy wszystkie pola zostały wypełnione if(empty($_POST['name']) || empty($_POST['password']) || empty($_POST['password2']) || empty($_POST['email']) || empty($_POST['check'])) { echo '<p>Musisz wypełnić wszystkie pola.</p>'; // sprawdzamy czy podane dwa hasła są takie same } elseif($_POST['password'] != $_POST['password2']) { echo '<p>Podane hasła różnią się od siebie.</p>'; // sprawdzamy poprawność emaila } elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) { echo '<p>Podany email jest nieprawidłowy.</p>'; } else { // sprawdzamy czy są jacyś uzytkownicy z takim loginem lub adresem email $result = mysql_query("SELECT Count(user_id) FROM `users` WHERE `user_name` = '{$_POST['name']}' OR `user_email` = '{$_POST['email']}'"); $row = mysql_fetch_row($result); if($row[0] > 0) { echo '<p>Już istnieje użytkownik z takim loginem lub adresem e-mail.</p>'; } else { // jeśli nie istnieje to kodujemy haslo... $_POST['password'] = codepass($_POST['password']); // i wykonujemy zapytanie na dodanie usera mysql_query("INSERT INTO `users` (`user_name`, `user_password`, `user_email`, `user_regdate`) VALUES ('{$_POST['name']}', '{$_POST['password']}', '{$_POST['email']}', '".time()."')"); echo '<p>Zostałeś poprawnie zarejestrowany! Możesz się teraz <a href="login.php">zalogować</a>.</p>'; } } } // wyświetlamy formularz echo '<form method="post" action="register.php"> <p> Login:<br> <input type="text" value="'.$_POST['name'].'" name="name"> </p> <p> Hasło:<br> <input type="password" value="'.$_POST['password'].'" name="password"> </p> <p> Powtórz hasło:<br> <input type="password" value="'.$_POST['password2'].'" name="password2"> </p> <p> E-mail:<br> <input type="text" value="'.$_POST['email'].'" name="email"> </p> <p> Wyrażam zgodę na przetwarzanie moich danych osobowych przez Sommerzbi w celach marketingowych:<br> <input type="checkbox" value="'.$_POST['check'].'" name="check"> </p> <p> <input type="submit" value="Zarejestruj"> </p> </form>'; } else { echo '<p>Jesteś już zalogowany, więc nie możesz stworzyć nowego konta.</p> <p>[<a href="index.php">Powrót</a>]</p>'; } db_close(); ?> Teraz po wciśnięciu "Zarejestruj" wyskakuje komunikat musisz wypełnić wszystkie pola i nieważne czy checkbox jest odhaczony czy też nie. Przepraszam za kłopot, gdyż wiem, że są to podstawy totalne. Mam nadzieję, że nie zbluzgacie mnie ![]() Zrobiłem w value 1 i zaczęło działać. Kod <input type="checkbox" value="1" name="check"> Zamykam temat ![]() Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 02:24 |