Problem z integracją phpBB ze stroną
Problem z integracją phpBB ze stroną
Próbuję zintegrować phpBB3 z moją stroną, jednak co rusz to napotykam na różne problemy z tym związane.
Pierwszy problem to niemożność wyłączenia debuggera w phpBB3. "Zakomentowanie" go w config.php czy ustawienie mu wartości "false" nic nie daje, debugger w dalszym ciągu pokazuje na stronie komunikaty.
Ale to jest mały pikuś. Gorzej, gdy na stronie mam zdefiniowaną jakąś zmienną czy wstawioną instrukcję switch.
Na stronie mam ustawione cache'owanie wyników zapytań do bazy, zapisywane są one do plików tekstowych. W wielu miejscach mam zdefiniowane zmienne, $file1, $file2 itd, tymczasem w tych miejscach debugger wywala komunikaty "undefined variable $file1" - i za Chiny Ludowe nie mogę się pozbyć tych errorów.
Pewnym rozwiązaniem być może byłoby usunięcie tego cache'owania, ale wtedy wzrasta mi obciążenie serwera. Stronę mam dość dużą i popularną, więc przy nadmiernym obciążeniu mogę wylecieć z hostingu :/ tak więc cache'owanie musi pozostać.
Przy instrukcjach switch mam podobny problem. Weźmy np switch($_GET['cośtam']) - w momencie gdy wyświetla się "default", debugger informuje o niezdefiniowanej zmiennej.
Da się jakoś obejść te problemy?
Pisałem już na forum phpbbhelp.pl, ale tam nikt nie wie, jak mi pomóc
Pierwszy problem to niemożność wyłączenia debuggera w phpBB3. "Zakomentowanie" go w config.php czy ustawienie mu wartości "false" nic nie daje, debugger w dalszym ciągu pokazuje na stronie komunikaty.
Ale to jest mały pikuś. Gorzej, gdy na stronie mam zdefiniowaną jakąś zmienną czy wstawioną instrukcję switch.
Na stronie mam ustawione cache'owanie wyników zapytań do bazy, zapisywane są one do plików tekstowych. W wielu miejscach mam zdefiniowane zmienne, $file1, $file2 itd, tymczasem w tych miejscach debugger wywala komunikaty "undefined variable $file1" - i za Chiny Ludowe nie mogę się pozbyć tych errorów.
Pewnym rozwiązaniem być może byłoby usunięcie tego cache'owania, ale wtedy wzrasta mi obciążenie serwera. Stronę mam dość dużą i popularną, więc przy nadmiernym obciążeniu mogę wylecieć z hostingu :/ tak więc cache'owanie musi pozostać.
Przy instrukcjach switch mam podobny problem. Weźmy np switch($_GET['cośtam']) - w momencie gdy wyświetla się "default", debugger informuje o niezdefiniowanej zmiennej.
Da się jakoś obejść te problemy?
Pisałem już na forum phpbbhelp.pl, ale tam nikt nie wie, jak mi pomóc
- Duch Forum
- Posty: 356
- Rejestracja: 15 maja 2005, 10:33
- Lokalizacja: Duszniki
- Kontakt:
Re: Problem z integracją phpBB ze stroną
Bierzesz pod uwagę zasięg zmiennych podczas używania funkcji? Gdybyś podał kod byłoby znacznie łatwiej
Re: Problem z integracją phpBB ze stroną
No więc zarzucam przykładowym kodem, przy którym debugger wywala errory
Tu pokazuje, że "niezdefiniowana zmienna $filen".
W innym miejscu:Tu z kolei że niezdefiniowana zmienna "akcja".
Czy powodem tych problemów może być umieszczenie forum i strony w tym samym katalogu?
Kod: Zaznacz cały
<?
$sql_query = "SELECT hometext, bodytext, title, notes, time FROM nuke_stories WHERE topic='6' ORDER BY sid DESC LIMIT 1" or ("Nie mozna wykonac zapytania");
$querycount+=1;
$result = mysql_query($sql_query) or ("Nie mozna wykonac wyniku");
// wyswietlanie rekordow
while($row = mysql_fetch_array($result))
{
?>
<div class="art">
<div class="mainPhzajawka">
<img src="<?php echo $row['notes']; ?>" alt="">
<h3>
<div id="soneic1"></div>
<div id="soneic2"></div>
<div id="oneliner" align="center">
<div align="justify">
<font class="block-title"><b><?php echo $row['title']; ?></b></font><BR><font class="content2">Dodano: <?php echo $row['time']; ?></font><BR><BR>
<font class="content-billboard"><?php echo $row['hometext']; ?></font>
</div>
</div>
</h3>
</div></div>
<?
}
?>
<div class="row1newsy" align="center"><font class="content"><b>Pomóż powodzianom!</b> <a href="#" onclick="window.open('powodzianie.php?dlakogo=caritas', 'Pomoc dla powodzian', 'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,fullscreen=no,channelmode=no,width=400,height=300')">numer konta Caritas</a> | <a href="#" onclick="window.open('powodzianie.php?dlakogo=klodzko', 'Pomoc dla powodzian', 'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,fullscreen=no,channelmode=no,width=400,height=300')">pomoc dla powodzian z Kłodzka</a></font></div>
<?php include('banner_platny.php'); ?>
<div class="row1newsy"><BR><center><b>Byłe¶ ¶wiadkiem manifestacji zjawiska paranormalnego?<BR>Je¶li tak, napisz nam o tym!</b></center><BR><font class="content">Tworzymy największ± w Polsce bazę danych o spotkaniach ze zjawiskami paranormalnymi. W tym momencie nasze archiwum obejmuje kilka tysięcy relacji. Czekamy na relacje współczesne oraz z lat ubiegłych. Wszelkie materiały przesyłać możecie <a href="relacja.html">za pomoc± formularza do wysyłania relacji</a>.</font><BR><BR>
</div>
<?php $naStronie = 9;
if($_GET['strona']) $strona = $_GET['strona'];
else $strona = 0;
$query = mysql_query("SELECT count(*) FROM nuke_stories");
$querycount+=1;
$row = mysql_fetch_array($query);
$size = $row['count(*)'];
?>
<?php
$naStronie = 9;
if($_GET['strona']) $strona = $_GET['strona'];
else $strona = 0;
$start = $strona*$naStronie;
$filen = 'cache/sql_cache_newsy_'.$strona.'.txt';
$expire = 86400; // 24 hours
if (file_exists($filen) &&
filemtime($filen) > (time() - $expire)) {
$records = unserialize(file_get_contents($filen));
} else {
/* form SQL query */
$query = "SELECT sid, hometext, bodytext, topic, title AS tytulnewsa, time AS czasnewsa FROM nuke_stories WHERE (topic='2') OR (topic='9') ORDER BY sid DESC LIMIT $start, $naStronie";
$querycount+=1;
$result = mysql_query($query)
or die (mysql_error());
while ($record = mysql_fetch_array($result) ) {
$records[] = $record;
}
$OUTPUT = serialize($records);
$fp = fopen($filen,"w");
fputs($fp, $OUTPUT);
fclose($fp);
} // end else
// Query results are in $records array
foreach ($records as $id=>$row) {
if ($row['tytulnewsa'] == $_REQUEST['tytulnewsa']) {
?>
<?php echo $row['tytulnewsa']; ?>
<?php
} else {
?>
<div class="row1newsy"><font class="b-t"><b><?php echo $row['tytulnewsa']; ?></b></font><BR>
<img src="ilustracje/newsy/<?php echo $row['bodytext']; ?>" align="right" alt=""><font class="b-t">(dodano: <?php echo $row['czasnewsa']; ?>)</font><BR><BR><font class="content"><?php echo $row['hometext']; ?>
<?php
$kategoryja = $row['topic'];
if ($kategoryja == 9) {
?><BR><BR><a href="<?php echo $row['sid']; ?>,news.html">Czytaj więcej</a><?php
}
?>
</font><br><BR></div>
<?php }
} ?>
<div class="row1newsy" align="center">
<?php
echo "<b>Wszystkich newsów w bazie: $size, obecna strona ".($strona+1).", ilo¶ć stron ".ceil($size/$naStronie)."</b><br>";
if($strona!=0) echo "<a href=?strona=".($strona-1)."><b><<<</b> poprzednia</a>";
for($i=0; $i<ceil($size/$naStronie); $i++) {
if($strona==$i) echo " [".($i+1)."]";
else echo " <a href=\"$i,archiwum.html\">[".($i+1)."]</a> ";
}
if($strona<ceil($size/$naStronie)-1) echo " <a href=\"".($strona+1).",archiwum.html\">następna <b>>>></b></a> ";
?>
</div>
W innym miejscu:
Kod: Zaznacz cały
<?php
switch ($_GET['akcja'])
{
case 'news':
include("news-pokaz.php");
break;
default:
include("newsy.php");
break;
}
?>
Czy powodem tych problemów może być umieszczenie forum i strony w tym samym katalogu?
Re: Problem z integracją phpBB ze stroną
Na początek
zamień na
a nawet lepiej na
natomiast to
powinno wyglądać np. tak:
co do stosowania poleceń include*, require* to zalecam Ci używanie ich w poniżej przedstawiony sposób:
do tego używaj zawsze klamer przy instrukcjach warunkowych itd.
takie dobre nawyki
Kod: Zaznacz cały
if($_GET['strona']) $strona = $_GET['strona'];
else $strona = 0;
Kod: Zaznacz cały
if(isset($_GET['strona']))
{
$strona = $_GET['strona'];
}
else
{
$strona = 0;
}
Kod: Zaznacz cały
if(isset($_GET['strona']) && is_int($_GET['strona']))
{
$strona = $_GET['strona'];
}
else
{
$strona = 0;
}
Kod: Zaznacz cały
<?php
switch ($_GET['akcja'])
{
case 'news':
include("news-pokaz.php");
break;
default:
include("newsy.php");
break;
}
?>
Kod: Zaznacz cały
<?php
$akcja = (isset($_GET['akcja'])) ? $_GET['akcja'] : '';
switch ($akcja)
{
case 'news':
include("news-pokaz.php");
break;
default:
include("newsy.php");
break;
}
?>
Kod: Zaznacz cały
include './jakisplik.php';
takie dobre nawyki
Re: Problem z integracją phpBB ze stroną
Dzięki wielkie
Miałem jeszcze problem ze skryptem zapisującym referery w bazie, ale zastosowałem rozwiązanie podobne do tego z $_GET['strona']
i problem rozwiązany.
Jeszcze raz dzięki
Miałem jeszcze problem ze skryptem zapisującym referery w bazie, ale zastosowałem rozwiązanie podobne do tego z $_GET['strona']
Kod: Zaznacz cały
if(isset($_SERVER['HTTP_REFERER']))
{
$skadprzylazl = $_SERVER['HTTP_REFERER'];
}
else
{
$skadprzylazl = 0;
}
Jeszcze raz dzięki
Re: Problem z integracją phpBB ze stroną
Witam.
Testuję możliwości zintegrowania logowania pomiędzy serwisem i forum, ale mam zasadniczy problem z wykryciem sesji.
Wstawiłem na http://kapitula.iml.pl/test.php testowy skrypt, który można znaleźć w różnych tutorialach:
Jednak niezależnie od tego, czy jestem zalogowany, czy nie, pokazuje formularz logowania. Kiedy analogiczny kod wstawiłem na http://forum.iml.pl/test.php, działał ładnie.
Z tego, co wyczytałem, problem jest z ciasteczkami, jednak nie do końca rozumiem, jak go rozwiązać.
Ustawienia ciasteczek forum:
Domena ciasteczka: localhost
Nazwa ciasteczka: phpbb3_jgt83
Ścieżka ciasteczka: /
Bezpieczne ciasteczka: wyłączone
Podaję jeszcze plik php.ini: http://crpg.iml.pl/phpinfo.php
Testuję możliwości zintegrowania logowania pomiędzy serwisem i forum, ale mam zasadniczy problem z wykryciem sesji.
Wstawiłem na http://kapitula.iml.pl/test.php testowy skrypt, który można znaleźć w różnych tutorialach:
Kod: Zaznacz cały
<?php
//Tells PhpBB we're not hackers. Includes the common.php file from the forums.
define('IN_PHPBB', true);
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management. This allows us access to some of the user's information when they are logged in.
$user->session_begin();
$auth->acl($user->data);
$user->setup();
//Some common thing's you'll use. $username gives the username, and $userid gives the unique ID of the loggedin user.
$username = $user->data['username'];
$userid = $user->data['user_id'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Are You Logged In?</title>
</head>
<body>
<?
if($user->data['is_registered']){
//So if the user is logged in, using the if statement above:
echo "Hello ".$username.", whatsup?";
} else {
//If the user isn't logged in, show them the form so they CAN log in:
echo 'Login Below:
<form method="POST" action="../forum/ucp.php?mode=login">
<p>Username: <input type="text" name="username" size="40"></p>
<p>Password: <input type="password" name="password" size="40"></p>
<p>Remember Me?: <input type="checkbox" name="autologin"></p>
<p><input type="submit" value="Submit" name="login"></p>
</form>';
}
?>
</body>
</html>
Z tego, co wyczytałem, problem jest z ciasteczkami, jednak nie do końca rozumiem, jak go rozwiązać.
Ustawienia ciasteczek forum:
Domena ciasteczka: localhost
Nazwa ciasteczka: phpbb3_jgt83
Ścieżka ciasteczka: /
Bezpieczne ciasteczka: wyłączone
Podaję jeszcze plik php.ini: http://crpg.iml.pl/phpinfo.php
Re: Problem z integracją phpBB ze stroną
Więcej o ciasteczkach przeczytasz w artykule „Konfigurowanie ustawień domeny/ścieżki skryptu/cookies (ciasteczek)”. Natomiast na temat integracji sesji polecam poniższe artykuły:
Re: Problem z integracją phpBB ze stroną
Problem w tym, że ja czytałem owe artykuły, próbowałem zmieniać domenę cookies itp. i dalej nie mam pomysłu, o co może chodzić.
Re: Problem z integracją phpBB ze stroną
W kodzie Twojego formularza jest coś takiego:
Ustaw ścieżkę do forum.
Kod: Zaznacz cały
<form method="POST" action="PATH_TO_YOUR_FORUMS/ucp.php?mode=login">
Re: Problem z integracją phpBB ze stroną
Dzięki, niemniej z całą pewnością nie tego dotyczy problem.
Re: Problem z integracją phpBB ze stroną
Zacznijmy od początku. Korzystasz w dwóch miejscach z tego samego kodu i w jednym z nich on nie działa? Pod adresem http://forum.iml.pl/test.php może działać dla tego, że jest w tej samej domenie (subdomenie) co forum, a ciasteczka są właśnie do niej przypisywane. Zmieniając je tak, by pasowały do adresu http://kapitula.iml.pl pozbawisz się możliwości poprawnego logowania na forum.
Re: Problem z integracją phpBB ze stroną
No właśnie, każde inne ustawienie domeny ciasteczka niż localhost, z tych sugerowanych, skutkuje (po usunięciu starych ciasteczek i ponownym logowaniu) niemal natychmiastowym wylogowaniem, więc także w tym przypadku skrypt umieszczony czy to na innej subdomenie, czy to na domenie głównej, nie jest w stanie wykryć zalogowania. Nie wiem więc, jaka powinna być poprawna konfiguracja.
EDIT:
Problem rozwiązany, zadziałało ustawienie: .iml.pl
EDIT:
Problem rozwiązany, zadziałało ustawienie: .iml.pl
Re: Problem z integracją phpBB ze stroną
Może trochę odświeżę temat, ale mam ten sam problem i nie bardzo wiem jak to zrobić, mógłby ktoś wyjaśnić dokładniej?
Re: Problem z integracją phpBB ze stroną
również proszę o odpowiedź, gdyż mam ten sam problem. zastosowałam ustawnie .iml.pl ale nie wiem dlaczego nie zadziałało
Re: Problem z integracją phpBB ze stroną
Sprawdź
.nazwa_wlasnej_domeny.pl
a nie .iml.pl.