elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  php - session_start , problemillas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: php - session_start , problemillas  (Leído 2,516 veces)
Neibar

Desconectado Desconectado

Mensajes: 47


Ver Perfil
php - session_start , problemillas
« en: 3 Mayo 2012, 10:54 am »

Código
  1. <?php
  2.    $conectarbd= mysql_connect( "localhost", "root", "");
  3. if($conectarbd){
  4. $conectar_tabla= mysql_select_db("bag");
  5. if($conectar_tabla){
  6.          $comprueba=mysql_query("Select alias,mail,pass from usuarios where mail = '".$_POST['mail']."' && pass='".$_POST['pass']."'");
  7.          if($comprueba){
  8.            $nick = mysql_fetch_array(mysql_query("Select alias,mail,pass from usuarios where mail = '".$_POST['mail']."' && pass = '".$_POST['pass']."'"));
  9.            $_SESSION['nick']= $nick[0];
  10.            if($_SESSION['nick']!= ""){
  11.                echo "<p> ".$nick[0]." </p>";
  12.            }else{
  13.                header("Location: ../index.html");
  14.            }
  15.          }
  16.        }
  17.    }
  18. ?>
  19.  

Alguien podria orientarme un poco con el tema de sesiones?
Me he mirado el manual de php --> http://www.php.net/manual/es/features.sessions.php

Pero siguiendo esos pasos, no se porque me salen errores:

Código:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\projecte\pag\content.php:153) in C:\xampp\htdocs\projecte\pag\content.php on line 154

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\projecte\pag\content.php:153) in C:\xampp\htdocs\projecte\pag\content.php on line 154

Si quito el session_start(); y session_destroy(); , funciona bien. Lo que pasa es que quiero privatizar esa pagina para que el que no esté registrado/autentificado no pueda verla.


En línea

JohnConnor

Desconectado Desconectado

Mensajes: 16


Cyberdine Systems


Ver Perfil WWW
Re: php - session_start , problemillas
« Respuesta #1 en: 3 Mayo 2012, 17:19 pm »

la verdad no se por que no funciona, debe ser porque usas xampp, te recomiendo AppServ a menos que uses perl tambien.

prueba con esto:

Código
  1. <?php
  2. $mail="johnconnor";
  3. $pass="123";
  4. $conectarbd=mysql_connect("localhost","root","laclave");
  5. if($conectarbd){
  6. $conectar_tabla= mysql_select_db("dbusers");
  7. if($conectar_tabla){
  8.          $comprueba=mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass='".$pass."'");
  9.          if($comprueba){
  10. $nick = mysql_fetch_array(mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass = '".$pass."'"));
  11.  
  12. $_SESSION['nick']=$nick[0];
  13.            if($_SESSION['nick']!= ""){
  14.                echo "<p> ".$nick[0]." </p>";
  15.            }else{
  16.                header("Location: ../index.html");
  17.            }
  18.          }
  19.        }
  20.    }
  21. ?>
  22.  
  23.  
 

CUIDADO CON LOS ATAQUES SQL!

Saludos!


« Última modificación: 3 Mayo 2012, 17:26 pm por JohnConnor » En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: php - session_start , problemillas
« Respuesta #2 en: 3 Mayo 2012, 18:23 pm »

El problema está claro, en algun lugar estas 'printando' algo, es decir enviando algo al documento html generado. Esto no se puede hacer antes de usar

Código
  1. header("Location: ../index.html");

Puesto que una vez que printamos algo (por ejemplo echo 'hola') ya no se permite modificar la cabecera del documento con header(location...), por ejemplo el siguiente codigo:

Código
  1. <?php
  2. echo "printando algo";
  3. header("Location: http://www.google.com/");
  4. ?>

Te da el siguiente warning ( y obviamente luego no redirije a www.google.com):

Citar
printando algo
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\PoC.php:2) in C:\AppServ\www\PoC.php on line 3
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Neibar

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: php - session_start , problemillas
« Respuesta #3 en: 3 Mayo 2012, 19:43 pm »

la verdad no se por que no funciona, debe ser porque usas xampp, te recomiendo AppServ a menos que uses perl tambien.

prueba con esto:

Código
  1. <?php
  2. $mail="johnconnor";
  3. $pass="123";
  4. $conectarbd=mysql_connect("localhost","root","laclave");
  5. if($conectarbd){
  6. $conectar_tabla= mysql_select_db("dbusers");
  7. if($conectar_tabla){
  8.          $comprueba=mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass='".$pass."'");
  9.          if($comprueba){
  10. $nick = mysql_fetch_array(mysql_query("Select alias,mail,pass from usuarios where mail = '".$mail."' && pass = '".$pass."'"));
  11.  
  12. $_SESSION['nick']=$nick[0];
  13.            if($_SESSION['nick']!= ""){
  14.                echo "<p> ".$nick[0]." </p>";
  15.            }else{
  16.                header("Location: ../index.html");
  17.            }
  18.          }
  19.        }
  20.    }
  21. ?>
  22.  
  23.  
 

CUIDADO CON LOS ATAQUES SQL!

Saludos!

si.. los ataques sql seran en breves mi siguiente ojeada xd gracias!

El problema está claro, en algun lugar estas 'printando' algo, es decir enviando algo al documento html generado. Esto no se puede hacer antes de usar

Código
  1. header("Location: ../index.html");

Puesto que una vez que printamos algo (por ejemplo echo 'hola') ya no se permite modificar la cabecera del documento con header(location...), por ejemplo el siguiente codigo:

Código
  1. <?php
  2. echo "printando algo";
  3. header("Location: http://www.google.com/");
  4. ?>

Te da el siguiente warning ( y obviamente luego no redirije a www.google.com):


aaaaaaaaamigo jaajajaja muchas gracias! Vaya error más tonto..
En línea

Neibar

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: php - session_start , problemillas
« Respuesta #4 en: 3 Mayo 2012, 20:02 pm »

ya lo solucioné con javascript/php

Código
  1. echo"<script language='javascript'>window.location='../index.php';</script>;";
  2.  

gracias !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
session_start(): Cannot send session cache limiter - headers already sent
PHP
Casidiablo 7 10,538 Último mensaje 6 Noviembre 2007, 22:22 pm
por SirLanceCC
session_start() [php]
PHP
Ari Slash 2 3,701 Último mensaje 17 Diciembre 2009, 21:29 pm
por Ari Slash
problemas con session_start() (CERRADO) « 1 2 »
PHP
Zeroql 11 5,945 Último mensaje 12 Junio 2011, 15:20 pm
por Zeroql
session_start(); Me cicla la pagina
Desarrollo Web
L0Ko 3 2,494 Último mensaje 22 Mayo 2012, 23:11 pm
por [u]nsigned
Error con $session_start()
PHP
basickdagger 6 2,947 Último mensaje 9 Marzo 2015, 13:36 pm
por Pablo Videla
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines