Foros del Web » Programando para Internet » PHP »

en un servidor funciona en otro no ¿porque?

Estas en el tema de en un servidor funciona en otro no ¿porque? en el foro de PHP en Foros del Web. Buenas , estoy terminando una web en local usando xampp y php "PHP Version 5.1.6" e el servidor al q lo subo usa versión 4.4.4 ...
  #1 (permalink)  
Antiguo 23/01/2008, 11:59
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
en un servidor funciona en otro no ¿porque?

Buenas , estoy terminando una web en local usando xampp y php "PHP Version 5.1.6" e el servidor al q lo subo usa versión 4.4.4 ¿ese sera el problema no?, ¿que debo modificar porfavor?.
,el problema lo tengo al subir la web al servidor y en concreto con este código que no me funciona en este servidor ,ahora en local funciona perfectamente:

Código:
<table>
<tr><td> Ref</td><td>Artículo</td><td>Unidades</td><td>Precio</td><td>Total</td></tr>


<form action="<?= $PHP_SELF; ?>" method="post">
<?
@session_start();

if ( !session_register('pedidos') )

	session_register('pedidos');

if (!session_register('suma_total'))

	session_register('suma_total');

for ($i=0 ; $i<=count($_SESSION['pedidos'] ) ; $i++)
{
	//Referencia
	echo "<tr><td ><input name='pedidos[$i][0]' type='text' value='".$_SESSION['pedidos'][$i][0]."' /></td >";

	//Articulo nombre
	echo "<td ><input name='pedidos[$i][1]' type='text' value='".$_SESSION['pedidos'][$i][1]."' /></td >";

	//Unidades artículo
	echo "<td ><input name='pedidos[$i][2]' type='text' value='".$_SESSION['pedidos'][$i][2]."'  /></td >";
	
	//Precio artículo/unidad
	echo "<td ><input name='pedidos[$i][3]' type='text' value='".$_SESSION['pedidos'][$i][3]."'  /></td >";


	//Precio Total del Total de unidades de ese artículo  
	echo "<td ><input name='total' type='text' value='".$total=$_SESSION['pedidos'][$i][2]*$_SESSION[pedidos][$i][3]."'  /></td ><tr>";
	

	echo "<br>";
	$_SESSION['suma_total']+=$total;
	
}
//Si no le damos al botón Terminar cierra la fila y no muestra el total
	
	echo "<br>";
	
	echo "<tr><td><input name='Siguiente' type='submit' value='Siguiente' /></td>";
	echo "<td><input name='Terminar' type='submit' value='Terminar' onClick='AbreVentana()' /></td>
	</tr>";
	echo "<tr><td colspan='5' align='right'>Suma Total : ".$_SESSION['suma_total'] ."</td></tr>";
	
		echo count($_SESSION['pedidos']);

		?>
		
</table>

Gracias de antemano por la ayuda
  #2 (permalink)  
Antiguo 23/01/2008, 12:03
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: en un servidor funciona en otro no ¿porque?

tenes idea de si tu host soporta sesiones?
  #3 (permalink)  
Antiguo 23/01/2008, 12:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: en un servidor funciona en otro no ¿porque?

Esta parte:
Código PHP:
<?
@session_start();
Esta justo después del <form>, lo que hace que no se pueda iniciar la sesión, recuerda que session_start debe de ir antes de cualquier salida de texto al explorador.

Saludos.
  #4 (permalink)  
Antiguo 23/01/2008, 13:14
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Re: en un servidor funciona en otro no ¿porque?

Cita:
Iniciado por GatorV Ver Mensaje
Esta parte:
Código PHP:
<?
@session_start();
Esta justo después del <form>, lo que hace que no se pueda iniciar la sesión, recuerda que session_start debe de ir antes de cualquier salida de texto al explorador.

