Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Zdravím,
napsal jsem si tuto naprosto dementní funkci na registraci, ovšem něco v ní je špatně. Samozřejmě ani po půlhodině hledání jsem to nenašel a proto prosím vás - programátory, jestli mi nepomůžete :)

function registerUser($email, $password, $firstname, $lastname) {
        connectDatabase();
        $query = Db::queryOne('SELECT id FROM users WHERE email = ?', $email);
        if ($query['id'] == "") {
            $message = "text
http://peopleguild.com/auth/activate.php&email=" . $email . ".
text";
            $headers = "MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit";
            mail($email, "PG Account verify", $message, $headers);
            Db::query('INSERT INTO users VALUES ("", ?, ?, ?, ?, "", "", "", "", "", "false")', $email, $password, $firstname, $lastname);
        } else {
            echo'<p>Sorry, but this e-mail is already registered.</p>';
        }
    }

A tabulka v DB (users) je:

id      int(10)
email   varchar(100)    utf8_czech_ci
password        varchar(100)    utf8_czech_ci
firstname       varchar(100)    utf8_czech_ci
lastname        varchar(100)    utf8_czech_ci
adress  varchar(100)    utf8_czech_ci
school  varchar(100)    utf8_czech_ci
work            varchar(100)    utf8_czech_ci
religious       varchar(100)    utf8_czech_ci
about   varchar(850)    utf8_czech_ci
verify  varchar(5)      latin1_swedish_ci

Předem díky :)

Editováno 4.5.2014 9:00
Odpovědět 4.5.2014 8:59
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Odpovídá na Michal Vašíček
Denis Homolík (Alfonz):

Podle mě je chyba v

if ($query['id'] == "")

Wrapper bude házet spíš prázdné pole takže by to mělo být spíš takto

if ($query == false)

a pro posílání Emailu by se mělo použíat funkce mb_send_mail. Podporuje UTF-8 kódování. Před odesíláním mailu ještě přidej toto(nebo na začátek stránky)

mb_internal_encoding("UTF-8");
Nahoru Odpovědět 4.5.2014 9:09
Vše je možné, dokud si to myslíte!
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Nahoru Odpovědět 4.5.2014 9:11
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Denis Homolík (Alfonz):

Zkontroluj si co vrací DB když nic nenajde pak si tak přidej výstupy(echo nebo print_r) a zkontroluj jestli vše vrací výsledek podle tvého očekávání.
A místo používání echa na výsledné stránce(ne během testování) radši hodnoty vracej.

Editováno 4.5.2014 9:20
Nahoru Odpovědět  +1 4.5.2014 9:20
Vše je možné, dokud si to myslíte!
Avatar
Odpovídá na Michal Vašíček
Denis Homolík (Alfonz):

Zapoměl jsem klinout na odpovědět. :)

Nahoru Odpovědět 4.5.2014 9:21
Vše je možné, dokud si to myslíte!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.