Foros del Web » Programando para Internet » PHP »

pasar un arreglo de una pagina php a otra

Estas en el tema de pasar un arreglo de una pagina php a otra en el foro de PHP en Foros del Web. hola: Espero y alguien me pueda ayudar, resulta que tengo una pagina dos paginas y quiero pasar los datos que meto en ellas a una ...
  #1 (permalink)  
Antiguo 02/05/2009, 11:58
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Pregunta pasar un arreglo de una pagina php a otra

hola:
Espero y alguien me pueda ayudar, resulta que tengo una pagina dos paginas y quiero pasar los datos que meto en ellas a una tercera para que desde ahi se guarden en la base de datos pero el problema es que los datos en las dos paginas anteriores los manejo como arrelos y al pasar los valores por hidden a la tercera pagina no se como hacer para que me respete el arreglo, por que solo me imprimi la palabra Array.

Cualquier sujerencia será muy bien recibida.
y de antemano gracias.
  #2 (permalink)  
Antiguo 02/05/2009, 12:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar un arreglo de una pagina php a otra

lo que sucede es que array() es un tipo primitivo de PHP, por lo tanto no puedes pasarlo por formulario así nada mas!

lo mejor es usar variables de sesión...

http://php.net/session
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/05/2009, 12:26
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

mmm no se si me podrias dar algun ejemplo de lo que me dices ya que no se como pasaria el arreglo por sesion y luego lo inserto a la base de datos.
  #4 (permalink)  
Antiguo 02/05/2009, 12:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: pasar un arreglo de una pagina php a otra

O tambien puedes serializar el array y enviarlo por URL. Pero, con sessiones se ve mas limpio:

Pagina1.php
Código PHP:
<?php
session_start
();
$array = array(546487);
$_SESSION['array'] = $array;
?>
pagina2.php
Código PHP:
<?php
session_start
();
var_dump($_SESSION['array']);
?>
  #5 (permalink)  
Antiguo 02/05/2009, 15:08
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

hola bueno el arreglo que tengo es el siguiente:

Cita:
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><label>
<input name="sexo[]" type="text" size="52" />
</label></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
como podria manejarlo mediante sesiones ?? se que talvez es muy sencillo pero apenas estoy aprendiendo gracias.
  #6 (permalink)  
Antiguo 04/05/2009, 17:03
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

hola
he intentado serializarlo de esta forma pero no me funciona cuando intento imprimirlo no me aparece nada que tengo mal por favor..

Cita:
<?php
function array_envia($array) {

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

return $tmp;
}

$array=array('$nombres','$apellidos','$sexo', '$telefono' );
$array=array_envia($array);
?>
y para recibirlo lo pongo asi...

Cita:
<?
function array_recibe($url_array) {
$tmp = stripslashes($url_array);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);

return $tmp;
}
$array=$_POST['array'];


$array=array_recibe($array);

foreach ($array as $indice => $valor){
echo $indice." = ".$valor."<br>";
}
?>
  #7 (permalink)  
Antiguo 04/05/2009, 17:31
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

bueno ahora lo volvi a revisar y me marco el siguiente error

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\doc\acc.php on line 54

y la linea 54 es

