Webprogramozás arr Scriptek info OneForum 2.0
(#19) Gabor válasza erre: (#18) nicolaum 2013.01.08. 09:13

Gabor
Gabor
Szerkesztő

De természetesen ezt is mint mindent meg lehet oldani. De előbb engedj meg egy javítást. A oneforum elég régi script gondolom ezért fordul elő sok oldalon hogy olyan változóhoz próbál hozzáférni ami nincs. Mivel az embedded_topic.php fájlt a topic.php átírásával készítettem ez a hiba benne maradt ebben is. Így ha valaki nincs bejelentkezve egy csúnya figyelmeztetés jelenik meg az oldal alján ezért:

1
2
3
4
5
6
7
8
9
 
//ezt a sort keresd meg az embedded_topic.php-ban:
if(!$_SESSION['signed_in']) {
 
//és cseréld le erre:
if(!isset($_SESSION['signed_in']) or !$_SESSION['signed_in']) {
 
//egyébként ezt minden más olyan fájlban is elvégezheted ahol valami hasonló hibaüzenetet fedezel fel.
 


Ezek után pedig a probléma ugye, hogy a reply.php átirányítása azt veszi figyelembe hogy melyik témához szóltál hozzá, és oda irányít. Mi pedig a múltkor nem készítettük fel arra hogy lehet hogy máshonnan érkezett a felhasználó.
Ezért most előbb az embedded_topic.php-ban végzünk egy kis változtatást:
1
2
3
4
5
6
7
8
 
//keresd meg ezt:
include_once('data/flood.php');
//ez alá a sor alá szúrd be ezeket
 
/*uj action url*/
    $action = $forum_url.'/reply.php?continue='.urlencode($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']).'&id='.$row['topic_id'];
 

a fájlban ez után egy hosszú echo jön ami a formot jeleníti meg ebben a
<form name=\"topic\" method=\"post\" action=\"
részt kell megkeresned (2. sor). Itt az action \" -től \" -ig már nem emlékszem micsoda de mindegy is mert írd át $action -re így az új elkészült sor:
1
2
3
4
5
6
7
8
9
 
echo "...
 
//ez a szerkesztett sor:
<form name=\"topic\" method=\"post\" action=\"$action\">
 
 
...";
 


Így most már az embedded_topic.php egy continue nevű get változóban, át fogja adni a reply.php-nek hogy honnan érkezett a felhasználó. Most már csak a reply.php-nek kell ennek megfelelően cselekednie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//reply.php
//79-85. sor -ban levő részt jelöld ki
//és teljes egészében cseréld erre:
 
    $continue = (isset($_GET['continue']))?'http://'.$_SERVER['SERVER_NAME'].htmlentities($_GET['continue']):'topic.php?id=' . htmlentities($_GET['id']);
    echo '<br /><p class="right">&nbsp;&nbsp;&nbsp;Your reply message has successfully entered!</strong></p>';
    echo '<p><meta http-equiv="refresh" content="' . $autoforward . '; URL='. $continue .'">' .
                     '&nbsp;&nbsp;&nbsp;<small>You will be redirected in ' . $autoforward . ' seconds...</small></p><br />';
    
    echo '<p>&nbsp;&nbsp;&nbsp;If you are not redirected - [ <a href="'. $continue .'">Your Reply</a> ]</p><br />';
    
    echo '</td></tr>';
 


Így már működnie kell. Sok sikert kep