Bład z integracją - sprawdzanie czy zalogowany

Dyskusje odnośnie pomostów oraz integracji phpBB 3.0.x z systemami zarządzania treścią (CMS).
MrGohut
Posty: 3
Rejestracja: 12 grudnia 2013, 10:12

Bład z integracją - sprawdzanie czy zalogowany

Post autor: MrGohut » 12 grudnia 2013, 10:19

Mam takie cuś:

Kod: Zaznacz cały

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include ('seenews.php');

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>
<!doctype HTML>
<html lang="pl" dir="ltr">
	<head>
		<meta charset="utf-8" />
		<title>Testowa Strona WWW</title>
		<meta name="Description" content="" />
		<meta name="Keywords" content="" />
		<link rel="stylesheet" href="main.css" />	
		<!--[if lt IE 9]>
			<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->
	</head>
	<body>
<div id="panel">
				<div id="logowanie_rejestracja">
					<?php
						if($user->data['is_registered']) {
							if($user->data['group_id']==5) {
								echo '<p id="witaj">Jesteś zalogowany, witaj <a href="'.append_sid($phpbb_root_path.'memberlist.php?mode=viewprofile&u=' . $user->data['user_id'] . '').'">' . $user->data['username'] . '</a> !</p>';
								echo '<a id="wyloguj" href="'.append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id). '">Wyloguj</a>';
								echo '<p id="dodaj_newsa"><a href="/dodaj.php"><img src="/images/add.png" alt="dodaj newsa"/></a></p>';
								if($user->data['user_new_privmsg']>=1) {
									echo '<p id="msg_new"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_new.png" alt="nowa wiadomość"/></a></p>';
								}
								else {
									echo '<p id="msg_empty"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_empty.png" alt="brak nowej wiadomości"/></a></p>';
								}
								echo '<p id="edytuj_profil"><a href="'.append_sid($phpbb_root_path.'ucp.php').'"><img src="/images/profile.png" alt="edytuj profil"/></a></p>';
							}
							else {
								echo '<p id="witaj">Jesteś zalogowany, witaj <a href="'.append_sid($phpbb_root_path.'memberlist.php?mode=viewprofile&u=' . $user->data['user_id'] . '').'">' . $user->data['username'] . '</a> !</p>';
								echo '<a id="wyloguj" href="'.append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id). '">Wyloguj</a>';
								if($user->data['user_new_privmsg']>=1) {
									echo '<p id="msg_new"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_new.png" alt="nowa wiadomość"/></a></p>';
								}
								else {
									echo '<p id="msg_empty"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_empty.png" alt="brak nowej wiadomości"/></a></p>';
								}
								echo '<p id="edytuj_profil"><a href="'.append_sid($phpbb_root_path.'ucp.php').'"><img src="/images/profile.png" alt="edytuj profil"/></a></p>';
							}
						}
						else {
							echo '<p id="nie_zalogowany">Nie jesteś zalogowany. </p>';
							echo '<p id="nie_zalogowany2"><a href="../login.php">Zaloguj</a> się lub <a href="'.append_sid($phpbb_root_path.'ucp.php?mode=register').'">zarejestruj</a> jeśli jeszcze nie masz konta.</p>';
						}
					?>
				</div>
			</div>
<div id="box_index">
				<a id="starsze_up" href="wszystkie.php">Pokaż więcej &raquo;</a>
				<?php seeNews(); ?>
			</div>
</body>
</html>
i funkcja seenews

Kod: Zaznacz cały

<?php
require_once ('connect.php');
function seeNews () {
	$db = dbConn::getConnection();
	try {
		$SQL = $db->query("SELECT * FROM `news` ORDER BY data_dodania DESC LIMIT 5");
		while($AFR = $SQL->fetch()) {
			echo '<article class="caly_news">';
			echo '<div class="news_tytul"><a href="more.php?id='.$AFR['id_news'].'">'.$AFR['tytul'].'</a></div>';
			echo '<img class="img" src="'.$AFR['img'].'" alt="tymczasowy opis" />';
			echo '<div class="tresc">'.$AFR['wiadomosc'].'</div>';
			echo '<div class="read_more"><a href="more.php?id='.$AFR['id_news'].'">Czytaj Więcej >></a></div>';
			echo '<div class="autor">Autor: '.$AFR['autor'].'</div>';
			echo '<div class="data">Data dodania: <time>'.$AFR['data_dodania'].'</time></div>';
			if($user->data['is_registered'] and $user->data['group_id']==5) {
				echo '<div class="edit"><a href="edytuj_newsa.php?id='.$AFR['id_news'].'">Edytuj</a></div>';
			}
			echo '<hr class="hr">';
			var_dump($user->data['is_registered']);
			echo '</article>';
		}
	}
	catch (PDOException $e) {
		echo 'Oops ! Cos poszło nie tak !<br>'.$e->getMessage();
		die();
	}
}
?>
Chodzi o to

