« 1 2
Autor Zpráva
Yuff.3
Profil
aha.. jj no áno, ono je v podstate teda jedno, ten kód nie je nikde na tej stránke je to nejaká funkcia definovaná niekde v systéme php-fusionu - systému, ktorý používam. povecme ale, že chcem spraviť select, alebo nejakým spôsobom dostať tie polia "user_name" "priatelia" "user_id" do tých echo riadkov. Vymenované polia sa nachádzajú v tabuľke users.. - pozor, rovnako ako riadok 13 - $_GET - čo definuje stránku profilu užívateľa, ktorého profil práve sledujeme. napr. ak mám otvorený profil stranka.php?uzivatel=4 - znamená to, že kukám na profil užívateľa s ID = 4 a teda aj premenná $_GET bude rovná 4 - čiže echo na riadku 13 vypíše: 4
Virtus
Profil
No mám takový dojem, že se Vám v kódu v příspěvku [#25] ztratila ta část co máte v příspěvku [#19] na řádcích 6-12:
    $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='".(iMEMBER)."' ");    
    $rows = dbrows($result);
    if ($rows != 0) {
      while ($userdata = dbarray($result)) {
    
    $mojeid = $userdata['user_id']; 
    }}
Yuff.3
Profil
Nestratila, odstránil som, pretože aj tak to robilo patálie. Ale práve som tuším prišiel na spôsob ako to vyriešiť.

// Pekne mi to funguje, ak som prihlásený ako ID=1. Ale - ako ináč zapíšem (iMEMBER) - aktuálne prihláseného užívateľa ?? Pretože ak som prihlásený ako ID=1, zobrazí mi ID=1, ale ak som ako ID=2, zobrazí mi ID=1 aj každému členovi s hocijakým ID zobrazí ID 1 aj meno teda - user_name ako členovi s ID=1..

Aktuálny kód:

if (isset($_GET['page']) && $_GET['page'] == "pridat-priatela") {
echo " " .$_GET['uzivatel'];
$resultuser = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='".(iMEMBER)."'");
    $rows = dbrows($resultuser);
    if ($rows != 0) {
      while ($userdata = dbarray($resultuser)) {
    
echo "<br>";
echo "" .$userdata['user_id'];
echo "<br>";
echo "" .$userdata['user_name'];
echo "<br>";

echo "<br>";
echo " " .$userdata['priatelia'];
echo "<br><br>" ;

    
    $priatelia = $userdata['priatelia']; 
    //Toto odstráni bodku 
    $exp = explode('.', $priatelia); 

    $oddelovac = ".";
    $priatel = $_GET['uzivatel'];
    
    if (in_array($priatel, $exp)) {
    echo "Už sa nachádza v zozname priateľov";
    }
    else { 
    dbquery("UPDATE ".DB_USERS." SET priatelia='".$userdata['priatelia']."' '".$oddelovac."' '".$priatel."' WHERE user_id='".(iMEMBER)."'");
    echo "Bol pridaný medzi priateľov";
    }

}}

}
Yuff.3
Profil
Aj zápis do DB (riadok 30) mi spraví do tabuľky užívateľa s ID=1, aj keď som prihlásený ako ID=2
stop
Profil *
Protože iMEMBER vrací bool, když si přihlášený 1 takže to je pokaždé uživatel s ID 1. Uprav tu část na:
user_id='".$_GET['uzivatel']."'....


edit:// nevím, pokuď to má být id uživatele, který je přihlášený tak najdi v tom systému něco co vrátí aktuální id přihlášeného uživatele.
Yuff.3
Profil
Áno, presne to potrebujem, ale som laik, netuším kde to tam mám hľadať.. No a tej $_GET[uzivatel] - presne toto nechcem, pretože to mi dá ID užívateľa, ktorého profil práve sledujem, nech mám ako užívateľ akékoľvek ID. Čiže potrebujem presne to - "co vrátí aktuální id přihlášeného uživatele."
Kde to v PHP-Fusion mám hľadať? Existuje to vôbec v tomto systéme? Alebo pokiaľ by sa to dalo nejak jednoducho, ako si to vytvorím?
Ďakujem :)
stop
Profil *
Já se teda naotravuju :D Koukal jsem na ten php fusion a být tebou tak proměnou $userdata už nepřepisuji (jelikož tím můžeš přepsat informace o přihlášeném uživateli) a dát ji jiný identifikátor. Ten skript máš kde? Je to zvlášť soubor nebo si to implementoval někam do šablony? Pokud je to někde v šabloně v nějaké funkci mohl by být problém s viditelností proměnné i když to je blbost jinak by ti to vrátilo NULL. Koukal jsem do třídy Authenticate.class.php a zjistil jsem, že hodnota z příspěvku #27 (bool) false je způsobená pokud uživatel není přihlášen tak to nemá podle čeho vybrat udaje z databáze.

// áhá, už nato koukám hned v prvním příspěvku ty sis opravdu přepsal tu proměu $userdata. Takže se pak nemůžeš divit, že ti $userdata vrací uplně něco jiného než má. Ta proměnná je "systémová" (už ji používá php fusion na globální urovni a vrací data o přihlášeném uživateli). Máš v tom strašný guláš a určitě to máš prsklé mimo funkci. Takže změn název proměnné.

while ($userdata = dbarray($result)) { a všude kde to máš..tento název je již zadaný...
potom až jí osvobodíš tak id přihlášeného uživatele získáš snadno:
$userdata['user_id']
Yuff.3
Profil
Tie staršie príspevky sú irelevantné, pretože som skoro celé základy kódu pomenil :D
A nerozumiem presne čo vlastne mám spraviť, ale v príspevku #3 na tejto strane je aktuálny kod. V ňom som to while ($userdata.. na riadku 6 zmenil a rovnako tak v celom zostávajúcom kóde.. Nepomohlo..
Dokonca som našiel toto: www.phpfusion.cz/forum/viewthread.php?thread_id=1259 ani to nepomohlo, keď som to dal v takomto tvare. - Ale tu sa aspoň niečo udialo - resp. neudialo, pretože user_id mi zmizlo - nevypísalo mi to echo nič. Predtým tam stále bolo user_id 1 - teda člena 1
Som zúfalý. :( :D
stop
Profil *
Problém je v tom, že to máš na vícech místech ($userdata) v tom skriptu co si psal, že je mnohem rozsáhlejší, proto udělej lam způsob(tu je to už jedno). Na začátek pod includy:
$uzivatel_data = $userdata;
var_dump($uzivatel_data)
ale myslím, že až vyřešíš jeden problém nastane další :-)
Yuff.3
Profil
stop:
Áno, áno, na teraz všetko vyriešené. Veľká vďaka :)
S ďalšími problémami rátam, samozrejme.. :)

Môžete LOCK :)
Vďaka :)

Moderátor Alphard: K zamykání není důvod. I pozdější doplnění tématu může být pro někoho přínosné.
« 1 2

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: