Temat: Dodanie pola do profilu uzytkownika

Witam,

Chciałem dodać do profilu użytkownika nowe pole. Edytowałem więc plik profile.php oraz pliki z tłumaczeniem, by pobrać odpowiednią dla pola etykietę. Jednakże jestem laikiem jeżeli chodzi o takiego typu sprawy i niestety nie udało mi się tego zrobić.
Wzorowałem się na polu dla ICQ, gdyż chciałem osiągnąć identyczne właściwości pola (pole dla numeru kolejnego komunikatora). Dlatego też, tak, jak w przypadku pola dla ICQ, stworzyłem 19 odwołań (czy jak to nazwać) dla nowego pola o takich samych parametrach, jak dla pola ICQ. Po wgraniu plików na serwer pole, które utworzyłem pojawia się w profilu, wszystkie właściwości wydają się być zachowane.
Kiedy nacisnę guzik "Aktualizuj profil" pojawia się błąd:

An error was encountered

The error occurred on line 1189 in /var/www/sites/yoyo.pl/m/-/XYZ/profile.php

Database reported: Unknown column 'gg' in 'field list' (Errno: 1054).

Wydaje się, iż brak pola w tabeli bazy danych. Stworzyłem to pole, nadałem mu takie same właściwości, jakie posiadało to dla ICQ. Jednakże błąd występuje nadal.

Linia 1189 z pliku profile.php ...

$forum_db->query_build($query) or error(__FILE__, __LINE__);

... również niewiele mi mówi, poza tym, że jest błąd.



Gdzie powinienem szukać rozwiązania, bądź gdzie popełniłem błąd? Proszę o pomoc.


Pozdrawiam.

2

Odp: Dodanie pola do profilu uzytkownika

Nie lepiej w pliku językowym zamienić nazwę ICQ (albo innego komunikatora) na GG? W bazie może zostać dalej ICQ bo i tak poza bazą nie będzie to widoczne.

Seekleas napisał/a:

stworzyłem 19 odwołań (czy jak to nazwać) dla nowego pola o takich samych parametrach, jak dla pola ICQ.

Tego nie rozumiem - możesz bardziej sprecyzować co zrobiłeś?

3

Odp: Dodanie pola do profilu uzytkownika

Podmiana nazwy nie wchodzi w grę, ponieważ wszystkie już utworzone pola są mi także potrzebne.

Z tymi odwołaniami to można było nie zrozumieć, ale nie wiedziałem, jak to napisać. W polu z kodem podam linie kodu, na których się wzorowałem.

W pliku profile.php po wyszukaniu słowa ICQ wyświetli się 19 wyników:


I - dopisanie elementu "gg"

$form = extract_elements(array('realname', 'url', 'location', 'jabber', 'icq', 'gg', 'msn', 'aim', 'yahoo'));


--------------------------------------------------------------------------------------------------

II, III, IV i V - sprawdzenie poprawności wpisanego id dla pola - dla ICQ i wzorując się na nim także dla GG.

// If the ICQ UIN contains anything other than digits it's invalid
            if ($form['icq'] != '' && !ctype_digit($form['icq']))
                $errors[] = $lang_profile['Bad ICQ'];
                                
                
// If the GG UIN contains anything other than digits it's invalid
            if ($form['gg'] != '' && !ctype_digit($form['gg']))
                $errors[] = $lang_profile['Bad GG'];


--------------------------------------------------------------------------------------------------


VI, VII, VIII, IX - następująca linia kodu (ta dla ICQ oraz na jego podstawie podmiana dla GG).

if ($user['icq'] !='')
        $forum_page['user_contact']['icq'] = '<li><span>'.$lang_profile['ICQ'].': <strong> '.forum_htmlencode($user['icq']).'</strong></span></li>';
    
if ($user['gg'] !='')
        $forum_page['user_contact']['gg'] = '<li><span>'.$lang_profile['GG'].': <strong> '.forum_htmlencode($user['gg']).'</strong></span></li>';
    

--------------------------------------------------------------------------------------------------


X, XI, XII, XIII - linie kodu (setup user messaging)


if ($user['icq'] !='')
            $forum_page['user_contact']['icq'] = '<li><span>'.$lang_profile['ICQ'].': <strong>'.forum_htmlencode($user['icq']).'</strong></span></li>';
        
