Tutaj miałem problem z poprawnym wysłaniem danych do bazy, przez walidację którą napisałem(kod):
if(isset($_POST['reguser'])){$username)){$errors[] = 'You have to type your username !';
Tutaj miałem problem z poprawnym wysłaniem danych do bazy, przez walidację którą napisałem(kod):
if(isset($_POST['reguser'])){$username)){$errors[] = 'You have to type your username !';
Pisałem już w drugim wątku, w momencie gdy wysyłasz submit ustawiasz reguser i nie dochodzisz do warunku wykonania SQL. Twoje pół-puste rekordy nie dodają się jak klikniesz submit, ale jak wejdziesz na stronę (wpisz url w przeglądarkę i zobacz).
Innymi słowy query powinno zostać wykonane jak errors[] jest puste. Pozbądź się też else.
PS
Walidacja w JS może służyć tylko jako ułatwienie wprowadzania danych dla zwykłego usera (responsywność, zmniejszenie liczby wymienianych danych z serwerem), ale nigdy jako zabezpieczenie.
Jakoś się udało :o , ale mam jeszcze jeden problem, Mianowicie, chciałbym zrobić tak, że jak user wpisze jakiś login i on będzie zajęty, to żeby go nie zarejestrowało. Próbowałem z takim zapytaniem, ale nie działa:
mysql_query("INSERT INTO users (username, password) VALUES ('$_POST[username]', '$_POST[password]') WHERE NOT EXISTS (SELECT username FROM users WHERE username='$_POST[username]') LIMIT 1"); [/code]
Masz dwie opcje:
Rozbij na dwa zapytania. Pierwszy wybierze usera o podanym nicku i wykona na nim COUNT. Jeśli zwrócona wartość wynosi zero (nie znaleziono rekordu o tym nicku), to dodajesz użytkownika (czyli drugie zapytanie z INSERT). Przy czym ta opcja musi istnieć jako element jednej transakcji. Gdyż przykładowo scheduler mógłby przy równoległym przetwarzaniu ustawić do wykonania to tak:
Select1 -> Select2 -> Insert1/Insert2.
Widzisz o której post wysłany ? Tak do tej pracowałem nad kodem, ale w końcu się udało Dzięki wielkie za pomoc !