Autor | Zpráva | ||
---|---|---|---|
Yuff.3 Profil |
#1 · Zasláno: 22. 7. 2014, 23:33:51
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 |
#2 · Zasláno: 23. 7. 2014, 00:04:37
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 |
#4 · Zasláno: 23. 7. 2014, 01:32:14
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 * |
#5 · Zasláno: 23. 7. 2014, 01:45:59 · Upravil/a: stop
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 |
#6 · Zasláno: 23. 7. 2014, 02:33:41
Á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 * |
#7 · Zasláno: 23. 7. 2014, 02:43:39
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 |
#8 · Zasláno: 23. 7. 2014, 02:57:58
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 * |
#9 · Zasláno: 23. 7. 2014, 04:55:09
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) |
||
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é.
|
||
Časová prodleva: 10 let
|
0