if ($user['gg'] !='')
            $forum_page['user_contact']['gg'] = '<li><span>'.$lang_profile['GG'].': <strong>'.forum_htmlencode($user['gg']).'</strong></span></li>';
        

--------------------------------------------------------------------------------------------------


XIV, XV, XVI, XVII, XVIII, XIX - kod:


<?php ($hook = get_hook('pf_change_details_identity_pre_icq')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['ICQ'] ?></span></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="form[icq]" value="<?php echo(isset($form['icq']) ? forum_htmlencode($form['icq']) : $user['icq']) ?>" size="12" maxlength="12" /></span>
                    </div>
                </div>


<?php ($hook = get_hook('pf_change_details_identity_pre_gg')) ? eval($hook) : null; ?>
                <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
                    <div class="sf-box text">
                        <label for="fld<?php echo ++$forum_page['fld_count'] ?>"><span><?php echo $lang_profile['GG'] ?></span></label><br />
                        <span class="fld-input"><input id="fld<?php echo $forum_page['fld_count'] ?>" type="text" name="form[gg]" value="<?php echo(isset($form['gg']) ? forum_htmlencode($form['gg']) : $user['gg']) ?>" size="12" maxlength="12" /></span>
                    </div>
                </div>

Po moim tłumaczeniu nadal może nie być wszystko jasne. Dlatego też zamieszczę mój plik profile.php (klik), gdyż tam może więcej da się zobaczyć.

4

Odp: Dodanie pola do profilu uzytkownika

ALTER TABLE `pun_users` ADD `gg` INT NOT NULL

Wykonaj ten kod w phpmyadminie zamieniając pun_ na prefiks pod jakim masz zainstalowane forum i podaj co wyrzuci

5

Odp: Dodanie pola do profilu uzytkownika

Od razu przyznaję się, że nie miałem większego pojęcia, gdzie ów kod wpisać. Użyłem zatem zakładki "MySQL" i tam, po wpisaniu podanego wyżej kodu, wykonałem zapytanie. Otrzymałem komunikat, jak na obrazku w załączniku do tej wiadomości.

Jeżeli zrobiłem to nie w tym miejscu, w którym powinienem proszę o wskazówki.

Post's attachments

bladpun.png 5.94 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

6

Odp: Dodanie pola do profilu uzytkownika

Sprawdzałem tylko czy pole gg rzeczywiście istnieje w bazie. Cały czas wyrzuca ci ten komunikat z pierwszego postu, czy teraz może masz z czymś innym problem?

Wrzuciłem twój plik profile.php do siebie i nie ma żadnego problemu z aktualizacją profilu

7

Odp: Dodanie pola do profilu uzytkownika

Zaraz po wejściu do profilu na górze ekranu pojawia się komunikat błędu:

Notice: Undefined index: gg in /var/www/sites/yoyo.pl/m/-/XYZ/profile.php on line 1582

... chodzi o następujące linie kodu:

if ($user['gg'] !='')
            $forum_page['user_contact']['gg'] = '<li><span>'.$lang_profile['GG'].': <strong>'.forum_htmlencode($user['gg']).'</strong></span></li>';
        

Gdy wejdę w zakładkę Dane personalne w polu przeznaczonym na numer Gadu-Gadu wpisana jest treść błędu, który podałem już w poście nr 1:

<br /> <b>Notice</b>:  Undefined index:  gg in <b>/var/www/sites/yoyo.pl/m/-/XYZ/profile.php</b> on line <b>1864</b><br />

Po wpisaniu numeru GG i wciśnięciu przycisku Aktualizuj pojawia się komunikat błędu, taki, jaki był wpisany w pole dla gg, bądź prezentowany już w poście numer 1:

An error was encountered

The error occurred on line 1189 in /var/www/sites/yoyo.pl/m/-/XYZ/profile.php

Database reported: Unknown column 'gg' in 'field list' (Errno: 1054).


Teraz nie wiem, co zrobić. Może źle utworzyłem pole w bazie danych? Nadałem mu następujące parametry (patrz załącznik).

Post's attachments

polewlasciwosci.png 10.1 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

8

Odp: Dodanie pola do profilu uzytkownika

Jako typ tego pola daj INT

9

Odp: Dodanie pola do profilu uzytkownika

Zmiana typu nic nie dała.
Jednakże problem rozwiązałem - usunąłem pole gg z bazy danych i utworzyłem ponownie. Zadziałało.

Dziękuję za pomoc. Pozdrawiam smile