Mam formularz do rejestracji. Mam tam jednego checkboksa. Potrzebuję, żeby przy dodawaniu użytkownika do bazy jeśli checkbox jest zaznaczony w odpowiednim miejscu ustawiała się jedynka.
Próbowałem to zrobić tak, że jeśli checkbox zaznaczony to ustawiam zmienną na 1 wysyłam do bazy:
Twój przykład też mi działa, ale gdy próbuję to dorzucić to kodu strony to nie osiągam efektu. Dla sprawdzenia dałem echo $p; po komunikacie o udanej rejestracji i nie wyświetla mi p.
O co może chodzić?
Wrzucam kod strony, może będzie pomocny:
<?php
include 'config.php';
db_connect();
// sprawdzamy czy user nie jest przypadkiem zalogowany
if(!$_SESSION['logged']) {
// je¶li zostanie naci¶nięty przycisk "Zarejestruj"
require_once('recaptchalib.php'); // dołączenie modułu reCAPTCHA
$privatekey = 'xx'; // prywatny klucz reCAPTCHA
$publickey = 'xx'; // publiczny klucz reCAPTCHA
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']);
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
// sprawdzamy czy wszystkie pola zostały wypełnione
if(empty($_POST['name']) || empty($_POST['password']) || empty($_POST['password2']) || empty($_POST['email'])) {
echo '
Musisz wypełnić wszystkie pola.';
if ($_POST['prow'] == 1)
$p=1;
else
$p=0;
// sprawdzamy czy podane dwa hasła s± takie same
} elseif($_POST['password'] != $_POST['password2']) {
echo '
Podane hasła różnią się od siebie.';
// sprawdzamy poprawno¶ć emaila
} elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
echo '
Podany email jest nieprawidłowy.';
}
elseif (!$resp->is_valid) {
echo '
Proszę wpisać poprawnie wyrazy z obrazka.';
}
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 '
Już istnieje użytkownik z takim loginem lub adresem e-mail.';
} 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_prow_status`, `user_regdate`) VALUES ('{$_POST['name']}', '{$_POST['password']}', '{$_POST['email']}', '{$p}', '".time()."')");
echo '
Zostałeś poprawnie zarejestrowany! Możesz się teraz zalogować. ' ;
echo $p;
}
}
}
// tworzenie formularza HTML
echo <<< KONIEC
Login:
Hasło:
Powtórz hasło:
Adres e-mail:
Zaznacz jeśli jesteś prowadzącym:
KONIEC;
echo recaptcha_get_html($publickey); // wyświetlanie reCAPTCHA
echo <<< KONIEC
KONIEC;
} else {
echo '
Jeste¶ już zalogowany, więc nie możesz stworzyć nowego konta.
[Powrót]';
}
db_close();
?>
[/code]