PHP - IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

 
Vista:
Imágen de perfil de Andrés
Val: 18
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Andrés (6 intervenciones) el 29/04/2020 19:17:09
El programa lo que hace es generar una imagen aleatoria e imprimir el nombre de la imagen al momento de darle click al botón 'INICIAR'.

entonces, se necesita imprimir la variable $_SESSION[name] tanto en el 'documento1' como en el 'documento2' y al momento de imprimir estos deben generar el mismo valor. Pero al momento de correr el código me generan nombres diferentes, no sé cómo solucionarlo.

Captura2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!--DOCUMENTO1-->
</head>
<body>
 
    <div class="row justify-content-center" >
        <div class="col-6 align-items-center">
            <iframe name="ventana" src="ventana.php" frameborder="1" width='100%' height='300px'></iframe>
 
            <form id="formulario" action="ventana.php" method="POST" target="ventana">
 
                <div class="col text-center">
                    <button type="submit" name="boton1" class="btn btn-success"> INICIAR</button>
                </div>
 
            </form>
 
        </div>
        <div class="col-6 ">
            <?php
                /*IMPRIMIR EL NOMBRE DE LA IMAGEN, OSEA LA VARIABLE $_SESSION[name] PERO SALE UN VALOR DIFERENTE*/
                session_start();
                print "<p>El nombre es $_SESSION[name]</p>";
            ?>
        </div>
    </div>
</body>
</html>
 
 
 
 
 
<!--DOCUMENTO2-->
<?php
 
/*registramos la variable*/
session_start();
$_SESSION["boton1"] = rand(1, 3);
 
if($_SESSION["boton1"] == 1){ $fondo = "atacar.png'" .$_SESSION["name"] = "ATACAR";}
if($_SESSION["boton1"] == 2){ $fondo = "comportar.jpg'".$_SESSION["name"] = "COMPORTAR";}
if($_SESSION["boton1"] == 3){ $fondo = "creer.jpeg'".$_SESSION["name"] = "CREER";}
 
/*se imprime la imagen $fondo */
echo "<img src='img/".$fondo."/ border='0' width='100%' height='90%'>";
 
/*se imprime el nombre de la imagen $_SESSION["name"] */
echo $_SESSION["name"];
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.994
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Julio (830 intervenciones) el 29/04/2020 20:03:05
Hola.

No entiendo la lógica de tu programa. ¿Dónde defines el valor de $_SESSION['name']?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andrés
Val: 18
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Andrés (6 intervenciones) el 29/04/2020 20:19:01
en los if del documento2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.994
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Julio (830 intervenciones) el 29/04/2020 20:27:31
Ufff, qué forma más "curiosa" de definir una variable. Pensaba que no se podía hacer eso así y queda muy poco legible, si me lo permites, pero si te funciona...

Eso sí, piensa que $fondo cogerá estos valores eh:

atacar.png'ATACAR
comportar.jpg'COMPORTAR
creer.jpeg'CREER

No sé yo si tus imágenes tienen ese nombre tan extraño. Me inclino a pensar que no es el nombre de imagen que quieres...

Volviendo a lo otro. ¿El documento1 se ejecuta después del documento2?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andrés
Val: 18
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Andrés (6 intervenciones) el 29/04/2020 21:56:13
si el documento1 es el index.php y se ejecuta primero.

mmm teniendo en cuenta lo que comentas de la variable: "Ufff, qué forma más "curiosa" de definir una variable". me gustaria saber ¿como harías para definir la variable y que sea publica o global para poderla llamar en otros archivos php? es q soy muy novato en php.

¿como se haría entonces para que la variable $fondo no coja esos valores?:

atacar.png'ATACAR
comportar.jpg'COMPORTAR
creer.jpeg'CREER
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Annonymous
Val: 89
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Annonymous (18 intervenciones) el 29/04/2020 22:19:57
El problema esta en que estas haciendo una asignacion y concatenacion al mismo tiempo, tomemos como ejemplo el primer if

1
2
3
4
if($_SESSION["boton1"] == 1)
{
 $fondo = "atacar.png'" .$_SESSION["name"] = "ATACAR";
}

ahi estaria un poco mas ordenado, si ves luego de "atacar.png" estas poniendo un punto, el punto se usa para concatenar texto. Entonces lo que haces ahi es asignar a la variable $_SESSION["name"] la palabra atacar, y a $fondo le estas asignando la palabra "atacar.png" y el contenido de la variable$_SESSION["name"], como resultado te da "atacar.pngATACAR"
Nose si me explico? Tendrias que cambiar el punto por un punto y coma (preferente mente separa renglones e indenta el codigo para que sea mas legible)

1
2
3
4
5
if($_SESSION["boton1"] == 1)
{
 $fondo = "atacar.png'" ;
 $_SESSION["name"] = "ATACAR";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Annonymous
Val: 89
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Annonymous (18 intervenciones) el 29/04/2020 22:26:23
Ahora bien el problema que planteas es porque aparecen nombres distintos... te lo explico.
Cuando vos entras por primera vez se ejecuta primero el archivo index.php y te va a dar un error de que no existe la variable $_SESSION[name] ya que es cierto aun no existe, ahora bien cuando se ejecute el iframe y llame al segundo archivo (ventana.php) ahi va a crear la variable $_SESSION[name] y la va a mostrar debajo de la imagen.
Si vos presionas el boton iniciar lo que estas haciendo es otra llamada al archivo ventana.php con lo que se actualiza el iframe, el iframe actua como una ventana aparte, por ese se refresca el contenido y vos ves que cambia la la imagen y el texto, pero la variable $_SESSON['name'] que esta fuera del iframe no se va a actualizar porque no se refresco la pagina, para conseguir un comportamiento asi deberias usar AJAX para que se actualice el nombre sin refrescar la pagina.

Por otro lado si vos refrescar la pagina entera lo que va a pasar es que se ejecuta el index.php y ahora si existe la varibale $_SESSION[name] que fue creada en el paso anterior que te dije y no se limpio cuando refrescaste la pagina porque es una variable de sesion, entonces te va a mostrar la variable vieja, y despues de mostrar la variable vieja se va a actualizar el iframe, mostrando la imagen que corresponde y el valor de la variable $_SESSION[name] con el nuevo valor (pero sin actualizar el texto de abajo por lo antes mencionado)

Como solucion creo que deberias investigar un poco el comportamiento de AJAX y evitar le uso del iframe

Si te quedo alguna duda en algo avisame y trato de explicar mas o mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andrés
Val: 18
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Andrés (6 intervenciones) el 29/04/2020 22:43:01
puse a boton1 como variable de sesion con el fin de ver si se podía llamar en otro archivo php pero al llamarlo no me trae el valor almacenado en esa variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andrés
Val: 18
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Andrés (6 intervenciones) el 29/04/2020 22:50:50
a muy bien, muchas gracias por tu comentario, entonces lo voy a probar con AJAX
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.994
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Julio (830 intervenciones) el 29/04/2020 23:04:49
Yo no me complicaría la vida con AJAX (puede que cueste entenderlo si no se tiene experiencia). Si documento 1 se va a mostrar siempre antes que documento 2, entonces crea la variable $_SESSION["name"] en el documento 1 (crea también el $_SESSION["boton1"] ahí y lo tienes disponible en el documento 2), y solucionado.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andrés
Val: 18
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

IMPRIMIR UNA VARIABLE EN OTRO ARCHIVO PHP

Publicado por Andrés (6 intervenciones) el 29/04/2020 23:26:57
Julio ya lo probé como tu dices creando las variables en el documento 1 y si me funcionó, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar