Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Dane cookies

Założony przez  uukassiu.

wersja skryptu MyBB: 1.6.10
adres forum: nie aktywne
na czym polega problem (screen, opis, komunikaty):

Otóż na własnej stronie php chcę aby po zalogowaniu na forum wyświetliła mi się strona, która za zadanie będzie miała wyświetlić nick zalogowanej osoby. Mam skrypt sprawdzający czy ciastka istnieją

<?php

if(isset($_COOKIE['mybbuser']))
   echo "Ciasteczko";
else
   echo "Brak ciasteczka";
?>

I to działa. Nie wiem tylko jak pokazać login. I jak zrobić to pod innym adresem, tzn. forum mam pod adresem
strona.pl/forum/

A kod ma działać na
strona.pl/

W wiki jest artykuł jak zintegrować własną stronę ale dla mnie to jest kiepsko wytłumaczone. I nic z tego nie rozumiem, żeby coś samemu popróbować.
RadnoK napisał 25.07.2013, 02:33:
Co to ma wspólnego z MyCode? Przenoszę do odpowiedniego działu.
Bawienie się w sprawdzanie ciastek jest tutaj bezsensu.

<?php
if($mybb->user['uid'] > 0)
{
    
$uid = (int) $mybb->user['uid'];
    
$user get_user($uid);
    
$name $user['username'];
}
else
{
// Gość
}
?>
Rozumiem, że to jest z pominięciem ciastek i muszę się połączyć do bazy?
Bo jeśli tak to mimo zalogowania podaje wartość dla gości.
(24.07.2013, 20:07)uukassiu napisał(a): Rozumiem, że to jest z pominięciem ciastek i muszę się połączyć do bazy?
Bo jeśli tak to mimo zalogowania podaje wartość dla gości.

Tak. Skrypt już przetworzył informację (cookie) o użytkowniku i podaje gotowe dane. Jedyne co musisz zrobić to pobrać plik global.php na początku kodu.

define('IN_MYBB'1);
require_once 
'./global.php'
A jak bardzo na początku? bo mam jeszcze coś takiego na samej górze.

<?php
include('baza/dane.php');
?>

