Prosiłbym bardzo o pomoc. Jaki może być problem? Może istotna informacją będzie, że mam już zainstalowany mod Points System, może z nim koliduje? Czekam na rady, pozdrawiam
Could not update users table
DEBUG MODE
SQL Error : 1064 Something is wrong in your syntax obok ' user_klass=, user_race=, user_alignment= WHERE user_id = 2' w linii 2
UPDATE phpbb_users SET user_email
(...)
, user_sig_bbcode_uid = 'afd16fee67', user_viewemail = 1, user_aim = '', user_yim = '5363601', user_msnm = '', user_attachsig = 1, user_allowsmile = 1, user_allowhtml = 0, user_allowbbcode = 1, user_allow_viewonline = 1, user_notify = 0, user_notify_pm = 1, user_popup_pm = 1, hide_quick_reply = 0, user_timezone = 0, user_dateformat = 'd M Y h:i a', user_lang = 'polish', user_style = 1, user_active = 1, user_actkey = '', user_element= , user_klass=, user_race=, user_alignment= WHERE user_id = 2
Line : 525
File : usercp_register.php
Problem z RPG Fields
Problem z RPG Fields
Witam, zainstalowałem mod o nazwie RPG Fields (4 nowe opcje w profilu) na forum o wersji 2.0.15 i niby wszystko w porządku, ale przy akutalizacji profilu pojawia się taki error:
Bledne jest zapytanie SQL w pliku usercp_register.php - to ktore, masz wyswietlone powyzej. Prawdopodobnie chodzi o to, ze po kilku "=" nie ma zadnych wartosci. Niestety, nie wiem, jakie wartosci powinny sie tam znalesc...
A to jest cos, co dodales do tego pliku instalujac moda
Podeslij mi najwyzej na maila albo udostepnij plik przed zmiana, po zmianie oraz instrukcje samego moda - moze bede w stanie cos pomoc.
A to jest cos, co dodales do tego pliku instalujac moda
To jet dokładnie to co dodałem do pliku usercp_register.php:
Juz mi rece opadaja od tego wszystkiego 
Kod: Zaznacz cały
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]------------------------------------------
# this is a partial search : the full line is longer
#
$sql = "UPDATE " . USERS_TABLE . "
SET "
WHERE user_id = $user_id";
#
#-----[ IN-LINE FIND ]------------------------------------------
#
$avatar_sql . "
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, user_element=$element , user_klass=$klass, user_race=$race, user_alignment=$alignment
#
#-----[ FIND ]------------------------------------------
# this is a partial search : the full line is longer
#
$sql = "INSERT INTO " . USERS_TABLE . "
VALUES (
#
#-----[ IN-LINE FIND ]------------------------------------------
#
, user_style
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, user_element , user_klass, user_race, user_alignment
#
#-----[ IN-LINE FIND ]------------------------------------------
#
, $user_style
#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, '$element' , '$klass', '$race', '$alignment'
#
#-----[ FIND ]------------------------------------------
#
$smilies_status = ( $userdata['user_allowsmile'] && $board_config['allow_smilies'] ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
if ( $userdata['user_level'] =='1' )
{
$user_field_lvl = 3;
}
else if ( $userdata['user_level'] =='2' )
{
$user_field_lvl = 2;
}
else
{
$user_field_lvl = 1;
}
$csql = "SELECT *
FROM " . RPG_FIELDS_TABLE ."
WHERE field_type = 1
AND field_level < ".$user_field_lvl;
$cresult = $db->sql_query($csql);
if( !$cresult )
{
message_die(GENERAL_ERROR, "Couldn't obtain rpg fields from database", "", __LINE__, __FILE__, $sql);
}
$rpg_fields_class = $db->sql_fetchrowset($cresult);
$filename_list_class = "";
for( $i = 0; $i < count($rpg_fields_class); $i++ )
{
$selected = ( $userdata['user_klass'] == $rpg_fields_class[$i]['field_id'] ) ? ' selected="selected"' : '';
$filename_list_class .= '<option value="' . $rpg_fields_class[$i]['field_id'] . '"'.$selected.' >' . $rpg_fields_class[$i]['field_name'] . '</option>';
}
$esql = "SELECT *
FROM " . RPG_FIELDS_TABLE ."
WHERE field_type = 2
AND field_level < ".$user_field_lvl;
$eresult = $db->sql_query($esql);
if( !$eresult )
{
message_die(GENERAL_ERROR, "Couldn't obtain rpg fields from database", "", __LINE__, __FILE__, $sql);
}
$rpg_fields_element = $db->sql_fetchrowset($eresult);
$filename_list_element = "";
for( $i = 0; $i < count($rpg_fields_element); $i++ )
{
$selected = ( $userdata['user_element'] == $rpg_fields_element[$i]['field_id'] ) ? ' selected="selected"' : '';
$filename_list_element .= '<option value="' . $rpg_fields_element[$i]['field_id'] . '"'.$selected.'>' . $rpg_fields_element[$i]['field_name'] . '</option>';
}
$rsql = "SELECT *
FROM " . RPG_FIELDS_TABLE ."
WHERE field_type = 3
AND field_level < ".$user_field_lvl;
$rresult = $db->sql_query($rsql);
if( !$rresult )
{
message_die(GENERAL_ERROR, "Couldn't obtain rpg fields from database", "", __LINE__, __FILE__, $sql);
}
$rpg_fields_race = $db->sql_fetchrowset($rresult);
$filename_list_race = "";
for( $i = 0; $i < count($rpg_fields_race); $i++ )
{
$selected = ( $userdata['user_race'] == $rpg_fields_race[$i]['field_id'] ) ? ' selected="selected"' : '';
$filename_list_race .= '<option value="' . $rpg_fields_race[$i]['field_id'] . '"'.$selected.'>' . $rpg_fields_race[$i]['field_name'] . '</option>';
}
$asql = "SELECT *
FROM " . RPG_FIELDS_TABLE ."
WHERE field_type = 4
AND field_level < ".$user_field_lvl;
$aresult = $db->sql_query($asql);
if( !$aresult )
{
message_die(GENERAL_ERROR, "Couldn't obtain rpg fields from database", "", __LINE__, __FILE__, $sql);
}
$rpg_fields_alignment = $db->sql_fetchrowset($aresult);
$filename_list_alignment = "";
for( $i = 0; $i < count($rpg_fields_alignment); $i++ )
{
$selected = ( $userdata['user_alignment'] == $rpg_fields_alignment[$i]['field_id'] ) ? ' selected="selected"' : '';
$filename_list_alignment .= '<option value="' . $rpg_fields_alignment[$i]['field_id'] . '"'.$selected.'>' . $rpg_fields_alignment[$i]['field_name'] . '</option>';
}
if ( $board_config['display_class'] )
{
$template->assign_block_vars( 'rpg_fields_class', array());
}
if ( $board_config['display_element'] )
{
$template->assign_block_vars( 'rpg_fields_element', array());
}
if ( $board_config['display_race'] )
{
$template->assign_block_vars( 'rpg_fields_race', array());
}
if ( $board_config['display_alignment'] )
{
$template->assign_block_vars( 'rpg_fields_alignment', array());
}
#
#-----[ FIND ]------------------------------------------
#
'SMILIES_STATUS' => $smilies_status,
#
#-----[ AFTER, ADD ]------------------------------------------
#
'S_FILENAME_CLASS' => $filename_list_class,
'S_FILENAME_ELEMENT' => $filename_list_element,
'S_FILENAME_RACE' => $filename_list_race,
'S_FILENAME_ALIGNMENT' => $filename_list_alignment,
'S_NAME_CLASS' => $userdata['user_class'],
'S_NAME_ELEMENT' => $userdata['user_element'],
'S_NAME_RACE' => $userdata['user_race'],
'S_NAME_ALIGNMENT' => $userdata['user_alignment'],
'L_CLASS' =>$lang['rpg_fields_type_class'],
'L_ELEMENT' =>$lang['rpg_fields_type_element'],
'L_RACE' =>$lang['rpg_fields_type_race'],
'L_ALIGNMENT' =>$lang['rpg_fields_type_alignment'],
'RPG_FIELDS_PROFILE' => $lang['rpg_fields_profile'],Musisz przesledzic, co dzieje sie ze zmiennymi:
Bo wyglada na to, ze przed wywolaniem zapytania, ktore powoduje blad moga byc puste. Na razie jest to jedna z hipotez.
EDIT: mozliwe, ze brakuje apostrofow. W linijce, w ktorej jest to zapytanie kazda z tych zmiennych zawrzyj w pojedynczych apostrofach. Moze pomoze o tyl, ze zapytanie sie wykona. Hmm... albo chyba byla taka funkcja, ktora dodaje apostrofy do stringow... Pamieta ktos
Kod: Zaznacz cały
$element
$klass
$race
$alignmentEDIT: mozliwe, ze brakuje apostrofow. W linijce, w ktorej jest to zapytanie kazda z tych zmiennych zawrzyj w pojedynczych apostrofach. Moze pomoze o tyl, ze zapytanie sie wykona. Hmm... albo chyba byla taka funkcja, ktora dodaje apostrofy do stringow... Pamieta ktos
dodałem apostrofy tak, że wygląda to w ten sposób:
user_element='$element', user_klass='$klass', user_race='$race', user_alignment='$alignment'
Przy aktualizacji profilu jest już w porządku, ale za to w profilu użytkownika wogóle nie ma tego, co tam w tym modzie wpisałem.
coś takiego:
Dołączył: 18 Gru 2004
Posty: 31
Skąd: Wawa
Klasa : <- tu powinno być..
user_element='$element', user_klass='$klass', user_race='$race', user_alignment='$alignment'
Przy aktualizacji profilu jest już w porządku, ale za to w profilu użytkownika wogóle nie ma tego, co tam w tym modzie wpisałem.
coś takiego:
Dołączył: 18 Gru 2004
Posty: 31
Skąd: Wawa
Klasa : <- tu powinno być..
No bo najprawdopodobniej te zmienne sa puste (wskazywaloby na to wczesniejsze bledne zapytanie). Niestety, po samym zapytaniu ciezko przesledzic, dlaczego tak sie dzieje. W sumie, moge Ci poradzic, zebys po prostu uzywal echo $zmienna przy tych zapytaniach odnoszacych sie do powyzszych zmiennych - moze uda Ci sie znalesc, w ktorym miejscu zachowuja sie nieprawidlowo.18_groszy pisze:Przy aktualizacji profilu jest już w porządku, ale za to w profilu użytkownika wogóle nie ma tego, co tam w tym modzie wpisałem.
coś takiego:
No niestety nie poradziłem sobie. Moja teoria jest taka:
kiedy były apostrowy wstawiało poprostu puste wartosci (0), a gdy apostrofów nie ma zapytanie SQL jest błędne, więc trzeba się dowiedziec skąd, z jakiego pliku przychodza te zmienne.
Co o tym sądzicie? Jak z tym sobie poradzić?
edit:
np. zmienna "klass" wychodzi z formularza edycji profilu, ale nie trafia do usercp
Kod: Zaznacz cały
user_element= , user_klass=, user_race=, user_alignment= WHERE user_id = 3Co o tym sądzicie? Jak z tym sobie poradzić?
edit:
np. zmienna "klass" wychodzi z formularza edycji profilu, ale nie trafia do usercp
Ale w php zmienne przewaznie dzialaja w zakresie danego pliku. Przekazywanie ich wartosci miedzy plikami jest robione poprzez specjalne tablice. Ja stosuje zazwyczaj taka metode, ze szukam pierwszego wystapienia zmiennej w danym pliku i probuje przesledzic jej zmiany i co decyduje o zmianie jej wartosci. Moze jakis element kodu zle dziala.
To ze zmienna o tej samej nazwie wystepuje w innym pliku jest stosowane po to by ulatwic sledzenie pewnych zaleznosci miedzy plikami, ale nie jest to metoda przekazywania wartosci.
To ze zmienna o tej samej nazwie wystepuje w innym pliku jest stosowane po to by ulatwic sledzenie pewnych zaleznosci miedzy plikami, ale nie jest to metoda przekazywania wartosci.
