Autor | Zpráva | ||
---|---|---|---|
quiet_user__ Profil * |
#1 · Zasláno: 13. 1. 2011, 20:08:33
Rád bych, aby se ověřovalo, zda-li již není daný záznam uveden v databázi (není-li již evidován).
Jelikož píšu v DIBI tuto složitější podmínky poprvé, rád bych se zeptal na postup. část, kdy určuji podmínky je zde: // send registration if (isset($_POST['reg-submit'])){ // completing all the mandatory data if($_POST['userFirstName']!="" && // first name is'nt empty $_POST['userLastName']!="" && // last name is'nt empty $_POST['userEmail']!="" && // user email is'nt empty $_POST['userPassword']!="" && // user password is'nt empty $_POST['userPasswordControl']!="" // password control is'nt empty ){ if(strlen($_POST['userPassword'])>=5){ if($_POST['userPassword']==$_POST['userPasswordControl']){ dibi::query('SELECT * FROM [users] WHERE %and', array(array('firstname' == $_POST['userFirstName']), array('lastname' == $_POST['userLastName']), array('email' == $_POST['userEmail'])) ); $time = Time(); $ipaddress = $_SERVER['REMOTE_ADDR']; $arr = array('firstname' => htmlspecialchars($_POST['userFirstName']), 'lastname' => htmlspecialchars($_POST['userLastName']), 'email' => htmlspecialchars($_POST['userEmail']), 'password' => md5($_POST['userPassword']), 'regtime' => $time, 'regip' => $ipaddress, 'lastclick' => 0, 'lastip' => $ipaddress, 'key' => 1,); echo("$msg->trueReg"); Náznak řešení je u prvního volání dibi a podmínky WHERE s %and... nějak nemůžu přijít na správný způsob zainkludování dotazu do podmínky a správného ověřování. Našel by se někdo, kdo by pomohl? Děkuji. |
||
joe Profil |
#2 · Zasláno: 13. 1. 2011, 22:55:44
1. Je jedno přes jakou databázovou vrstvu to děláš. To, že to je přes Dibi je úplně jedno.
2. Na ověření, jestli je klíč v poli se používá empty() nebo isset(), takže tedy: $_POST['userFirstName']!="" nahradit !empty($_POST['userFirstName']) apod. 3. Je zbytečné vybírat vše (*), lepší je spočítat záznamy nebo vybrat jeden povinný sloupec. 4. Proč chceš hledat uživatele se stejným jménem, příjmením a e-mailem? Stačí přece jen e-mail, je unikátní, tedy pokud se na jeden e-mail nemůže zaregistrovat více osob (proč by mělo?) 5. Nevím o tom, že by takový zápis byl v Dibi možný, nepoužívám to, ale je možné, že to tak nějak má fungovat, preferuji tento zápis: $result = dibi::query('SELECT * FROM [users] WHERE email = %s', $_POST['userEmail'])->fetch(); |
||
quiet_user__ Profil * |
#3 · Zasláno: 14. 1. 2011, 17:50:23
Super, díky moc. Chyby opraveny.
|
||
Časová prodleva: 13 let
|
0