Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar

Člen
Avatar
:4.5.2014 8:59

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
Avatar
alfonz
Člen
Avatar
Odpovídá na
alfonz:4.5.2014 9:09

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
lmao
Avatar

Člen
Avatar
Odpovídá na alfonz
:4.5.2014 9:11

Pořád nic :(

 
Nahoru Odpovědět
4.5.2014 9:11
Avatar
alfonz
Člen
Avatar
alfonz:4.5.2014 9:20

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
4.5.2014 9:20
lmao
Avatar
alfonz
Člen
Avatar
Odpovídá na
alfonz:4.5.2014 9:21

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

Nahoru Odpovědět
4.5.2014 9:21
lmao
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.