Foros del Web » Programando para Internet » PHP »

NO me reconocen las variables de session

Estas en el tema de NO me reconocen las variables de session en el foro de PHP en Foros del Web. Salu2 foro: Bueno, para explicar mejor mi problema mejor lo hago con un ejemplo : Tenemos estos dos archivos: ejemplo.php ejemplo2.php <?php //ejemplo.php //inicias la ...
  #1 (permalink)  
Antiguo 07/06/2006, 18:31
Avatar de m@rcos-web  
Fecha de Ingreso: enero-2005
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
NO me reconocen las variables de session

Salu2 foro:

Bueno, para explicar mejor mi problema mejor lo hago con un ejemplo :
Tenemos estos dos archivos:
ejemplo.php
ejemplo2.php

<?php
//ejemplo.php
//inicias la sesion
session_start();
//guardamos el nombre del usuario con la variable nombre
$_SESSION["usuario"]="myNombre";
//nos redirige automaticamente a ejemplo2.php para ver las variables
header ("Location: ejemplo2.php");
?>
<?php
//ejemplo2.php
//inicias la session
session_start();

//tomamos los datos de la variable de session usuario y la
//guardamos en la variable que seria local $user
$user=$_SESSION["usuario"];

//la mostramos en pantalla
echo "<h1>HOLA ".$user."</h1><br>";
?>

en esta última linea es el problema, deberia de salir como resultado "HOLA myNombre" pero sólo sale "HOLA" y esto solo sucede en mi servidor de prueba ya que al probarlo en una PC de la red interna no hay problema.

Espero haber sido claro y me puedan ayudar porque no puedo usar los datos de una variable de session en mi servidor.

Gracias.

PD:
En el servidor estoy corriendo Apache2Triat, con Apache/2.2.0 (Win32) y PHP/5.1.2.
  #2 (permalink)  
Antiguo 07/06/2006, 18:46
okram
Invitado
 
Mensajes: n/a
Puntos:
al parecer tienes deshabilitadas las sesiones...

crea un archivo que contenga
Código PHP:
<?php
phpinfo
();
?>
lo abres y buscas la informacion referente a sesiones... casi a la mtad de la pagina... ahi veras si tienes o no activadas las sesiones en ese equipo

Salu2
  #3 (permalink)  
Antiguo 07/06/2006, 19:16
Avatar de m@rcos-web  
Fecha de Ingreso: enero-2005
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
Hola okram:
Pues en el apartado SESSION sale que "Session Support=enabled",...... pero no creo que eso sea el problema ya que cualquier otra PC de la red interna que accede a mi sevidor si le muestra el contenido de la variable de session.

Gracias.
  #4 (permalink)  
Antiguo 07/06/2006, 19:42
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 11 años, 6 meses
Puntos: 1
yo solo te comentaría que en vez de usar las comillas dobles dentro de los corchetes uses las simples. así tengo mis ejemplos y funcionan excelentes.
  #5 (permalink)  
Antiguo 07/06/2006, 19:52
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
Para usar sesiones debes tener estas tres lineas primero para iniciar la session. esto lo puedes tener en un include despues en todas tus paginas.


Código PHP:
$nombredetusesion 'Sesionpato'
session_name = ($nombredetusesion);
sesion_start(); 

y luego, en las paginas donde quieras manejar las variables de session simplemente las usas...

Código PHP:
$_SESSION['nombre'] = 'Pato volador!';

$saludo 'Hola amigo '.$_SESSION['nombre'];

echo 
$saludo
Espero te sirva
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #6 (permalink)  
Antiguo 07/06/2006, 19:57
okram
Invitado
 
Mensajes: n/a
Puntos:
Pues tengo entendido que el no colocarle un nombre a la sesion no debe alterar el resultado...

ademas, creo que para colocar un nombre a una sesion se debe poner:

Código PHP:
session_name('nombre_de_la_sesion');
//session_start();
//... 
Salu2
  #7 (permalink)  
Antiguo 07/06/2006, 20:03
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 11 años, 6 meses
Puntos: 1
si se dan cuenta, casi todos coincidimos, a lo mejor porque es más rápido, más legible o porque ya es costumbre, pero la mayoría utiliza comillas simples, y en un libro que tengo de php, me marca comillas simples y no dobles.
  #8 (permalink)  
Antiguo 07/06/2006, 20:06
okram
Invitado
 
Mensajes: n/a
Puntos:
es la costumbre

pero debe trabajar indistintamente si se usa simples o dobles... por lo menos en este caso

Salu2
  #9 (permalink)  
Antiguo 07/06/2006, 20:09
okram
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por okram
debe trabajar indistintamente si se usa simples o dobles...
Me retracto

http://www.mclibre.org/consultar/php..._cadenas1.html
http://www.php-hispano.net/archivos/....html#comillas
http://es.wikibooks.org/wiki/Program...en_PHP/Cadenas
http://www.adrformacion.com/cursos/p...tutorial2.html

