Foros del Web » Programando para Internet » PHP »

Un error en el server con variables de sesion

Estas en el tema de Un error en el server con variables de sesion en el foro de PHP en Foros del Web. Tengo una base de datos y una aplicacion de una encuesta en php que migre de un servidor linux a un servidor windows2000. En el ...
  #1 (permalink)  
Antiguo 04/06/2004, 10:39
 
Fecha de Ingreso: junio-2004
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Exclamación Un error en el server con variables de sesion

Tengo una base de datos y una aplicacion de una encuesta en php que migre de un servidor linux a un servidor windows2000. En el server linux trabajaba perfectamente pero cuando llamo la aplicacion en el servidor windows me devuelve el siguiente error siendo la linea del error la linea donde declaron el inicio de la sesion es decir, session_start();

Warning: Cannot send session cookie - headers already sent by (output started at e:\weblocal\html\prueba\apertura_fondos.php:5) in e:\weblocal\html\prueba\apertura_fondos.php on line 43

Warning: Cannot send session cache limiter - headers already sent (output started at e:\weblocal\html\prueba\apertura_fondos.php:5) in e:\weblocal\html\prueba\apertura_fondos.php on line 43

Warning: open(/tmp\sess_9b01c88691a65c7ae7c9057ac32f9ccd, O_RDWR) failed: m (2) in e:\weblocal\html\prueba\apertura_fondos.php on line 43

es algun error mio o es algo que debo modificar en la configuracion del php o el apache. Espero me puedan ayudar, pues apenas estoy empezando a trabajar con php.

Gracias

la_bruja

Última edición por la_bruja; 04/06/2004 a las 13:33
  #2 (permalink)  
Antiguo 04/06/2004, 12:55
 
Fecha de Ingreso: junio-2004
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Disculpen que suba el mensaje pero la verdad es que me urge terminar de mudar la aplicacion y no encuentro donde puede estar el error.

Gracias

la_bruja
  #3 (permalink)  
Antiguo 04/06/2004, 14:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No tienes PHP configurado para trabajar con sesiones en tu "Servidor" ... (ver php.ini)

session.save_path = debe apuntar a un directorio creado y con permisos de escritura de tu PC "servidor"... tipo "c:\nose\sesiones" o similar

Realiza el cambio en tu php.ini guardalo y reinicia tu servidor ...
más info en:
www.php.net/session

Un saludo,

Última edición por Cluster; 04/06/2004 a las 14:42
  #4 (permalink)  
Antiguo 04/06/2004, 15:26
 
Fecha de Ingreso: junio-2004
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Gracias por tu respuesta pero ya hice todo lo anterior, verifique como debo configurar el php.ini y asi lo he hecho revisando todos mas de dos veces, y unicamente desaparecio la ultima linea del error, incluso antes de que me respondieras y por ello subi el post crei que el error pobia ser otro, pues me continua apareciendo

Warning: Cannot send session cookie - headers already sent by (output started at e:\weblocal\html\prueba\apertura_fondos.php:5) in e:\weblocal\html\prueba\apertura_fondos.php on line 43

Warning: Cannot send session cache limiter - headers already sent (output started at e:\weblocal\html\prueba\apertura_fondos.php:5) in e:\weblocal\html\prueba\apertura_fondos.php on line 43

alguna otra sugerencia?

gracias
  #5 (permalink)  
Antiguo 05/06/2004, 17:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ahora el error que tienes es que estás entregando salida al cliente en tu línea 5 de "apertura_fondos.php" según te está diciendo el mensaje de error.

Esa "salida" puede ser HTML, .. echo "algo" .. un simple espacio o salto de línea antes o despues de tus <? ?>

Cuando haces un header() NO puede existir nada de salida antes al navegador .. Header() es una función de PHP que te permite enviar cabeceras HTTP a tu "cliente" .. y esas cabeceras van antes que tu HTML puedas enviar. Se entiende como HTML a un simple espacio o salto de línea .. o javacript .. etc ...

Un saludo,
  #6 (permalink)  
