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($ch, CURLOPT_MUTE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $sFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$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 :)