Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones en PHP :-(

Estas en el tema de Ayuda con sesiones en PHP :-( en el foro de PHP en Foros del Web. Hola, estoy empenzando en esto de PHP y me ha surgido un problema, a ver si podeis ayudarme He creado una pagina web que usa ...
  #1 (permalink)  
Antiguo 07/06/2004, 16:32
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
Ayuda con sesiones en PHP :-(

Hola, estoy empenzando en esto de PHP y me ha surgido un problema, a ver si podeis ayudarme

He creado una pagina web que usa sessiones para almancenar variables.
El caso es que cuando escribo "localhost/pagina" Me inicia el index.php, sin embargo en la parte de abajo me dice que "aparecen errores en pagina" y efectivamente, cuando mantengo el boton sobre una pestaña, deberia de cambiar el color del boton y este no cambia. Ademas, en la barra de estado, cuando pongo el puntero sobre una pestaña aparece (segun que pestaña) localhost/pagina/contacta.php?PHPSESSID=numero_sesion y solo deberia de aparecer localhost/pagina/contacta.php
Una vez pulso cualkiera de las pestañas, la pagina se inicia normalmente, y no vuelve a pasar por URL la variable PHPSESSID (ke por otro lado, en ninguna opcion se pasar nada por URL)

Espero haberme expresado bien.

Un saludo y gracias

Última edición por Rabak; 07/06/2004 a las 16:46
  #2 (permalink)  
Antiguo 07/06/2004, 16:53
 
Fecha de Ingreso: junio-2003
Ubicación: Morelia, México
Mensajes: 25
Antigüedad: 14 años, 6 meses
Puntos: 0
Hola. El error que te aparece es de javascript, no de php y no tiene nada qué ver con el uso de sesiones. Revisa tu código de javascript. Lo de la sesión propagada por url es porque así tienes configurado tu php.ini. Revisa en esta liga http://www.php.net/manual/es/ref.session.php cómo configurarlo si no quieres propagar el id de sesión por url. Saludos

Última edición por overlord_; 07/06/2004 a las 17:04
  #3 (permalink)  
Antiguo 08/06/2004, 04:09
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
Muchas gracias por tu ayuda, he conseguido subsanar el error, eliminando "session_start();" de index.php, sin embargo, ahora, las variables de session no se propagan por las distintas paginas. ¿Por que puede ser?

Un saludo
  #4 (permalink)  
Antiguo 08/06/2004, 10:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si pones el código que usas .. tal vez veamos el error. Session_Start() es necesario que lo uses si usas sesiones.

Ahora abrá que ver si las sesiones te están probocando algún error que .. al usar javascript por médio el própio mensaje de error está interfiriendo en el javascript. Intenta "ver->código fuente" de tu navegador al ejecutar esa página y leer bien .. a veces aparece por ahí mezclado los mensaje de PHP y de paso revisa si la sintax que ves es lo que debería ser. (a nivel de Javacript/PHP)

Un saludo,
  #5 (permalink)  
Antiguo 08/06/2004, 13:13
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
Hola Cluster, muchas gracias, pero creo que el error se debe a la configuracion de mi servidor Apache o de PHP, porque al subirlo a mi cuenta de la universidad, este funciona sin problemas de ningun tipo, no hay errores en la pagina al cargalo ni nada... Voy a ver si le heco un vistazo a la configuracion de las sesiones que el compañero overlod comento. Muchas gracias por la ayuda y el tiempo.

Un saludo
  #6 (permalink)  
Antiguo 08/06/2004, 13:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues eso mismo .. si hay un problema con al creación de las sesiones por (nula o mala) configuración .. te va a saltar el error por donde menos te los esperes .. tal vez por tus rutinas javascript dependiendo de donde hagas tu session_start() o uses las funciones de sesiones.

Insisto que si pones el código que usas junto con describir la configuración de sesiones sería lo ideal.

Un saludo,
  #7 (permalink)  
Antiguo 08/06/2004, 13:42
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
OK! :)

Mira, al principio de las paginas tengo lo siguiente :)

<?php

Function encabezado()
{
session_start();

echo " <html> <head> ";

echo " <title>Tutorial Tolerancia y Ajustes</title> ";

echo " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\"> ";

echo " <script language=\"JavaScript\"> ";

echo " <!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf(\"#\")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

";

echo " function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)
x.src=x.oSrc;
}
";

echo "
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms
[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
";

echo "
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for
(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

";
//-->
echo "</script> </head> ";

}
?>

Este es un pekeño Script para el menu superior donde hay pestañas para acceder a todas las opciones de esta :)

Despues escribo el menu dependiendo de si el usuario esta registrado o no, y
del tipo de usuario que sea, aki tienes el codigo:

<?php
if (!isset($tipo) OR !isset($id) OR $user == "")
//El alumno no ha pasado todavia por la seccion de registro
{
//header(Location: "../html/registro.php");
echo '<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages(\'image/botones/botonPrincipalON.gif\',\'image/botones/botonTeoriaON.gif\',
\'image/botones/botonPracticaON.gif\',\'image/botones/botonForoON.gif\',
\'image/botones/botonRegistroON.gif\',\'image/botones/botonContactaON.gif\')
">
<div align="center">


<table width="680" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="680" height="2"><img src="image/transparent.gif" width="15"
height="12"></td>
</tr>


<tr>

<td width="680">

<table width="680" border="0" cellspacing="0" cellpadding="1">


<tr>

<td width="90"><a href="index.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage
(\'button_01\',\'\',\'image/botones/botonPrincipalON.gif\',1)"><img src="image/botones/botonPrincipalOFF.gif" width="90" height="19" name="button_01" hspace="3" border="0"></a></td>
<td width="90"><a href="teoria.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_02\',\'\',\'ima ge/botones/botonTeoriaON.gif\',1)" target="_parent"><img src="image/botones/botonTeoriaOFF.gif" width="90" height="19" name="button_02" hspace="3" border="0"></a></td>
<td width="90"><a href="practica.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_03\',\'\',\'ima ge/botones/botonPracticaON.gif\',1)"><img src="image/botones/botonPracticaOFF.gif" width="90" height="19" border="0" hspace="3" name="button_03"></a></td>
<td width="90"><a href="foro.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_04\',\'\',\'ima ge/botones/botonForoON.gif\',1)"><img src="image/botones/botonForoOFF.gif" name="button_04" width="90" height="19" hspace="3" border="0"></a></td>
<td width="90"><a href="registro.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_05\',\'\',\'ima ge/botones/botonRegistroON.gif\',1)"><img src="image/botones/botonRegistroOFF.gif" width="90" height="19" border="0" hspace="3" name="button_05"></a></td>
<td width="90"><a href="contacta.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_06\',\'\',\'ima ge/botones/botonContactaON.gif\',1)"><img src="image/botones/botonContactaOFF.gif" width="90" height="19" border="0" hspace="3" name="button_06"></a></td>

</tr>

</table>
</td>
</tr>
<tr>

<td width="680" height="9"> <img src="image/bg_menu3.gif" width="685" height="86"></td>
</tr>
<tr>

</tr>

</table>';

}
else
{

echo '<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="onLoad="MM_preloadImages(\'image/botones/botonPrincipalON.gif\',\'image/botones/botonTeoriaON.gif\',
\'image/botones/botonPracticaON.gif\',\'image/botones/botonForoON.gif\',\'image/botones/botonRegistroON.gif\',\'image/botones/botonContactaON.gif\',';


if ( $tipo == "A" )
echo '\'image/botones/botonAlumnoON.gif\',)">';
else
echo '\'image/botones/botonProfesorON.gif\',)">';
echo '<div align="center">
<table width="680" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="680" height="2"><img
src="image/transparent.gif" width="15" height="12"></td>
</tr>
<tr>

<td width="680">

<table width="680" border="0" cellspacing="0" cellpadding="1">

<tr>

<td width="90"><a href="index.php" target="_parent"
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_01\',\'\',\'ima ge/botones/botonPrincipalON.gif\',1)">
<img src="image/botones/botonPrincipalOFF.gif" width="90" height="19" name="button_01" hspace="3" border="0"></a></td>
<td width="90"><a href="teoria.php"
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage
(\'button_02\',\'\',\'image/botones/botonTeoriaON.gif\',1)" target="_parent"><img src="image/botones/botonTeoriaOFF.gif"
width="90" height="19" name="button_02" hspace="3" border="0"></a></td>
<td width="90"><a href="practica.php" target="_parent"
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_03\',\'\',\'ima ge/botones/botonPracticaON.gif\',1)"><img
src="image/botones/botonPracticaOFF.gif" width="90" height="19" border="0" hspace="3" name="button_03"></a></td>
<td width="90"><a href="foro.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_04\',\'\',\'ima ge/botones/botonForoON.gif\',1)"><img src="image/botones/botonForoOFF.gif" name="button_04" width="90" height="19" hspace="3" border="0"></a></td>
<td width="90"><a href="registro.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_05\',\'\',\'ima ge/botones/botonRegistroON.gif\',1)"><img src="image/botones/botonRegistroOFF.gif" width="90" height="19" border="0" hspace="3" name="button_05"></a></td>
<td width="90"><a href="contacta.php" target="_parent"
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_06\',\'\',\'ima ge/botones/botonContactaON.gif\',1)"><img src="image/botones/botonContactaOFF.gif" width="90" height="19" border="0" hspace="3" name="button_06"></a></td>';

if ( $tipo == "A" )
echo '<td width="90"><a href="alumno.php" target="_parent" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage(\'button_07\',\'\',\'ima ge/botones/botonAlumnoON.gif\',1)"><img src="image/botones/botonAlumnoOFF.gif" width="90" height="19" border="0" hspace="3" name="button_07"></a></td>';
else
echo '<td width="90"><a href="profesor.php" target="_parent" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage(\'button_07\',\'\',\'ima ge/botones/botonProfesorON.gif\',1)"><img src="image/botones/botonProfesorOFF.gif" width="90" height="19" border="0" hspace="3" name="button_07"></a></td>';

echo '</tr> </table> </td> </tr> <tr> <td width="680" height="9"> <img src="image/bg_menu3.gif" width="685" height="86"></td>
</tr> <tr> </tr> </table>';
}

?>

Última edición por Rabak; 08/06/2004 a las 13:47
  #8 (permalink)  
Antiguo 08/06/2004, 13:45
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
Y despues, el index.php se inicia con esto:


<?php
session_start();

session_register("aumentoContador");
session_register("autentificado");

if ($aumentoContador == "")
$aumentoContador = "no";



include ("modulos/encabezado.php");

encabezado();
?>

De la configuracion de PHP, que te tendria ke dar exactamente?!


Un saludo, y una vez mas, gracias :)
  #9 (permalink)  
Antiguo 08/06/2004, 14:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por el uso de sesiones que haces en tu código .. el servidor donde uses PHP te obliga a:

En el apartado sesiones:
session.use_trans_sid = 1 (ON)
session.use_cookies = 1 (ON)

Y ..
register_globals a ON

Revisa esta configuración en tu php.ini o haciendo un phpinfo()

Intenta usar los arrays superglobales para acceder y crear variables en tus sesiones (y en general para todo acceso de varaibles extrenas a tus scripts):

$_SESSION['variable'] (en las FAQ's de este foro tienes un ejemplo).

Un saludo,
  #10 (permalink)  
Antiguo 08/06/2004, 14:39
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
Todo esta como comentas.
En relacion al uso de $_SESSION por desgracia tengo ke adaptarme a la version que usan en mi universidad (4.0.3pl1) ya ke lo ke estoy haciendo ira a parar a ese servidor. Y esa version de PHP no usa el array _SESSION, sin embargo, creo ke usar $HTTP_SESSION_VARS es exactamente lo mismo no?

Un saludo, y gracias
  #11 (permalink)  
Antiguo 08/06/2004, 15:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
bufff .. ¿por qué no actualizan la versión de PHP? .. (serían 10 minutos a lo máximo).

Si UD's que estan en la Universidad y les pasan PHP o les piden proyectos en PHP .. no pueden usar esa versión de PHP .. hay que estar al día en estos temas (ha llovido mucho desde esa versión de PHP a las actuales .. )

Para tu versión de PHP .. $HTTP_SESSION_VARS te sirve ..

Cita:
Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readablity.
Un saludo,

Última edición por Cluster; 08/06/2004 a las 15:50
  #12 (permalink)  
Antiguo 08/06/2004, 15:38
 
Fecha de Ingreso: junio-2004
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 0
jejejeje, bueno, da las gracias por tener PHP!!!! jejejeje Ademas, ke para poder ejecutarlo.... hay ke pedir permisos de todos los colores.... incluso la version de MySQL es antigua... pero weno. Yo me conformo con que mis scriipt, y en concreto el sistema entero funcione en la universidad, y eso es lo ke parece ke hace.


Muchisimas gracias :)

Última edición por Rabak; 08/06/2004 a las 15:45
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 03:46.