Foros del Web » Programando para Internet » PHP »

problema php PHP en el index switch

Estas en el tema de problema php PHP en el index switch en el foro de PHP en Foros del Web. Tengo el problema que la gente puede navergar lo mas bien cuando el mismo index va direccinado asi: index.php?COD=1 index.php?COD=2 index.php?COD=3 ...etc pero cuando alguien ...
  #1 (permalink)  
Antiguo 11/09/2009, 11:56
 
Fecha de Ingreso: julio-2009
Mensajes: 44
Antigüedad: 14 años, 8 meses
Puntos: 0
problema php PHP en el index switch

Tengo el problema que la gente puede navergar lo mas bien cuando el mismo index va direccinado asi:

index.php?COD=1
index.php?COD=2
index.php?COD=3 ...etc

pero cuando alguien coloca en el navegador con minusculas

index.php?cod=1
index.php?cod=2
index.php?cod=3

sale error, ahora mi consulta es como hago internamente en el index.php para capturar ambas opciones? por que ahora lo tengo asi:
<?php
$a=$_GET['COD'];
switch ( $a) {
case '1': { .........

Es decir que vaya al index.php?COD=2 ya sea el COD con mayusculas o minusculas.

Gracias.
  #2 (permalink)  
Antiguo 11/09/2009, 12:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 12
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: problema php PHP en el index switch

hola, para pasar un texto a minuscula:

strtolower($variable);

a mayuscula:

strtoupper($variable)

espero y te haya servido.
  #3 (permalink)  
Antiguo 11/09/2009, 12:35
Avatar de __DARK__  
Fecha de Ingreso: octubre-2008
Mensajes: 94
Antigüedad: 15 años, 5 meses
Puntos: 1
De acuerdo Respuesta: problema php PHP en el index switch

Cita:
Iniciado por jamm1982 Ver Mensaje
hola, para pasar un texto a minuscula:

strtolower($variable);

a mayuscula:

strtoupper($variable)

espero y te haya servido.
Asi es pues ya lo menciona jam. Siendo más específicos puedes incluirlo así:

Código PHP:
<?php 
$a
=$_GET['COD'];
strtolower($a); // Esto si siempre kieres manejar minúsculas
switch ( $a) { 
case 
'1': { .........
<?
Espero sea eso lo q necesitas, Salu2!
__________________
Here in the darkness i know myself...
  #4 (permalink)  
Antiguo 11/09/2009, 12:58
 
Fecha de Ingreso: julio-2009
Mensajes: 44
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: problema php PHP en el index switch

No no no, analicemos bien lo que dicen, primero tomo la variable con GET y despues uds dicen de transformar a minuscula el contenido, eso no es asi, el problema radica en el GET en donde ya tomo la variable COD y la idea es que tome COD y cod simultanemaente, por mas que sea cualquiera el contenido de ella.
Los invito a ver nuevamente el codigo para que vean que uds toman el dato contenido en COD y eso lo transforman a minuscula y ese no es el problema, no el contenido si no la variable COD que quiero que sea TAMBIEN cod para swicharla

es decir si la gente pone en el navegador:

index.php?COD=1

o

index.php?cod= 1

direccione a la misma pagina, se entiende?
  #5 (permalink)  
Antiguo 11/09/2009, 13:00
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema php PHP en el index switch

En todo caso, el strtolower o strtoupper debe usarlo en el elemento del array, es decir, asi si quieres usarlo en minusculas:

$a = $_GET[strtolower('COD')];

o asi si lo quieres en mayusculas:

$a = $_GET[strtoupper('COD')];


ya que lo que indica que le cambia es el elemento del array _GET y no el valor de ese elemento, que por lo que parece, es un int
  #6 (permalink)  
Antiguo 11/09/2009, 13:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: problema php PHP en el index switch

Cita:
No no no, analicemos bien lo que dicen, primero tomo la variable con GET y despues uds dicen de transformar a minuscula el contenido, eso no es asi, el problema radica en el GET en donde ya tomo la variable COD
Recuerda que PHP distinguen mayúsculas de minúsculas; en tu caso cod es distinto de COD ahora si quieres que funcione por ambos lados ... lo mas sencillo es que captures los 2 siempre y manejes solo una (se supone que una de las 2 siempre va a tener un valor). Se me ocurre algo así

Código PHP:
$aux1=$_GET['COD'];  // o aux1 tiene valor  
$aux2=$_GET['cod'];   // o aux2 tiene valor 
if($aux1==""// tons singinifca que aux2 tiene valor sinó aux1
   
$a=$aux2;
else         
//aux1 tiene valor
   
$a=$aux1;
switch ( 
$a)
 {  
case 
'1': { ......... 
Espero ayude salu2
  #7 (permalink)  
Antiguo 11/09/2009, 13:03
 
Fecha de Ingreso: julio-2009
Mensajes: 44
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: problema php PHP en el index switch

excelente codigo hermano
  #8 (permalink)  
Antiguo 11/09/2009, 13:12
Avatar de kike00  
Fecha de Ingreso: febrero-2005
Ubicación: El Salvador
Mensajes: 180
Antigüedad: 19 años, 2 meses
Puntos: 7
Respuesta: problema php PHP en el index switch

asi como dice maxi el problema no es que pasen a minusculas el contenido de cod ya que el problema no es ese, sino es el de la variable, que como sabemos PHP es "case sensitive" asi que tienes que hacer validaciones de si se recibe COD o cod

algo asi como
Código php:
Ver original
  1. if(isset($_GET['COD'])){ //
  2.      $cod = $_GET['COD']);
  3. }elseif(isset($_GET['cod'])
  4.      $cod = $_GET['cod']);
  5. }else{
  6.      //No se recibio ni COD ni cod
  7. }

Aunque si dices que seria un "problema" que alguien escriba COD o cod, entonces tambien lo seria con CoD, coD, cOD, COd, cOd, coD, Cod (creo que esas son todas las combinaciones posibles XD)....

Por lo que a mi forma de verlo, no te tienes que preocupar por la forma en la que estan escritas las variables que pasas por url y "estandarizar" a solo una, ya si alguien la cambia, algun usuario, entonces es problema de él, y claro, tienes que hacer validaciones para que si la variable no se recibe, ya sea por omision o porque esta mal escrita, que te redireccione a una página de error o muestre algun mensaje de error.....

Saludos :P
  #9 (permalink)  
Antiguo 11/09/2009, 13:45
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema php PHP en el index switch

Me autocito y lo pongo bonito por si alguien no lo ha visto...

Cita:
Iniciado por DooBie Ver Mensaje
En todo caso, el strtolower() o strtoupper() debe usarlo en el elemento del array, es decir, asi si quieres usarlo en minusculas:

Código PHP:
$a $_GET[strtolower('COD')]; 
o asi si lo quieres en mayusculas:

Código PHP:
$a $_GET[strtoupper('COD')]; 

ya que lo que indica que le cambia es el elemento del array _GET y no el valor de ese elemento, que por lo que parece, es un int
  #10 (permalink)  
Antiguo 11/09/2009, 13:54
Avatar de kike00  
Fecha de Ingreso: febrero-2005
Ubicación: El Salvador
Mensajes: 180
Antigüedad: 19 años, 2 meses
Puntos: 7
Respuesta: problema php PHP en el index switch

@DooBie: pero si tomo
Código php:
Ver original
  1. $a = $_GET[strtolower('COD')];
y escribo en el navegador como variable COD... asi en mayusculas, no funciona :P
  #11 (permalink)  
Antiguo 12/09/2009, 02:50
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema php PHP en el index switch

Cita:
Iniciado por kike00 Ver Mensaje
@DooBie: pero si tomo
Código php:
Ver original
  1. $a = $_GET[strtolower('COD')];
y escribo en el navegador como variable COD... asi en mayusculas, no funciona :P
mmmm... cierto


EDITO: Ahora si:

Código PHP:
foreach($_GET AS $ll => $v$get[strtolower($ll)] = $v;
$_GET $get

Última edición por DooBie; 12/09/2009 a las 03:01
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 10:29.