Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Error en session_star() (https://www.clubdelphi.com/foros/showthread.php?t=31049)

Shidalis 26-04-2006 18:52:44

Error en session_star()
 
Hola a todos
Esta vez quieran que me respondieran por que me da el siguiente error:
"Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\PaginaWeb\acceso.php:10)"

Les explico estoy tratando de hacer un iniciar sesion y en la linea de codigo donde coloco session_star() me da el error arriba mencionado; no se si es porque no es una funcion de php en realidad, pero quiera saber que debo hacer o por favor que me den un ejemplo de como puedo hacer un iniciar sesion seguro.

Gracias de antemano

dec 26-04-2006 19:14:19

Hola,

Lo que el error está diciéndote es que no puede hacerse uso de la función "session_start", porque esto implica utilizar la cabecera HTTP, pero, esta no puede "tocarse" una vez se ha enviado "algo" a la salida estándar, en este caso al cliente, al navegador. Revisa el archivo "acceso.php", concretamente la línea 10, tiene que haber ahí algo que "sale" hacia el navegador del cliente, aunque sea un espacio, o una línea en blanco, que impide que luego de eso pueda tocarse la cabecera HTTP, necesario, como he dicho, si se precisa utilizar la función "session_start", entre otras.

Shidalis 26-04-2006 20:08:47

disculpa la verdad es que no entiendo mucho lo que tratas de explicarme; pero mi pagina en toda php no tiene codigo html y coloque la funcion despues <?php y tampoco funciona lo que tengo es lo siguiente:

Código PHP:

<?php
//conecto con la base de datos 
require("configuracion.php");
$usuario $_POST["usuario"];
$clave $_POST["clave"];
//Sentencia SQL para buscar un usuario con esos datos 
$ssql "SELECT * FROM usuario WHERE usuario='$usuario' and clave='$clave'"
//Ejecuto la sentencia 
$rs mysql_query($ssql,$con); 
//vemos si el usuario y contraseña es váildo 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!=0){
    
//usuario y contraseña válidos 
    //defino una sesion y guardo datos 
    
session_start(); 
    
session_register("autentificado"); 
    
$autentificado "SI"
    
header ("Location: index.html"); 
}else { 
    
//si no existe le mando otra vez a la portada 
    
header("Location: index.html?errorusuario=si"); 

mysql_free_result($rs); 
mysql_close($conn); 
?>

por favor necesito ayuda en esto no se porque me da ese error

dec 26-04-2006 22:08:18

Hola,

Bueno. No debo saber explicarlo correctamente, pero, casi me atrevería a asegurarte que el error es el que trato de describir. Lo sé porque ya he pasado por ello, y, buscando información sobre el tema, me he topado conque es bastante común además.

Lo que muestras es el código PHP en que haces uso de la función "sesion_start", pero, fíjate que el propio mensaje de error te está ofreciendo información muy importante para poder solucionarlo: te está diciendo dónde se produce una salida para el cliente, te está señalando el punto exacto (creo), o sea el archivo y el número de línea en que se produce.

¿Echaste un vistazo a ese punto? El error suele ser bastante sencillo de localizar en cuanto lo hayas hecho al menos una vez. Por ejemplo, fíjate en lo siguiente:

Código PHP:

<!-- Aquí podría haber una línea en blanco, sin ningún texto/comentario -->
<?php

?>
<!-- Aquí podría haber otra línea en blanco, por ejemplo -->

Si incluyeras un archivo que contuviera el anterior código PHP (en realidad ni es código ni es nada, como puedes ver) y luego trataras de llamar a alguna función que tuviera que hacer uso de la cabecera HTTP obtendrías un error como el que obtienes ahora, porque, la línea en blanco, o el propio comentario que puedes ver arriba en su lugar, produciría una "salida" al cliente y no podría enviarse a continuación nada en la cabecera HTTP.

En tu caso no parece que el problema esté en la primera línea de un archivo, pero, podría estar en la última línea, o, en todo caso, como te muestra el error, en la línea 10 del archivo que también se refiere en el mensaje de error. Confirma eso, por favor, echa un vistazo al archivo y a la línea que te aparece en el mensaje de error. Creo que el problema está claro, es decir, espero que no me esté equivocando y pueda ser por otro motivo, pero, ya digo que juraría que se trata de eso.

Otra cosa es que no sepa explicarme en condiciones... si buscas en Google, por poner un caso, sobre ese mensaje de error en PHP probablemente encuentres la misma o parecida información que la que yo encontré en su momento cuando alguna vez me he topado con ese mismo problema. ;)

Shidalis 27-04-2006 14:46:47

Muchas gracias por tus observaciones fueron muy utiles.
Pero ahora tengo otro error a causa de esta funcion. tengo en otro archivo php el codigo para confirmar si el usuario esta logeado o no, y me da el mismo error.
Ojo aclaro ya inicio la sesion el error que estoy comentando ahorita es en otro archivo; y lo raro es que ejecuta la variable $_session[] pero me muestra unos errores.
Si me puedes ayudar en esto te lo agradeceria

Shidalis 27-04-2006 15:33:17

ya me funciono lo revise bien y tenia un espacio.
Tus sugerencias me sirvieron de mucho.
Muchas Gracias


La franja horaria es GMT +2. Ahora son las 00:32:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi