PHP - Me sale el error "Cannot modify header information - headers already sent by..."

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 26 puestos en PHP (en relación al último mes)
Gráfica de PHP

Me sale el error "Cannot modify header information - headers already sent by..."

Publicado por cesar (2 intervenciones) el 18/03/2019 19:41:34
Buenos días con todos y de antemano gracias por leer este post.

Estoy tratado de hacer una web a la cual los usuarios se puedan loguear con su cuenta de gmail para poder comentar en la pagina.
La cuestión es que cuando estoy logueado me aparece el nombre del usuario y todo bien hasta allí. pero cuando recargo la pagina me sale ese código de error.

probé con redireccionarlo a otra pagina con HEADER LOCATION pero cuando se redirecciona se soluciona lo del error al recarga la pagina pero ya no me sale el nombre de usuario.

Ese script php lo tengo subido a un hosting gratuito y les dejo el link para que puedan ver mejor el error.

https://romantex.000webhostapp.com/

Espero me puedan ayudar. Saludos y gracias de nuevo.

/*----------------------------------------------------------------------*/
Archivo index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
$t;
    require_once('vendor/autoload.php');
 
    require_once('app/clases/google_auth.php');
    require_once('app/init.php');
 
 
 
    $googleClient = new Google_Client();
    $auth = new GoogleAuth($googleClient);
 
 
    if($auth->checkRedirectCode()){
        //die($_GET['code']);
        //header('Location: index.php');
       GLOBAL $t;
       $t = $titi;
 
 
        echo $t;
 
 
    }
 
?>
 
 
<!DOCTYPE HTML>
<html>
 
<head>
    <title></title>
</head>
 
<body>
 
 
    <a href="<?php echo $auth->getAuthUrl(); ?>"> Inicia Sesion</a>
 
 
 
</body>
 
 
</html>


/*----------------------------------------------------------------------*/
Archivo google_auth.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
$titi;
class GoogleAuth{
 
    protected $client;
 
    public function __construct(Google_Client $googleClient = null){
        $this->client = $googleClient;
        if($this -> client){
            $this -> client ->setClientId('77259071327-0vp6kjmroik970esgn27elkfvcl9abir.apps.googleusercontent.com');
            $this -> client ->setClientSecret('YxcyNRPXe-xg4UTBpD_UQdOs');
            $this -> client ->setRedirectUri('https://romantex.000webhostapp.com/index.php');
            $this -> client ->setScopes('profile');
 
        }
    }
 
 
    public function isLoggedIn(){
        return isset($_SESSION['access_token']);
    }
 
 
    public function getAuthUrl(){
        return $this->client->createAuthUrl();
    }
 
 
    public function checkRedirectCode(){
        if(isset($_GET['code'])){
            $this->client->authenticate($_GET['code']);
            $this->setToken($this->client->getAccessToken());
 
            $payload = $this->getPayload();
 
            GLOBAL $titi;
            $titi = ($payload['name']);
 
            //echo $titi;
 
 
            //$this->pupu($tu);
 
            return true;
        }
        return false;
    }
 
   //      public function pupu($mrd){
   //         echo $mrd;
  //  }
 
 
 
 
 
    public function setToken($token){
        $_SESSION['access_token'] = $token;
        $this->client->setAccessToken($token);
    }
 
    public function getPayload(){
        $payload = $this->client->verifyIdToken();
        return $payload;
    }
 
}
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de abzer0x
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Me sale el error "Cannot modify header information - headers already sent by..."

Publicado por abzer0x (3 intervenciones) el 19/03/2019 03:15:15
Hola, lo primero que deberías hacer es luego de crear la instancia es comprobar si el usuario está logueado, es decir, llamar al método isLoggedIn, de ser así redireccionar a la página correspondiente de lo contrario si ejecutas el código donde llamas al método checkRedirectCode.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 26 puestos en PHP (en relación al último mes)
Gráfica de PHP

Me sale el error "Cannot modify header information - headers already sent by..."

Publicado por cesar (2 intervenciones) el 19/03/2019 03:29:44
Hola y gracias por responderme amigo. Si, si tenía la validación pero la quite para ver si ese era el problema y al probarlo seguia el mismo errror asi que no creo que sea por eso porq lo probé. Si gustas puedes probarla tu mismo porq esta en un hosting el link lo dejé arriba. Agradecería que me puedas ayudar ya que no cuanto con algun profesor o algo por el estilo a quien acudir. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de abzer0x
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Me sale el error "Cannot modify header information - headers already sent by..."

Publicado por abzer0x (3 intervenciones) el 20/03/2019 05:33:25
Hola, hice algunas modificaciones en el código del archivo index.php, intenta probarlas y nos comentas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
session_start();
$t;
require_once('vendor/autoload.php');
require_once('app/clases/google_auth.php');
require_once('app/init.php');
 
$googleClient = new Google_Client();
$auth = new GoogleAuth($googleClient);
 
if (!$auth->isLoggedIn()) { // Si el usuario no ha iniciado sesión genero el token y demás cosas...
    if(!$auth->checkRedirectCode()){ // si hubo un error al generar el token muestro un mensaje...
         die('Error al iniciar sesión')
    }
}
 
?>
 
 
<!DOCTYPE HTML>
<html>
<head>
    <title></title>
</head>
<body>
    <?php
    if(!isset($_SESSION['access_token'])) {
    ?>
        <a href="<?php echo $auth->getAuthUrl(); ?>">Iniciar Sesión</a>
    ?>
    <?php } else { ?>
    <h1> Bienvenido! </h1>
    <?php } ?>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar