Topic Password és a 3.0.9 - kizárt topikok
Szerző
Üzenet
Sziasztok!
Nagy segítségre lenne most szükségem!!!
Frissítettem a 3.0.0-ás oldalam 3.0.9-re és az egyik alapköve a jelszavas topikok voltak. Sajnos a MOD fejlesztését befejezték, és bár most van egy srác, aki át akarja írni, tovább akarja fejleszteni, de semmilyen verziót nem adott még közzé ebből.
Viszont a gond az, hogy frissítés után nem enged be a jelszavas topikokba a fórum!!! Beírom a jelszót és visszairányít az indexre. A mod lépéseit megcsináltam, a jelszó is ott az adatbázisban és mégis ez történik!
Kérem, valaki segítsen, mert addig az egész weblapom áll, a korábban jelszavazott topikokat meg értelemszerűen nem nyithatom ki.
Itt a letöltési fájl és pár dolog, amiről anno értekeztünk e témában:
http://phpbb.hu/forum/tema/4350
Illetve az új fejlesztésről itt van a hír:
http://www.phpbb.com/community/viewtopic.php?f=70&t=2102003
Update1:
Van egy nagy sejtésem, hogy vagy a session vagy a user kezelésben van valami gubanc az alábbi kódban, mert ez még 3.0-ás verzióra készült. Ez megy a functions.php-be, ami beengedi a usert:
Update2: amit kiderítettem, hogy
- a mod a fórum jelszavazásán alapszik, szinte mindent átvett a srác ugyanúgy
- valami miatt a Belépés gomb nem az eredeti linket generálja le, hanem egy ucp.php-s login linket hoz létre. A Functions.php-ben a kódot módosítottam aszerint, hogy ahogyan a fórumos belépőkódnál van felette, természetesen átalakítva a megfelelő módon topikokra. Viszont ez sem segített.
Az a kérdésem, hogy a jelszavas fórum belépéshez hol generálja a gomb alá a jelszót? Mert ott a megoldásom kulcsa.
Nagy segítségre lenne most szükségem!!!
Frissítettem a 3.0.0-ás oldalam 3.0.9-re és az egyik alapköve a jelszavas topikok voltak. Sajnos a MOD fejlesztését befejezték, és bár most van egy srác, aki át akarja írni, tovább akarja fejleszteni, de semmilyen verziót nem adott még közzé ebből.
Viszont a gond az, hogy frissítés után nem enged be a jelszavas topikokba a fórum!!! Beírom a jelszót és visszairányít az indexre. A mod lépéseit megcsináltam, a jelszó is ott az adatbázisban és mégis ez történik!
Kérem, valaki segítsen, mert addig az egész weblapom áll, a korábban jelszavazott topikokat meg értelemszerűen nem nyithatom ki.
Itt a letöltési fájl és pár dolog, amiről anno értekeztünk e témában:
http://phpbb.hu/forum/tema/4350
Illetve az új fejlesztésről itt van a hír:
http://www.phpbb.com/community/viewtopic.php?f=70&t=2102003
Update1:
Van egy nagy sejtésem, hogy vagy a session vagy a user kezelésben van valami gubanc az alábbi kódban, mert ez még 3.0-ás verzióra készült. Ez megy a functions.php-be, ami beengedi a usert:
Kód:
/**
* Generate topic login box
*/
function login_topic_box($topic_data)
{
global $db, $config, $user, $template, $phpEx;
$password = request_var('password', '', true);
$sql = 'SELECT topic_id
FROM ' . TOPICS_ACCESS_TABLE . '
WHERE topic_id = ' . $topic_data['topic_id'] . '
AND user_id = ' . $user->data['user_id'] . "
AND session_id = '" . $db->sql_escape($user->session_id) . "'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($row)
{
return true;
}
if ($password)
{
// Remove expired authorised sessions
$sql = 'SELECT session_id
FROM ' . SESSIONS_TABLE;
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
{
$sql_in = array();
do
{
$sql_in[] = (string) $row['session_id'];
}
while ($row = $db->sql_fetchrow($result));
// Remove expired sessions
$sql = 'DELETE FROM ' . TOPICS_ACCESS_TABLE . '
WHERE ' . $db->sql_in_set('session_id', $sql_in, true);
$db->sql_query($sql);
}
$db->sql_freeresult($result);
if ($password == $topic_data['topic_password'])
{
$sql_ary = array(
'topic_id' => (int) $topic_data['topic_id'],
'user_id' => (int) $user->data['user_id'],
'session_id' => (string) $user->session_id,
);
$db->sql_query('INSERT INTO ' . TOPICS_ACCESS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
return true;
}
$template->assign_var('LOGIN_ERROR', $user->lang['WRONG_PASSWORD']);
}
page_header($user->lang['LOGIN']);
$template->assign_vars(array(
'S_HIDDEN_FIELDS' => build_hidden_fields(array('t' => $topic_data['topic_id'])))
);
$template->set_filenames(array(
'body' => 'login_topic.html')
);
page_footer();
}
Update2: amit kiderítettem, hogy
- a mod a fórum jelszavazásán alapszik, szinte mindent átvett a srác ugyanúgy
- valami miatt a Belépés gomb nem az eredeti linket generálja le, hanem egy ucp.php-s login linket hoz létre. A Functions.php-ben a kódot módosítottam aszerint, hogy ahogyan a fórumos belépőkódnál van felette, természetesen átalakítva a megfelelő módon topikokra. Viszont ez sem segített.
Az a kérdésem, hogy a jelszavas fórum belépéshez hol generálja a gomb alá a jelszót? Mert ott a megoldásom kulcsa.
No akkor egy megoldás (aztán mondjátok el, mennyire necces, mert kútfőből nyomoztam ki).
A modban van egy login_topic.html nevű fájl, amit fel kel másolni a sablonok közé. Ez szinte mindenben hasonlít a login_forum.html fájlra, csak topik azonosítókkal. Nos itt az eredeti állomány:
Én átírtam és kiegészítettem ezt a kódot. Először is ezt a kódot kicseréltem erre, töröltem az actiont. Ezt:
erre:
Majd a végére betettem a login_forum.html-ből két sort.
Eredeti kód:
Módosított kód:
Így működik és nem irányít át. Kérem a véleményeteket, hogy ez így jó-e?
A modban van egy login_topic.html nevű fájl, amit fel kel másolni a sablonok közé. Ez szinte mindenben hasonlít a login_forum.html fájlra, csak topik azonosítókkal. Nos itt az eredeti állomány:
Kód:
<!-- INCLUDE overall_header.html -->
<div id="pagecontent">
<form name="login_forum" method="post" action="{S_LOGIN_ACTION}">
<table class="tablebg" width="100%" cellspacing="1" align="center">
<tr>
<th>{L_LOGIN}</th>
</tr>
<tr>
<td class="row3" align="center"><span class="gensmall">{L_LOGIN_TOPIC}</span></td>
</tr>
<tr>
<td class="row1" align="center">
<table cellspacing="1" cellpadding="4" border="0">
<!-- IF LOGIN_ERROR -->
<tr>
<td class="gensmall" colspan="2" align="center"><span class="error">{LOGIN_ERROR}</span></td>
</tr>
<!-- ENDIF -->
<tr>
<td class="gensmall"><b>{L_PASSWORD}:</b></td>
<td><input class="post" type="password" name="password" size="25" tabindex="2" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input type="submit" name="login" class="btnmain" value="{L_LOGIN}" tabindex="3" /></td>
</tr>
</table>
</form>
</div>
<br clear="all" />
<!-- INCLUDE breadcrumbs.html -->
<br clear="all" />
<div align="{S_CONTENT_FLOW_END}"><!-- INCLUDE jumpbox.html --></div>
<!-- INCLUDE overall_footer.html -->
Én átírtam és kiegészítettem ezt a kódot. Először is ezt a kódot kicseréltem erre, töröltem az actiont. Ezt:
Kód:
<form name="login_forum" method="post" action="{S_LOGIN_ACTION}">
erre:
Kód:
<form name="login_forum" method="post" action="">
Majd a végére betettem a login_forum.html-ből két sort.
Eredeti kód:
Kód:
</table>
</form>
Módosított kód:
Kód:
</table>
{S_FORM_TOKEN}
{S_LOGIN_REDIRECT}
</form>
Így működik és nem irányít át. Kérem a véleményeteket, hogy ez így jó-e?
Az action értékét nem értem miért szedted ki.
A 2 módosítás meg egyszerűen szükséges
A 2 módosítás meg egyszerűen szükséges
Azért kellett kiszednem, mert állandóan az ucp=login oldalra akart irányítani a viewtopic helyett. Nem értem, hogy amíg ez megy a fórumjelszavas belépésnél, itt egyszerűen nem ment. Valahol tuti még el van dugva egy beállítás a fórum jelszónál, ami mellé be kellene írni a topikos megfelelőjét, de ennyire nem ismerem a kódot. Ez viszont ahogy kivettem egyből jó oldalra vitt. Tudom, fapados, de most sürgősen kellett a megoldás, mert itt álltam egy csupasz fórumnál és a userek meg jönnének be, de nem tudtak.
Off: viszont holnap a meghívós mod frissítése jön 1.1.1 RC-ről és az előző esetben lyukra futottam, nem ment le az 1.1.2-es adatbázis frissítés sem, úgyhogy szurkolj, hogy holnap lefusson.
Off: viszont holnap a meghívós mod frissítése jön 1.1.1 RC-ről és az előző esetben lyukra futottam, nem ment le az 1.1.2-es adatbázis frissítés sem, úgyhogy szurkolj, hogy holnap lefusson.
Tedd vissza és ezt pótold a function login_topic_box -ba
keresd
és tedd elé
nem vizsgáltam meg, de remélem jó lesz.
keresd
Kód:
'S_HIDDEN_FIELDS' => build_hidden_fields(array('t' => $topic_data['topic_id'])))
és tedd elé
Kód:
'S_LOGIN_ACTION' => build_url(array('f', 't')),
nem vizsgáltam meg, de remélem jó lesz.
Ott a pont! Nagyon köszönöm!
Látod, ez nem szúrta ki a szemem, az a sor, ami az előző részben (a fórumosnál) benne van, és itt nem volt. Hálás köszönetem és akkor ezt megosztom a többieknek is, hogy mit írtál. Köszönöm!
Látod, ez nem szúrta ki a szemem, az a sor, ami az előző részben (a fórumosnál) benne van, és itt nem volt. Hálás köszönetem és akkor ezt megosztom a többieknek is, hogy mit írtál. Köszönöm!
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.