form validation kérdés....

hellstar képe

Hahó

Kérdésem lenne, hogy a hiba, mert valahogy ez nem akar lefutni:

function lemezhaboru_validate($form_id, $form_values) {
global $user;

// megnézi, hogy csak regisztrált felhasználó pontozzon....

if ($user->name == '')
{
form_set_error('', t('Kérlek regisztrálj és jelentkezz be! Csak az oldalra regisztrált és bejelentkezett felhasználók értékelhetnek. Köszönöm.'));
}

//megnézi, hogy a felhasználó már pontozta-e az adott lemezt

if exists(db_query("select lemezcim, ertekelo from {lemezhaboru} where ertekelo='%s' and lemezcim='%s'", $user->name , $form_values['lemezek']))

{
form_set_error('', t('Ezt a lemezt már pontoztad!'));
}
}

komplett adatbázis, kód, előzmények ITT

andrew képe

1: ha ezt a kódot továbbra is egy node bevitelekor adtad meg mint php bemenet akkor már az elejétől fogva felejtős a dolog, mert nem fog menni, ennek egy külön modulban kell lennie.

2: ez milyen fv: 'exists' ?! ilyen nincs php-ban, de ha lenne akkor sem egy db_query() fv visszatérési értékét kellene vele ellenőrizni...

szerk:

3: ahogy most ellenőrzöd azt, hogy bejelentkezette-e valaki vagy sem az vendég látogató esetén úgy működik, hogy kiírja a szöveged, majd rendben továbbmegy mintha semmi nem történt volna...

4: adatbázisban sokkal inkább célszerűbb a $user->uid értéket tárolni, mert ezt nem tudja megváltoztatni a későbbiekben a felhasználó és az admin sem, nem úgy mint a felhasználó nevet.

stb.
nem akarlak megbántani de ez az egész hibáktól és megvalósítási elképzelésektől hemzseg. ha azt akarod, h érdemben is tudjon segíteni a nép, akkor legközelebb kicsit több infót is közölhetnél a megvalósítással kapcsolatban, vagy hogy minek és hogyan kellene mennie...

0
0