... kill me!!!

Salu2
  #10 (permalink)  
Antiguo 07/06/2006, 20:10
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 11 años, 6 meses
Puntos: 1
No siempre será la misma.
  #11 (permalink)  
Antiguo 07/06/2006, 20:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por http://www.php-hispano.net/

Comillas simples y comillas dobles


Entramos en el apasionante mundo de las comillas, que nos perseguirá durante la concatenación de cadenas y por supuesto, durante el viaje a través de las comillas automágicas (magic_quotes) que nos pueden dar más de un quebradero de cabeza.

Dos aspectos básicos a modo de resumen:
  • Las comillas simples muestran el contenido tal y como lo hemos escrito.
  • Las comillas dobles parsean nuestra cadena en busca de posibles variables a interpretar por PHP.
Consecuencias inmediatas:
las comillas simples son más rápidas que las dobles porque no pierden el tiempo interpretando el contenido.

Algunos ejemplos:

<?
echo 'Esto es una cadena normal y corriente, tardo poco porque no me parseo';
echo
"Aquí PHP mira a ver si tengo algo dentro que pueda interpretar, tardo un poco más";
?>




<?
$var
="php-hispano.net";
echo
'Me encanta $var'; // muestra: Me encanta $var
echo "Me encanta $var"; // muestra: Me encanta php-hispano.net
?>


Ventajas y desventajas del uso de ambos tipos de comillas:

<?
$var
="http://www.php-hispano.net";

//No necesito escapar las dobles comillas aquí
echo '<input type="text" name="campo">';

//Sin embargo me veo obligado a concatenar $var, para que se sustituya por su valor
echo '<a class="link" href="'.$var.'">php para torpes</a>';


//Con comillas dobles, $var se sustituirá por su contenido sin concatenar, pero necesito escapar las dobles comillas
echo "<a class=\"link\" href=\"$var\">php para torpes</a>";

//Aunque esto parece que sigue siendo más rápido
echo "<a class=\"link\" href=\"".$var."\">php para torpes</a>";

?>


Ojo a lo siguiente:

<?
echo 'Hola mundo\n' // muestra : Hola mundo\n (No hace el salto de línea!!)
?>


Esto no puede parecer determinante cuando hacemos un echo, pero cuando estamos tratando una cadena para su uso posterior nos puede dar algún problema. Es por eso que los strings suelen ir entre dobles comillas:

<?
$string
="Hola mundo\n"; //Contiene el salto de línea esperado.
$var="php-hispano.net";
$string="Ven a $var\n"; // Produce "Ven a php-hispano.net" y hace un salto de linea
?>


Dentro de las dobles comillas es posible que necesites escapar caracteres, como el carácter de $, las dobles comillas o el backslash. Las comillas simples no necesitan ser escapadas, al igual que las dobles no lo necesitaban dentro de las simples.

<?
$var
="php-hispano.net";
$nombre="valor";
echo
"$var tiene una variable llamada \$nombre";
// mostrará php-hispano.net tiene una variable llamada $nombre
// Nótese que equivale a: echo $var.' tiene una variable llamada $nombre';

echo "$var tiene una variable llamada $nombre"; // producirá obviamente: php-hispano tiene una variable llamada valor

// Un caso especial:
echo "$var tiene una variable llamada '$nombre'"; // Producirá: php-hispano.net tienen una variable llamada 'valor'
// A pesar de que $nombre esté entre comillas simples, se parsea y se sustituye por su valor
// ya que la cadena entera está a su vez metida en comillas dobles
// Esto tiene una aplicacion directa en los querys mySQL

// Las dos siguientes expresiones son equivalentes, usamos \ para escapar la propia barra invertida.
echo "Hola mundo\\n";
echo
'Hola mundo\n';
?>


Dos sutilezas que he aprendido mientras escribía esta FAQ. Si necesitas poner una cantidad en dólares dentro de unas dobles comillas:
echo "Tengo $1000";
No hace falta escapar nada, mostrará "Tengo $1000" debido a que un nombre de variable en PHP no puede comenzar por un número.

Si sólo necesitas escapar el símbolo $, sin nada que lo acompañe puedes usar:

echo "Este es el símbolo $$"; que mostrará: "Este es el símbolo $"

Sin embargo:

<?
$nombre
="valor";
$valor="12345";
echo
"La variable $$nombre vale $valor"; // Produce: "La variable $valor vale 12345";
?>
  #12 (permalink)  
Antiguo 07/06/2006, 21:36
Avatar de m@rcos-web  
Fecha de Ingreso: enero-2005
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
Interesante lo de las comillas simples y dobles.... pero aun sigo con el problema. El ejemplo que puse y el ejemplo de pato_volador funcionan en cualquier cliente de la red pero no en el servidor. Cual sera el problema?????
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 14:42.