Kod: Zaznacz cały

if($user->data['is_registered'] and $user->data['group_id']==5) {
				echo '<div class="edit"><a href="edytuj_newsa.php?id='.$AFR['id_news'].'">Edytuj</a></div>';
			}
sprawdzam, czy user jest zalogowany i jest adminem (grupa 5) ale niestety to nie działa ...(czytaj nie wyświetla się opcja "edytuj") wywala w var_dumpie NULL przy is registered a przy group bool(false)
Na indexie mam jeszcze takie coś

Kod: Zaznacz cały

<?php
						if($user->data['is_registered']) {
							if($user->data['group_id']==5) {
								echo '<p id="witaj">Jesteś zalogowany, witaj <a href="'.append_sid($phpbb_root_path.'memberlist.php?mode=viewprofile&u=' . $user->data['user_id'] . '').'">' . $user->data['username'] . '</a> !</p>';
								echo '<a id="wyloguj" href="'.append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id). '">Wyloguj</a>';
								echo '<p id="dodaj_newsa"><a href="/dodaj.php"><img src="/images/add.png" alt="dodaj newsa"/></a></p>';
								if($user->data['user_new_privmsg']>=1) {
									echo '<p id="msg_new"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_new.png" alt="nowa wiadomość"/></a></p>';
								}
								else {
									echo '<p id="msg_empty"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_empty.png" alt="brak nowej wiadomości"/></a></p>';
								}
								echo '<p id="edytuj_profil"><a href="'.append_sid($phpbb_root_path.'ucp.php').'"><img src="/images/profile.png" alt="edytuj profil"/></a></p>';
							}
							else {
								echo '<p id="witaj">Jesteś zalogowany, witaj <a href="'.append_sid($phpbb_root_path.'memberlist.php?mode=viewprofile&u=' . $user->data['user_id'] . '').'">' . $user->data['username'] . '</a> !</p>';
								echo '<a id="wyloguj" href="'.append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout', true, $user->session_id). '">Wyloguj</a>';
								if($user->data['user_new_privmsg']>=1) {
									echo '<p id="msg_new"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_new.png" alt="nowa wiadomość"/></a></p>';
								}
								else {
									echo '<p id="msg_empty"><a href="'.append_sid($phpbb_root_path.'ucp.php?i=pm&folder=inbox').'"><img src="/images/msg_empty.png" alt="brak nowej wiadomości"/></a></p>';
								}
								echo '<p id="edytuj_profil"><a href="'.append_sid($phpbb_root_path.'ucp.php').'"><img src="/images/profile.png" alt="edytuj profil"/></a></p>';
							}
						}
						else {
							echo '<p id="nie_zalogowany">Nie jesteś zalogowany. </p>';
							echo '<p id="nie_zalogowany2"><a href="../login.php">Zaloguj</a> się lub <a href="'.append_sid($phpbb_root_path.'ucp.php?mode=register').'">zarejestruj</a> jeśli jeszcze nie masz konta.</p>';
						}
					?>
i tu wszystko poprawnie działa

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: Bład z integracją - sprawdzanie czy zalogowany

Post autor: jaroslw » 12 grudnia 2013, 17:22

W pliku seenews.php pewnie nie załączasz plików phpBB i obiekt $user nie istnieje.
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

MrGohut
Posty: 3
Rejestracja: 12 grudnia 2013, 10:12

Re: Bład z integracją - sprawdzanie czy zalogowany

Post autor: MrGohut » 12 grudnia 2013, 23:46

Ale przecież seenews jest ładowany do pliku index.php a tam już jest na początku wszystko załadowane. Jak dodaje tą samą formułkę, czyli to

Kod: Zaznacz cały

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include ('seenews.php');

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
do seenews to wyskakuje takie coś
Fatal error: Cannot redeclare deregister_globals() (previously declared in C:\xampp\htdocs\forum\includes\startup.php:47) in C:\xampp\htdocs\forum\includes\startup.php on line 114

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: Bład z integracją - sprawdzanie czy zalogowany

Post autor: jaroslw » 13 grudnia 2013, 14:14

Nie zauważyłem, że includujesz ten plik wcześniej. Zaraz po definicji funkcji:

Kod: Zaznacz cały

function seeNews () {
dodaj:

Kod: Zaznacz cały

global $phpbb_root_path, $user;
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

MrGohut
Posty: 3
Rejestracja: 12 grudnia 2013, 10:12

Re: Bład z integracją - sprawdzanie czy zalogowany

Post autor: MrGohut » 13 grudnia 2013, 20:17

śmiga, dzięki :)

Zablokowany