Ogólnie to mam coś takiego.
<?php
include('baza/dane.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">
<head>
<meta http-equiv="Content-type" content="application/xhtml+xml; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<?php
$mybb = mysql_query("SELECT * FROM `mybb_forumusers`") or die('Błąd Bazy MySQL'); // zapytanie mysql

if($mybb->user['uid'] > 0)
{
    $uid = (int) $mybb->user['uid'];
    $user = get_user($uid);
    $name = $user['username'];
    
    echo $id;
    echo $user;
    echo $name;
}
else
{
// Gość
echo 'Nie jesteś zalogowany';
}

?>
</body>
</html>

PS: jak daje na samiuśkiej górze to nic to nie zmienia. Dalej tylko treść dla gości.
$mybb mysql_query("SELECT * FROM `mybb_forumusers`") or die('Błąd Bazy MySQL'); // zapytanie mysql 

Te zapytanie jest tutaj zbędne.

Poprawiony kod:
<?php
include('baza/dane.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">
<head>
<meta http-equiv="Content-type" content="application/xhtml+xml; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<?php
define
('IN_MYBB'1);
require_once 
'./global.php';

if(
$mybb->user['uid'] > 0)
{
    
$uid = (int) $mybb->user['uid'];
    
$user get_user($uid);
    
$name $user['username'];
    
    echo 
$id;
    echo 
$user;
    echo 
$name;
}
else
{
// Gość
echo 'Nie jesteś zalogowany';
}

?>
</body>
</html> 
Super, działa...ale
Próbuję przerzucić poziom wyżej w katalogach ale cały czas mam błędny adres pliku global.php mimo, że próbowałem różnie.

Poziom wyżej tzn bez katalogu "forum"

I czy to z kropką, ukośnikiem, forum i łączone.

Warning: require_once(/forum/global.php) [function.require-once]: failed to open stream: No such file or directory in strona.org/public_html/cookie.php on line 14

Fatal error: require_once() [function.require]: Failed opening required '/forum/global.php' (include_path='.:/usr/local/php5/lib/php') in strona.org/public_html/cookie.php on line 14
(24.07.2013, 20:43)uukassiu napisał(a): Super, działa...ale
Próbuję przerzucić poziom wyżej w katalogach ale cały czas mam błędny adres pliku global.php mimo, że próbowałem różnie.

Poziom wyżej tzn bez katalogu "forum"

I czy to z kropką, ukośnikiem, forum i łączone.

Nie bardzo rozumiem. Plik z kodem znajduje się w tym samym katalogu co global.php, czy w jakimś innym?

Spróbuj może:
require_once '../global.php'
plik global znajduje się w katalogu forum tzn. i kod działał gdy plik wrzuciłem do tego samego katalogu
strona.org/forum/

Ale docelowo chcę wrzucić poziom wyżej czyli
strona.org/

I tutaj już nie działa. Próbowałem zmieniać ścieżkę ale nie daje efektu. Chyba, że gdzie indziej leży sedno.
require_once './forum/global.php'
Jeżeli dobrze zrozumiałem.
Dobrze zrozumiałeś. Walnąłem literówkę dlatego mi nie działało. Tyle, że jest kolejny problem. Teraz mi wyświetla
MyBB napotkało błąd wewnętrzny i nie może kontynuować.

Typ błędu:
Ostrzeżenie (2)
Treść błędu:
Cannot modify header information - headers already sent by (output started at strona.org/public_html/cookie.php:12)
Lokalizacja:
Plik: inc/functions.php
Linia: 1701
Fragment kodu:
Plik    Linia    Funkcja
/inc/class_error.php    206    errorHandler->output_error
[PHP]         errorHandler->error
/inc/functions.php    1701    header
/inc/class_session.php    342    my_setcookie
/inc/class_session.php    79    session->load_guest
/global.php    55    session->init
strona.org/public_html/cookie.php    14    require_once
Odwiedź Polski Support MyBB aby uzyskać pomoc.


Cały kod jeszcze raz
<?php
include('baza/dane.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">
<head>
<meta http-equiv="Content-type" content="application/xhtml+xml; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
<?php
define('IN_MYBB', 1);
require_once './forum/global.php';

if($mybb->user['uid'] > 0)
{
    $uid = (int) $mybb->user['uid'];
    $user = get_user($uid);
    $name = $user['username'];
    
  
    echo 'Name '.$name.'';
}
else
{
// Gość
echo 'Nie jesteś zalogowany';
}

?>
</body>
</html>
To pewnie przez ten HTML w kodzie. Spróbuj umieścić surowy kod PHP i zacząć korzystać z wbudowanego w MyBB systemu szablonów.

<?php
include('baza/dane.php'); // Potrzebna Ci ta linijka?
define('IN_MYBB'1);
require_once 
'./global.php';

if(
$mybb->user['uid'] > 0)
{
    
$uid = (int) $mybb->user['uid'];
    
$user get_user($uid);
    
$name $user['username'];
    
    echo 
$id;
    echo 
$user;
    echo 
$name;
}
else
{
// Gość
echo 'Nie jesteś zalogowany';
}

?>

@edit
Jest jeszcze druga możliwość
https://webboard.pl/wiki.php?blad-cannot...-sent.html
Nie jest mi ta linijka potrzebna. Jak zostawię sam kod to mi wyświetla tylko część dla gości znowu.
(24.07.2013, 21:05)uukassiu napisał(a): Nie jest mi ta linijka potrzebna. Jak zostawię sam kod to mi wyświetla tylko część dla gości znowu.

Raczej niemożliwe, aby usunięcie kodu HTML miało jakiś wpływ na to. Wklej jeszcze raz cały kod, który masz w pliku.
<?php
define('IN_MYBB', 1);
require_once './forum/global.php';

if($mybb->user['uid'] > 0)
{
    $uid = (int) $mybb->user['uid'];
    $user = get_user($uid);
    $name = $user['username'];
    
  
    echo 'Name '.$name.'';
}
else
{
// Gość
echo 'Nie jesteś zalogowany';
}

?>

A ciastka mogą mieć tu jakieś znaczenie? Bo one są robione na katalog /forum chyba



Użytkownicy przeglądający ten wątek:

2 gości