Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/12/2011, 10:09
Avatar de WingzemonX
WingzemonX
 
Fecha de Ingreso: noviembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Repostear a la página de origen con PHP

Bueno, no sé que tan "Bueno" sea la manera en que lo hice, pero funcionó para lo que queria hacer. Al final hice el post por CURL. Por si alguien quiere saber como, básicamente hice lo siguiente:

Pagina1.php
Ésta postea normalmente, lo único que agregue fue, como dijo truman_truman, un if en los campos para que mostrara el valor en post si había (ya más adelante lo usaré pues se reposteará a ésta).
Código PHP:
<input type="text" name="textfield id="textfield" class="styled" <?php if(isset($_POST["textfield"])){ echo "value=\"".$_POST["textfield"]."\""; } ?>  />
Pagina2.php
Aqui puse al mero inicio de la página toda la validación de cada campo y demás, he hice el "post" a pagina1.php por CURL:
Código PHP:
<?php
$bOk 
true;
//Toda la validación, si hay algo mal $bOk = false;

if($bOk)
{
?>
       <!---PAGINA2.PHP---->
<?php
}
else
{
       
$sFields "";
        foreach(
$_POST as $sKey=>$sValue)
        {
           
$sFields .= $sKey."=".$sValue."&"
        }
        
        
$ch curl_init("http://sitio.dominio/pagina1.php");
        
curl_setopt($chCURLOPT_MUTE1);
        
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_POSTFIELDS$sFields);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
        
$htmlResult curl_exec($ch);
        
curl_close($ch);
        
        echo 
$htmlResult;
}
?>
Basicamente, si todo esta bien, pasa a mostrar la pagina2.php. Si algo esta mal, pasa a mostrar la pagina1.php, pero tecnicamente seguimos estando parados en pagina2.php, solo que te imprime el codigo HTML de pagina1.php, y en la barra de direccion dira pagina2.php, pero en esencia funcionó como quería :)