Foros del Web » Programando para Internet » PHP »

register globals off y vectores

Estas en el tema de register globals off y vectores en el foro de PHP en Foros del Web. Hola a todos, cuando utilizo vectores en php, por ejemplo: $_POST[], $_GET[], $_SESSION[]...... dentro se pone el nombre de la variable entre comillas simples, comillas ...
  #1 (permalink)  
Antiguo 29/05/2005, 10:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 18 años, 11 meses
Puntos: 0
register globals off y vectores

Hola a todos, cuando utilizo vectores en php, por ejemplo:
$_POST[], $_GET[], $_SESSION[]...... dentro se pone el nombre de la variable entre comillas simples, comillas dobles o sin comillas.
Es para saber como se trabaja con el registers globals a off

Gracias!!!!
  #2 (permalink)  
Antiguo 29/05/2005, 10:12
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
que yo sepa eso no funciona con el register globals en Off... o si?:P
  #3 (permalink)  
Antiguo 29/05/2005, 10:18
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 18 años, 11 meses
Puntos: 0
Yo creo que si se puede, lo que no se es exactamente como...
  #4 (permalink)  
Antiguo 29/05/2005, 10:21
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Cita:
Iniciado por spider_boy
que yo sepa eso no funciona con el register globals en Off... o si?:P
El uso de arrays superglobales como los que mencionas es altamente recomendado no sólo porque ofrece más seguridad y claridad en el código, sino porque es la única manera de que tu script funcione con la directiva register globals en OFF (Claro, también funciona perfecto si está en ON). Por eso, si utilizas siempre los superglobales te aseguras de que tu script es independiente del estado de esa directiva.
Cita:
Iniciado por CapiCapi
dentro se pone el nombre de la variable entre comillas simples, comillas dobles o sin comillas.
Es para saber como se trabaja con el registers globals a off
Puedes utilizar comillas dobles o simples, no hay problema. También funciona si las pones sin comillas, pero esto no es recomendado pues se tratará de interpretar primero como constante... y podría haber algún conflicto.

Saludos
  #5 (permalink)  
Antiguo 29/05/2005, 10:24
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 18 años, 11 meses
Puntos: 0
ok, muchas gracias jpinedo...
  #6 (permalink)  
Antiguo 29/05/2005, 20:05
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... haber... según yo:
- Sin comillas cuando el índice es numérico: $matríz[0], $matriz[5]...
- Comilas simples cuando el índice es una cadena: $matriz['texto']
- Comillas dobles cuando el índice es una cadena pero se introduce a través de una variable: $indice="texto"; $matriz=["$indice"]

... digo $matriz porque al final $_POST y demás variables superglobales son matricez como cualquier otra....

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 29/05/2005, 20:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Cita:
Iniciado por jam1138
Sin comillas cuando el índice es numérico: $matríz[0], $matriz[5]...
De acuerdo... pero en este caso específico de superglobales no aplica, ya que son arrays asociativos (aunque puedan ponerse números, estos serán cadenas numéricas).
Cita:
Iniciado por jam1138
- Comilas simples cuando el índice es una cadena: $matriz['texto']
- Comillas dobles cuando el índice es una cadena pero se introduce a través de una variable: $indice="texto"; $matriz=["$indice"]
De acuerdo. El "key" de un array asociativo se comporta como una cadena cualquiera.
Pero en el caso específico $matriz=["$indice"], las comillas son totalmente innecesarias. Debería ponerse simplemente: $matriz=[$indice]

Saludos
  #8 (permalink)  
Antiguo 29/05/2005, 20:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por jpinedo
De acuerdo... pero en este caso específico de superglobales no aplica, ya que son arrays asociativos (aunque puedan ponerse números, estos serán cadenas numéricas)
... ... aunque se deje que la matriz asigne los valores numéricos por si sola?? , me refiero a que teniendo elementos de un formulario con names del tipo name="matriz[]", osease, sín índices... no son "índices puramente numéricos"???...

Cita:
Pero en el caso específico $matriz=["$indice"], las comillas son totalmente innecesarias. Debería ponerse simplemente: $matriz=[$indice]
Totalmente de acuerdo ... pero siendo "perfeccionistas" ¿cuál sería "la norma"???