foreach ($array as $indice => $valor){

Ayuda por favor!!!!!!!
  #8 (permalink)  
Antiguo 04/05/2009, 18:25
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: pasar un arreglo de una pagina php a otra

Y porque no utlizas variables de session como dice Ronruby
  #9 (permalink)  
Antiguo 04/05/2009, 19:57
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

mmm por que esas si no tengo idea de como se manejen, me podrias explicar por favor
  #10 (permalink)  
Antiguo 04/05/2009, 20:35
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: pasar un arreglo de una pagina php a otra

Pagina1.php
Código PHP:
session_start();
$array = array(546487);
$_SESSION['valores'] = $array;


//En la pagina1.php inicializamos las sessiones de usuario
// declaramos el array que tendra los valores
//por ultimo a la session llamada (  valores   ) le asigamos el valor de $array
//ahora la variable de session (  valores   ) contiene el contenido de $array 
Pagina2.php

Código PHP:
session_start();
$mi_array=$_SESSION['valores'];
echo 
$mi_array[0];

//en la pagina2.php inicializamos de nuevo las session de usuario muy importante para  no perder
//el valor de  (  valores   ) de la pagina1.php
//despues le asigamos a $mi_array los que tenga (  valores   )
// por ultimo mostramos lo que tenga $mi_array  en la posicion que indiques

//Para poder entender este script primero debes estudiar sessiones de usuario =)
:si
  #11 (permalink)  
Antiguo 04/05/2009, 20:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: pasar un arreglo de una pagina php a otra

Código PHP:
<? 
function array_recibe($url_array) { 
$tmp stripslashes($url_array); 
$tmp urldecode($tmp); 
$tmp unserialize($tmp); 

return 
$tmp

$array=$_POST['array']; 


$array=array_recibe($array); 

foreach (
$array as $indice => $valor){ 
echo 
$indice." = ".$valor."<br>"

?>
Talvez elproblema con tu codigo es que tratas de recoger los datos provenientes de la URL usando $_POST, cuando los datos pasados por URL se acceden mediante $_GET.

Entonces, seria:
$array=$_GET['array'];
  #12 (permalink)  
Antiguo 04/05/2009, 21:05
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

mmmm no creo que ese sea el problema por que ya cambie a $_GET['array']; y aun asi me sigue mandando el mismo error.
  #13 (permalink)  
Antiguo 04/05/2009, 21:25
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: pasar un arreglo de una pagina php a otra

Y donde estas generando la URL que contiene el valor del array? es decir

<a href="index.php?array=mi_variable_del_array">pulsa para mandar</a>

ahora si recogemos en index.php

$array=$_GET['array'];

Salu2
  #14 (permalink)  
Antiguo 04/05/2009, 22:20
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

mmm bueno lo habia puesto $_POST por que lo estoy pasando por un boton :

de esta forma lo estoy pasando, pero me marca el error que les puse hace un rato

Cita:
<form action="recibir_array.php" method="POST">
<input name="array" type="hidden" value="$array">
<input name="enviar" type="submit" value=" Enviar ">
</form>
  #15 (permalink)  
Antiguo 04/05/2009, 22:22
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: pasar un arreglo de una pagina php a otra

A ver colocame tu codigo yo lo pruebo en mi maquina =)
  #16 (permalink)  
Antiguo 04/05/2009, 22:43
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: pasar un arreglo de una pagina php a otra

bueno este es el primer formulario

Cita:
<?
session_start(); // incio de uso de sesiones.

mysql_connect('localhost','root','')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('doc')or die ('Error al seleccionar la Base de Datos: '.mysql_error());


$anio = $_SESSION['anio'];
$area=$_SESSION['area'];

?>

<tr>
<td><input name="nombres[]" type="text" size="52" /> </td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="nombres[]" type="text" size="52" /></td>
<td><input name="apellidos[]" type="text" size="52" /></td>
</tr>

</table>
</div>
<tr>
<td><label>
<input name="sexo[]" type="text" size="52" />
</label></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>
<tr>
<td><input name="sexo[]" type="text" size="52" /></td>
<td><input name="telefono[]" type="text" size="52" /></td>
</tr>

</table>

<?php
function array_envia($array) {

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

return $tmp;
}

$array=array('$nombres','$apellidos','$sexo','$tel efono');
$array=array_envia($array);
?>

<form action="recibir_array.php" method="POST">
<input name="array" type="hidden" value="$array">
<input name="enviar" type="submit" value=" Enviar ">
</form>
</div>
<p align="center">
<input type="submit" name="Submit" value="SIGUIENTE" />
</p>
<p>
<label></label>
</p>
</form>


</body>
</html>
y parte del segundo formulario es:

Cita:
<?php
session_start();

mysql_connect('localhost','root','')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
mysql_select_db('doc')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

$login=$_SESSION['nombre'];
$anio = $_SESSION['anio'];


error_reporting(E_ALL);


?>
<?
function array_recibe($url_array) {
$tmp = stripslashes($url_array);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);

return $tmp;
}
$array=$_POST['array'];


$array=array_recibe($array);

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

?>
y digo parte por que me falta la parte que llenaria este formulario (que tambien debe ser por medio de arreglo) para pasar a un tercerpo y que este guarde lo del primer formulario y el segundo..
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 07:24.