Ir ao conteúdo
  • Cadastre-se

PHP - Site Múltiplos Idiomas e Login via Google


Posts recomendados

Olá Galera,

 

Meu problema parece ser simples de resolver, mas estou tendo dificuldades. Vou tentar explicar...

 

Estou fazendo um sistema web (PHP e MySQL) com Login via Google e 3 idiomas (PT-BR/EN/ES). Quando estou na tela inicial (index.php), não é apresentado nenhum erro. Porém, após clicar no link de login do Google, deveria me levar para o link de retorno (index1.php), mas o navegador me apresenta o erro do arquivo de topbar que não tem nada a ver, porém, se eu comentar essa linha ou retirar esse arquivo, o sistema fica como se tivesse muitos redirecionamentos. Em anexo, está um dos arquivos de idioma (O erro acontece em qualquer idioma).

 

Já peço desculpas se postei os códigos de maneira errada, agradeço pela atenção e se alguém puder me ajudar.

 

Citação

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/telecom/include/topbar.php:5) in /var/www/html/telecom/index.php on line 26

 

Error to redirect | Logout

 

INDEX.PHP

<?php
require_once("include/common.php"); // Language settings
require_once("include/config.php"); // All system definitions
require_once("include/functions.php"); // Google functions
require_once("include/head.php"); // Css, Script, and so on
require_once("include/header.php"); //Header content

//print_r($_GET);die;

if(isset($_REQUEST['code'])){
	$gClient->authenticate();
	$_SESSION['token'] = $gClient->getAccessToken();
	header('Location: ' . filter_var($redirectUrl, FILTER_SANITIZE_URL));
}

if (isset($_SESSION['token'])) {
	$gClient->setAccessToken($_SESSION['token']);
}

if ($gClient->getAccessToken()) {
	$userProfile = $google_oauthV2->userinfo->get();
	//DB Insert
	$gUser = new Users();
	$gUser->checkUser('google',$userProfile['id'],$userProfile['given_name'],$userProfile['family_name'],$userProfile['email'],$userProfile['gender'],$userProfile['locale'],$userProfile['link'],$userProfile['picture']);
	$_SESSION['google_data'] = $userProfile; // Storing Google User Data in Session
	header("location: index1.php");
	$_SESSION['token'] = $gClient->getAccessToken();
} else {
	$authUrl = $gClient->createAuthUrl();
}

if(isset($authUrl)) {

	echo '<div class="panel panel-default text-center">';
	echo '<div class="panel-heading">';
	echo '<h3 class="panel-title">';
	echo '<a href="'.$authUrl.'"><i class="fa fa-google-plus" aria-hidden="true"></i> '.$lang['GOOGLE_LOGIN'].' </a>';
	echo '</h3>';
	echo '</div>';
	echo '</div>';
} else {
	echo 'Error to redirect | <a href="logout.php?logout">Logout</a>';
}
require_once("include/footer.php");
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

INDEX1.PHP

<?php
//if(!isset($_SESSION['google_data'])):header("Location:index.php");endif;
if(!isset($_SESSION['google_data'])){
	header("Location:index.php");
} else {
//Get the email authenticated
	$googleHd = $_SESSION['google_data']['hd'];
	$googleD = explode('.', $googleHd);
	$googleDomain = $googleD[1] . "." . $googleD[2];

//if domain is XXX.com, enable to continue
	if ($googleDomain == 'XXX.com') {

require_once("include/common.php"); // Language settings
require_once("include/config.php"); // All system definitions
require_once("include/functions.php"); // Google functions
require_once("include/head.php"); // Css, Script, and so on
require_once("include/header.php"); //Header content
//require_once("include/connection.php"); //Header content
//require_once("oracletelecom.php"); //Header content

echo $googleDomain;

require_once("include/footer.php"); // Footer content

} else {

//function to redireck if user is not authorized..
	function redirect($link){
		if ($link==-1){
			echo" <script>history.go(-1);</script>";
		}else{
			echo" <script>document.location.href='$link'</script>";
		} // Else
	} // function
	$link = 'logout.php'; // redirect to
	redirect($link); // call function
}
}
?>

COMMON.PHP

<?php
if(!isset($_SESSION)){
  session_start();
}
//header('Cache-control: private'); // IE 6 FIX
if(isset($_GET['lang'])){
  $lang =& $_GET['lang'];
// register the session and set the cookie
  $_SESSION['lang'] = $lang;
  setcookie('lang', $lang, time() + (3600 * 24 * 30));
} else if(isset($_SESSION['lang'])) {
  $lang = $_SESSION['lang'];
} else if(isset($_COOKIE['lang'])) {
  $lang = $_COOKIE['lang'];
} else {
  $lang = 'en';
} switch ($lang) {
  case 'en':
  $lang_file = 'lang.en.php';
  break;
  case 'pt':
  $lang_file = 'lang.pt.php';
  break;
  case 'es':
  $lang_file = 'lang.es.php';
  break;
  default:
  $lang_file = 'lang.en.php';
}
require_once 'languages/'.$lang_file;

TOPBAR.PHP

<?php

if(isset($_SESSION['google_data'])){
	echo '<div class="col-md-9">';
	echo $lang['NAVBAR'];
	echo '</div>';
	echo '<div class="col-md-3">';
	echo '<div class="top-number">';
	echo '<p>';
	echo $lang['LANG_ICON'] . $lang['LOGOUT'];
	echo '</p>';
	echo '</div>';
echo '</div>';
}else{
	echo '<div class="col-md-12 text-center">';
	echo '<div class="top-number">';
	echo $lang['LANG_ICON'] . $SystemName;
	echo '</div>';
	echo '</div>';
}
?>

 

lang.pt.txt

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...