Ejemplo: hay quienes imprimen así: echo "<input type='text'>" y no está mal... pero "lo correcto" sería echo "<input type=\"text\">" ¿¿no???


... el manejarlo de algúna ú otra forma ¿no hay manera de poder llegar a errores??... hace poco se hubo un post sobre la diferencia y la forma correcta de abrir y cerrar PHP, y se mencionó que dependiendo de configuraciones y manejo puede crear errores el manejar la etiqueta <?... que aunque es común y "no causa problemas", lo correcto es manejar la etiqueta <?php.. no hay algo similar en este caso??...

Sé que puede haber errores al imprimir, como por ejemplo esto:
Código PHP:
echo "<input ... value=\"".$_POST["texto"]."\">"
... he sabido que por estar "texto" con comillas dobles llega a tomarla como CONSTANTE... se solucionaría si se utilizaran comillas simples como se ha dicho... ... entonces supongo todo se reduce a cómo se utilizan en su entorno??

... y yo que estaba solo de metiche, acabé con más dudas... Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 29/05/2005, 21:32
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Cita:
Iniciado por jam1138
aunque se deje que la matriz asigne los valores numéricos por si sola?? , me refiero a que teniendo elementos de un formulario con names del tipo name="matriz[]", osease, sín índices... no son "índices puramente numéricos"???...
En ese caso, el índice del superglobal será la cadena "matriz", que también es una cadena. $_POST['matriz'][2].
Cita:
Iniciado por jam1138
Ejemplo: hay quienes imprimen así: echo "<input type='text'>" y no está mal... pero "lo correcto" sería echo "<input type=\"text\">" ¿¿no???
No necsariamente. Puedes hacer echo '<input type="text">' sin nigún problema. Y en este caso "lo correcto" es realmente lo correcto porque el estándar dice que los atributos deben ir entre comillas dobles.
Cita:
Iniciado por jam1138
Sé que puede haber errores al imprimir, como por ejemplo esto:
Código PHP:
echo "<input ... value=\"".$_POST["texto"]."\">"
... he sabido que por estar "texto" con comillas dobles llega a tomarla como CONSTANTE... se solucionaría si se utilizaran comillas simples como se ha dicho... ... entonces supongo todo se reduce a cómo se utilizan en su entorno??
Pues esto yo no la sabía... es más... nunca he tenido problemas con eso. Y por las dudas acabo de hacer una pruba con el mismo código que pones y todo funciona bien... ¿a qué te refieres con eso de que lo toma como constante?

Saludos
  #10 (permalink)  
Antiguo 30/05/2005, 01:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por jpinedo
En ese caso, el índice del superglobal será la cadena "matriz", que también es una cadena. $_POST['matriz'][2]
.... cierto, cierto, muy cierto . No lo había pensado bien... la verdad lo que traía en mente es recorrer la matríz directa $_POST... pero sus índices serán los names del formulario, sean matrices o no... y síp... serán cadenas... . Ok.. tema cerrado.

Cita:
Pues esto yo no la sabía... es más... nunca he tenido problemas con eso. Y por las dudas acabo de hacer una pruba con el mismo código que pones y todo funciona bien... ¿a qué te refieres con eso de que lo toma como constante?
En realidad tampoco he tenido problemas... aunque no lo manejo yo así. Lo dije porque recuerdo un caso aquí en el foro en el que tenía algo similar y le aparecia un error indicando que la constante no estaba definida, entonces le dije cambiara comillas y si no mal recuerdo se solucionó (ó solo que haya dicho "solucionado" y no dijo el por qué )... mi teoría fue esa; se inició con comillas dobles, cierró y vuelvió a manejar comillas dobles para el índice, supuse este texto (el índice) lo tomaba como CONSTANTE.... ... pero ahora que lo pienso mejor... si de verdad hubo confución con las comillas, debió tomarlo como texto.... ... ... trataré de buscar el post y estaré con los ojos abiertos por cualquier otro caso... si lo hayo lo menciono aquí.

Saludos y hasta luego.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 06:11.