🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #2869

Re: utas, php

#2869
From: Vinko Vrsalovic
Date: Sat, 13 Aug 2005 17:45
82 lines
2908 bytes
SocketE <malice@mizer.jp> wrote:
> como se trabaja el uso de variables globales??
> si en "funciones.php"
> tengo la variable global $ass;
> 
> en "index.php" yo le doy un valor
> $ass = "nice";
> 
> y luego en "otrapagina.php" yo quiero imprimir ese valor
> echo "tu tienes un ass very ".$ass;
> 
> pero la variable viene vacia... q onda??
> por su ayuda muuuuuuuuchas gracias

Si comprendi bien, tu no quieres variables globales, tu quieres 
variables de sesion.

Igual te explico las dos, por si acaso:

Variables globales:

Permanecen durante la ejecucion de un script (que puede estar en varios 
archivos si usaste include() y amigos), pero no permanecen en el 
tiempo entre la ejecucion de un script y el otro o dos ejecuciones del 
mismo script.

<?php
$esta_es_global = "SI";

function funcion1() {
   $esta_es_local = "SI";

   global $esta_es_global;
   echo $esta_es_global."\n";
}

funcion1();
?>

Imprimira "SI\n"

En otras palabras, tienes que declarar las variables globales que usaras 
en una funcion especifica usando la keyword 'global'.

Ahora si, como estimo, lo que quieres es una variable que permanezca 
seteada entre ejecuciones de scripts, tienes varias opciones (si estas 
usando HTTP/HTML). Una es usar formularios y elegir entre GET y POST y 
la otra es usar variables de sesion:

<?php

session_start();
$_SESSION['Esta_variable_permanecera_en_todos_los_scripts'] = true;

?>

Ahora $_SESSION['Esta_variable_permanecera_en_todos_los_scripts'] estara 
disponible en todos los scripts en que hagas session_start();

Usando tu ejemplo:

<?php /*index.php*/

include("funciones.php");
session_start();
$_SESSION['ass'] = $ass;//Esta declarado en funciones.php, como no 
			//estamos en una funcion, no necesitamos 
			//hacer global $ass;
?>

<?php /*otrapagina.php*/

session_start();
echo "tu ass es very ".$_SESSION['ass'];

?>


A veces es mas complejo que solo esto (hacer que permanezca el 
session_id, serialize(), etc.), pero para eso tienes el manual.

V.
Technical Details
Message-ID: <42fe23b1@news.vcd.cl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!nntp-server.pubsub.com!news1.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mail
References: <42fa70b7$1_1@nova.entelchile.net>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,e0867e43c338987
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII-7-bit
Message-ID: <42fe23b1@news.vcd.cl>
From: Vinko Vrsalovic <el@vinko.invalid>
Subject: Re: utas, php
Newsgroups: chile.comp.programacion
References: <42fa70b7$1_1@nova.entelchile.net>
User-Agent: tin/1.7.6-20040906 ("Baleshare") (UNIX) (Linux/2.6.10-5-386 (i686))
NNTP-Posting-Host: 200.113.115.145
X-Original-NNTP-Posting-Host: 200.113.115.145
Date: 13 Aug 2005 13:45:39 -0400
X-Trace: news.vcd.cl!not-for-mail 1123951539 200.113.115.145 (13 Aug 2005 13:45:39 -0400)
X-Original-Trace: 13 Aug 2005 13:45:39 -0400, 200.113.115.145
Lines: 82
X-Authenticated-User: vinko
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!nntp-server.pubsub.com!news1.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mail