Hola, deja ver si te entiendo :)
Situación 1:
I Acto:
Un formulario pide un código.
II Acto:
Se ingresa un código que si existe y se presiona enviar.
III Acto:
Aparece otro formulario y al costado se ve el mismo código que se puso en el II Acto.
fin.
Situación 2:
I Acto:
Un formulario pide un código.
II Acto:
Se ingresa un código que no existe y se presiona enviar.
III Acto:
Se visualiza el mismo formulario.
fin.
En el fondo lo que deseas es hacer un control de acceso cierto? es decir, que sólo quienes sepan el código tengan acceso al siguiente formulario.
Sobre pasar ese código a una clase podrías hacer lo siguiente:
Control.php
===========
Código PHP:
Ver originalclass ModeloControl {
public function existe($codigo) {
// Conectar a la base de datos
// Hacer la consulta
$resultado = mysql_query("SELECT codigo FROM tabla WHERE codigo='$codigo'");
// Retornar true si es que existe el código (una o más veces).
}
}
Luego tu formulario que sólo recoge el código:
vistaFormularioControl.tpl.php
================
Código HTML:
Ver original<form name="fvalida" method="post" action="controlador.php" > <input type="text" id="codigo" name="codigo"> <input class="btnchk" type="submit" name="submit" value="Check">
Y el otro formulario que quieres que le aparezca sólo a quienes saben el código.
vistaFormularioSeguro.tpl.php
=======================
Código HTML:
Ver original<!--Algun formulario -->
<form name="fvalida" method="post" action="algun_script.php" > <input type="text" id="nom" name="nom"> <input type="text" id="edad" name="edad"> <input class="btnchk" type="submit" name="submit" value="Cambiar"> <h2>Felicidades! tu código era
</h2> <p><?php echo $codigo ?></p>
Y finalmente el controlador que dirá que formulario mostrar.
controlador.php
=========
Código PHP:
Ver originalinlude 'ModeloControl.php';
// instancear la clase
$control = new ModeloControl();
// Recoger el código.
$codigo = $_POST['codigo'];
// En el caso de que exista, mostrar el formulario seguro, caso contrario
// mostrar el mismo formulario.
if($control->existe()) {
include 'vistaFormularioSeguro.tpl.php';
} else {
include 'vistaFormularioControl.tpl.php';
}
No tengo idea de cómo funciona Smarty :) pero quizás te ayude a ordenar un poco lo que necesitas.
La clase que te puse tiene varias falencias, por ejemplo, es insegura a ataques de inyección SQL. Podrías solucionar eso poniendo un is_int($codigo) antes de hacer la consulta, en el caso de que el código tenga letras necesitarás conectarte por MySqli o PDO.
Otra cosa a mejorar es el rendimiento, no tiene sentido abrir una conexión a la base de datos para saber sólo si un dato existe o no.
Bueno, cualquier cosa sólo pregunta, saludos :)