Foros del Web » Programando para Internet » PHP »

Problemas con paso de arrays por URL

Estas en el tema de Problemas con paso de arrays por URL en el foro de PHP en Foros del Web. Hola, sigo pegada con el portalito, bueno pues los consejos que me dieron antes me resultaron de utilidad, muchas gracias a todos, ahora el pero ...
  #1 (permalink)  
Antiguo 09/04/2005, 11:00
Avatar de KarenFerreira  
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 87
Antigüedad: 19 años
Puntos: 2
Pregunta Problemas con paso de arrays por URL

Hola, sigo pegada con el portalito, bueno pues los consejos que me dieron antes me resultaron de utilidad, muchas gracias a todos, ahora el pero del asunto radica en que tengo que pasar un array de un script a otro por la url, y me estoy valiendo de un codigo que encontre aca mismo dentro de las faq's, pero algo pasa porque no me pasa el array, el codigo que encontre esta aca mismo en:
http://www.forosdelweb.com/f18/faqs-php-530600-post262072/
y la adaptacion que hice de eso es la siguiente:

en subir.php:

function array_envia($copia) {

$tmp = serialize($copia);
$tmp = urlencode($tmp);

return $tmp;
}
$copia=array_envia($copia);

[<a href="listex.php?copias=<?php echo $copia;?>" class="tlineg">Confirmar Envío</a>]

//Copia es un arreglo donde almaceno los nombres de los archivos que voy a subir y la razón por la que quiero pasar el array es para verificar que los archivos que envio se hayan almacenado correctamente en el directorio que corresponde, para mostrarselo al usuario y que compruebe que todo salio bien.
Ahora en listex.php, tengo lo siguiente:

listex.php:

function array_recibe($copialista) {
$tmp = stripslashes($copialista);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);

return $tmp;
}


$copialista=$_GET['copias'];

$copialista=array_recibe($copialista);

foreach ($copialista as $indice => $valor){
echo $indice." = ".$valor."<br>";
}

lo raro es que esta practicamente igual a lo que esta en las faq's, pero aparentemente no esta enviando ningun valor o no se que es lo que pasa, al cambiar de script lo que me aparece en la url es lo siguiente:

http://172.16.1.15/notas/listex.php?copias=

entonces es como si no pasara nada, y ademas me muestra en la pantalla el siguiente mensaje:

Warning: Invalid argument supplied for foreach() in /var/www/html/notas/listex.php on line 35


Podrian ayudarme??, y perdon por la intensidad, pero estoy aprendiendo
  #2 (permalink)  
Antiguo 10/04/2005, 00:27
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
Creo que te quivocaste de FAQ... el enlace envia a una más arribita de la que haces referencia ... pero bueno.. leí esto:
Cita:
Iniciado por KarenFerreira
//Copia es un arreglo donde almaceno los nombres de los archivos que voy a subir
y me preguntaba si... lo que quieeres hacer no es esto: http://www.forosdelweb.com/showthrea...636#post296636 ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 11/04/2005, 08:41
Avatar de KarenFerreira  
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 87
Antigüedad: 19 años
Puntos: 2
Pues la verdad eso no es lo que quiero hacer, lo que quiero es pasar los nombres de los archivos que ya subi, o sea, los que estan en copia a otro script para realizar una confirmacion desde el directorio en el que los almaceno, pero no veo como puedo pasar el arreglo completo. Además no se si esto solo me sucede a mi pero me estoy dando cuenta de que las variables que paso por url no se transportan de un script a otro a menos de que las muestre en pantalla, que hago???
  #4 (permalink)  
Antiguo 11/04/2005, 09:49
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Cita:
$copia=array_envia($copia);
Esa $copia ¿existe?, ¿es un array?

Ademas estuve revisando esa funcion que recibe el array y parece que tiene un buggggg... si se recive por GET. Claro que dudo que tenga relacion especifica con tu caso.

Ahora investigo un poquito y vemos....
  #5 (permalink)  
Antiguo 11/04/2005, 10:00
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Esto es un comentario de
http://ar2.php.net/manual/en/function.urldecode.php
Cita:
Matt Johnson
25-Dec-2004 09:49
A reminder: if you are considering using urldecode() on a $_GET variable, DON'T!

Evil PHP:

<?php
# BAD CODE! DO NOT USE!
$term = urldecode($_GET['sterm']);
?>

Good PHP:

<?php
$term = $_GET['sterm'];
?>

The webserver will arrange for $_GET to have been urldecoded once already by the time it reaches you!

Using urldecode() on $_GET can lead to extreme badness, PARTICULARLY when you are assuming "magic quotes" on GET is protecting you against quoting.

Hint: script.php?sterm=%2527 [...]

PHP "receives" this as %27, which your urldecode() will convert to "'" (the singlequote). This may be CATASTROPHIC when injecting into SQL or some PHP functions relying on escaped quotes -- magic quotes rightly cannot detect this and will not protect you!

This "common error" is one of the underlying causes of the Santy.A worm which affects phpBB < 2.0.11.
Tambien, pero en esto no estoy tan seguro, algo parecido pasa con stripslashes(), porque por lo general, ese trabajo se hace atomaticamente por PHP (depende de la config. del php.ini).

La funcion, deberia quedear algo asi...
Código PHP:
function array_recibe($copialista) { 
if (!
get_magic_quotes_gpc()) {
   
$tmp stripslashes($copialista); 
}
$tmp unserialize($tmp); 
return 
$tmp

Que opinan ustedes...

Saludos

Última edición por fran86; 11/04/2005 a las 10:02
  #6 (permalink)  
Antiguo 11/04/2005, 14:41
Avatar de KarenFerreira  
Fecha de Ingreso: abril-2005
Ubicación: Bucaramanga, Colombia
Mensajes: 87
Antigüedad: 19 años
Puntos: 2
hola otra vez, queria dar las gracias por la ayuda que me dieron, problema resuelto
  #7 (permalink)  
Antiguo 12/04/2005, 10:19
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Y como lo resolviste?
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 17:14.