Saludos.
Gracias GatorV por tu siempre preciada ayuda ,pero te comento ..
tal y como tengo el código con el session_start() donde está funciona 100% en LOCAL pero no en el server que lo tengo alojado , ahora si pongo el session_start antes del <form> (justo despues del body <? @session_start() ?> ) NO FUNCIONA EN NINGUNO DE LOS SERVIDORES ¡¡ ¿increible verdad?, yo mismo no me lo explico
¿alguna idea?.

NOTA: Derrepente me ha dejado de funcionar en local como yo tenía puesto el código (el q he pegado antes) , pero prometo que durante un tiempo me funciono jejej q cosas más raras, pero tampoco funciona con session_start() puesto arriba.
Gracias y saludos


ESTE ES EL CÓDIGO MODIFICADO SEGÚN ME DIJISTE

Código PHP:
<body>
<?
@session_start();

if ( !
session_register('pedidos') )

    
session_register('pedidos');

if (!
session_register('suma_total'))

    
session_register('suma_total');
?>

<table>
<tr><td> Ref</td><td>Artículo</td><td>Unidades</td><td>Precio</td><td>Total</td></tr>



<form action="<?= $PHP_SELF?>" method="post">
<?
for ($i=$i<=count($_SESSION['pedidos'] ) ; $i++)

{
    
//Referencia
    
echo "<tr><td ><input name='pedidos[$i][0]' type='text' value='".$_SESSION['pedidos'][$i][0]."' /></td >";

    
//Articulo nombre
    
echo "<td ><input name='pedidos[$i][1]' type='text' value='".$_SESSION['pedidos'][$i][1]."' /></td >";

    
//Unidades artículo
    
echo "<td ><input name='pedidos[$i][2]' type='text' value='".$_SESSION['pedidos'][$i][2]."'  /></td >";
    
    
//Precio artículo/unidad
    
echo "<td ><input name='pedidos[$i][3]' type='text' value='".$_SESSION['pedidos'][$i][3]."'  /></td >";


    
//Precio Total del Total de unidades de ese artículo  
    
echo "<td ><input name='total' type='text' value='".$total=$_SESSION['pedidos'][$i][2]*$_SESSION[pedidos][$i][3]."'  /></td ><tr>";
    

    echo 
"<br>";
    
$_SESSION['suma_total']+=$total;
    
}
//Si no le damos al botón Terminar cierra la fila y no muestra el total
    
    
echo "<br>";
    
    echo 
"<tr><td><input name='Siguiente' type='submit' value='Siguiente' /></td>";
    echo 
"<td><input name='Terminar' type='submit' value='Terminar' onClick='AbreVentana()' /></td>
    </tr>"
;
    echo 
"<tr><td colspan='5' align='right'>Suma Total : ".$_SESSION['suma_total'] ."</td></tr>";
    
        echo 
count($_SESSION['pedidos']);

        
?>
        
</table>

</form>
</body>

Última edición por Dundee; 23/01/2008 a las 13:37
  #5 (permalink)  
Antiguo 23/01/2008, 13:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: en un servidor funciona en otro no ¿porque?

Como te comente debe de estar ANTES de cualquier SALIDA de texto, es decir tiene que estar antes inclusive de <html>.

La razón por la que probablemente te servía en local es porque tienes activado el output_buffering, aunque este puede estar desactivado en tu servidor remoto, por eso debes de poner session_start() antes de cualquier salida de texto (inclusive un espacio).

Saludos.
  #6 (permalink)  
Antiguo 23/01/2008, 14:32
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Re: en un servidor funciona en otro no ¿porque?

Bueno lo he puesto antes de todo y tampoco funciona , además tengo muchas otras sesiones creadas en esta web en el mismo servidor y sessision_start () lo he colocado en cada caso en diferentes sitios y nunca me había dado problema (poniendo la @ delante claro). El problema es otro seguro.
Nota:He comprobado que la sesión no se crea porque además de que el bucle for no funciona (ya que count($session['pedidos']) no tiene valor) ,
haciendo echo $_SESSION['pedidos'] no obtengo ningún resultado.

<?
session_start() ;
demas código y etiquetas ....

saludos y gracias

Última edición por Dundee; 23/01/2008 a las 14:44
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 11:07.