Antiguo 07/06/2004, 09:25
 
Fecha de Ingreso: junio-2004
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Gracias otra vez Cluster pero sigo en la oscuridad total tratare de explicarte en detalle como funciona mi pagina, ojala y alguien pueda ver mi error como te mencione antes el codigo funciona 100% en el servidor linux, el problema comienza cuando lo copie a un servidor windows 2000. Cluster en esta pagina no tengo ningun echo, la pagina por lo unico que esta formada es por un formulario que tiene un menu que genero dinamicamente leyendolo de la base de datos y cuyo resultado es el que deseo pasar en una variable de session, que voy a leer en mas de una pagina despues. De hecho la linea 5 de mi codigo es para declarar que uso hojas de estilo, aqui el codigo de mis primeras lineas de la 1 a la 11

<html>
<head>
<title>website_temporal</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-image: url(nueva/images/background.gif);
}
-->
</style>

A continuación creo una tabla en html donde estoy insertando la imagenes y menu que forman parte de mi sitio estático. De la linea 42 a la 49 inserto mi primer codigo php

<?php require_once('Connections/db_prueba.php');
session_start();
mysql_select_db($database_db_prueba, $db_prueba);
$query_ressecion = "SELECT * FROM tbseccion";
$ressecion = mysql_query($query_ressecion, $db_prueba) or die(mysql_error());
$row_ressecion = mysql_fetch_assoc($ressecion);
$totalRows_ressecion = mysql_num_rows($ressecion);
?>

Creo mi formulario
<form action="insert_solicitud_apertura.php" method="post" name="apertura" id="apertura">
creo la tabla donde insertare los campos del formulario
y estas son las lineas que generan mi campo creado dinamicamente leyendo de una tabla en mysql
<select name="seccion" id="seccion">
<option value="">Secciones</option>
<?php
do {
?>
<option value="<?php echo $row_ressecion['seccionid']?>"><?php echo $row_ressecion['nombreseccion']?></option>
<?php
} while ($row_ressecion = mysql_fetch_assoc($ressecion));
$rows = mysql_num_rows($ressecion);
if($rows > 0) {
mysql_data_seek($ressecion, 0);
$row_ressecion = mysql_fetch_assoc($ressecion);
}
$rdseccion = $row_ressecion['seccionid'];
session_register("rdsession");
?>
</select>
A continuacion solo continua un formulario de puro html hasta la linea 128
<?php
mysql_free_result($ressecion);
?>
cierro mis tablas y termino mi pagina.

De verdad que sigo sin ver cual puede ser el error, y ya ando medio desesperada

la_bruja

Última edición por la_bruja; 07/06/2004 a las 09:29 Razón: faltas de ortografia
  #7 (permalink)  
Antiguo 08/06/2004, 09:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para PHP no tiene sentido:

Código PHP:
<html>
<head>
</head>
<body>
<?
session_start
();
 
// por aquí PHP
?>
</body>
</html>
PHP se ejecuta -primero- en el servidor y lo que "genera" es una salida al "cliente" .. Esa salida en tu caso es "HTML/javscirpt/etc" .. Si piensas en cómo trabaja PHP en lugar de "incrustrar" PHP sobre HTML te irá mejor para entender como funcionan las funciones tipo header() .. session_Start() y algunas más que entregan sus própias cabeceras HTTP antes de lo que tu puedas generar con tu HTML/javascript/etc ...

Lo correcto sería:

Código PHP:
<?
session_start
();
?>
<html>
<head>
</head>
<body>
<? // por aquí más PHP que pueda generar HTML dinámico entre otras cosas. ?>
</body>
</html>
Un saludo,

Última edición por Cluster; 08/06/2004 a las 09:04
  #8 (permalink)  
Antiguo 08/06/2004, 16:13
 
Fecha de Ingreso: junio-2004
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 0
Mil gracias Cluster ya me funciono, realmente he hecho algunas cositas en php pero siempre con dreamweaver tratare de estudiar mas y por aqui seguire, la verdad que este foro ha sido de los mejores que encontre.

la_bruja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:44.