Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO Objeto o array por post

Estas en el tema de Objeto o array por post en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola ¿Se puede enviar un objeto por post en un formulario? He investigado por ahi y se supone que si se puede con el serialize. ...
  #1 (permalink)  
Antiguo 12/11/2013, 12:51
 
Fecha de Ingreso: marzo-2013
Mensajes: 22
Antigüedad: 11 años, 1 mes
Puntos: 0
Objeto o array por post

Hola
¿Se puede enviar un objeto por post en un formulario?
He investigado por ahi y se supone que si se puede con el serialize.
He intentado esto
php1.php
Código PHP:
<?php
include 'viaj.php';
...
$viaje=new viaj($a,$b);
?>
<form action="php2.php">
<input type="radio" name="SelIda" value='<?php echo serialize($viaje); ?>'>
<input type="submit" value="Siguiente">
</form>
php2.php
Código PHP:
$ViajeObj=unserialize($_REQUEST['SelIda']); 
La clase no tiene nada raro, solo unos getter y unos setter.
Cuando lo ejecuto me da el siguiente error
Código:
Notice: unserialize(): Error at offset 48 of 515 bytes in ...
Lo he probado con un array y me sale lo mismo. ¿habria alguna manera de poder hacerlo o no se puede?
Gracias
  #2 (permalink)  
Antiguo 12/11/2013, 13:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Objeto o array por post

Realiza un var_dump($_REQUEST['SelIda']); y ve el output, si unserialize te esta dando el error es porque hay basura en tu variable...
  #3 (permalink)  
Antiguo 13/11/2013, 10:24
 
Fecha de Ingreso: marzo-2013
Mensajes: 22
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Objeto o array por post

Me aparece
Código:
string(516) "O:10:"DatosViaje":10:{s:20:"�DatosViaje�cod_ruta";s:14:"ALB_MAD_SUPRA+";s:20:"�DatosViaje�tipo_bus";s:6:"SUPRA+";s:20:"�DatosViaje�duracion";s:8:"02:45:00";s:21:"�DatosViaje�precioIDa";s:5:"32.27";s:28:"�DatosViaje�precio_idaVuelta";s:5:"61.31";s:22:"�DatosViaje�itinerario";N;s:23:"�DatosViaje�cod_horario";s:27:"ALB_MAD_SUPRA+_ LUNES_18:20";s:22:"�DatosViaje�horaSalida";s:8:"18:20:00";s:17:"�DatosViaje�fecha";s:10:"2014-01-06";s:21:"�DatosViaje�matricula";s:8:"5600-ZDR";}"
La clase es esta
Código PHP:
class DatosViaje {
    private 
$cod_ruta;
    private 
$tipo_bus;
    private 
$duracion;
    private 
$precioIDa;
    private 
$precio_idaVuelta;
    private 
$itinerario;
    private 
$cod_horario;
    private 
$horaSalida;
    private 
$fecha;
    private 
$matricula;

    function 
__construct($cod_ruta$tipo_bus$duracion$precioIDa$precio_idaVuelta$itinerario$cod_horario$horaSalida$fecha$matricula) {
        
$this->cod_ruta $cod_ruta;
        
$this->tipo_bus $tipo_bus;
        
$this->duracion $duracion;
        
$this->precioIDa $precioIDa;
        
$this->precio_idaVuelta $precio_idaVuelta;
        
$this->itinerario $itinerario;
        
$this->cod_horario $cod_horario;
        
$this->horaSalida $horaSalida;
        
$this->fecha $fecha;
        
$this->matricula $matricula;
    }
    public function 
getCod_ruta() {
        return 
$this->cod_ruta;
    }
    public function 
getTipo_bus() {
        return 
$this->tipo_bus;
    }
    public function 
getDuracion() {
        return 
$this->duracion;
    }
    public function 
getPrecioIDa() {
        return 
$this->precioIDa;
    }
    public function 
getPrecio_idaVuelta() {
        return 
$this->precio_idaVuelta;
    }
    public function 
getItinerario() {
        return 
$this->itinerario;
    }
    public function 
getCod_horario() {
        return 
$this->cod_horario;
    }
    public function 
getHoraSalida() {
        return 
$this->horaSalida;
    }
    public function 
getFecha() {
        return 
$this->fecha;
    }
    public function 
getMatricula() {
        return 
$this->matricula;
    }

Estoy un poco perdido, es la primera vez que lo utilizo
  #4 (permalink)  
Antiguo 13/11/2013, 11:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Objeto o array por post

Parece que tienes un problema de codificación, asegúrate que estés usando el mismo set de caracteres en tu pagina HTML como en PHP para evitar eso.

Puedes usar iso o utf8, la decisión es tuya, solo asegúrate que ambos tanto el html como el PHP tengan el mismo charset.

Saludos.
  #5 (permalink)  
Antiguo 14/11/2013, 10:36
 
Fecha de Ingreso: marzo-2013
Mensajes: 22
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Objeto o array por post

¿Y como hago eso?
He probado poniendo en todas las paginas
Código PHP:
header('Content-Type: text/html; charset=UTF-8'); 
al ver que no funcionaba he puesto
Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
pero me sigue sin funcionar, se supone que estan todas en UTF-8
  #6 (permalink)  
Antiguo 19/11/2013, 17:39
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Respuesta: Objeto o array por post

Una idea.. si aplicas htmlentities() cuando mostras el objeto serializado:
Código PHP:
Ver original
  1. <?php echo htmlentities(serialize($viaje)); ?>
Saludos

Etiquetas: form, objeto, php, post
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 20:49.