Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2010, 18:41
Nepol
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Eval en una condicional (en IF)

Ok, explicare mi problema lo mejor posible:

Quiero hacer un IF, en donde la condicional se genere automáticamente con los elementos de un array, siendo los elementos de un array los nombres de las variables POST a verificar con ISSET si fueron completadas. Es confuso, mejor vean el código y lo que quiero que resulte:

Código:
<?
// Las variables que checara que existan dentro de un array, ej. 
$campos = array("nombre","mail","telefono","empresa","mensaje");

$condition = "if("; //Comienzo el IF "if(...."

for($i=0;$i<sizeof($campos);$i++){

        //Comienzo a escribir la condicional, ej "isset($_POST['nombre'])"
	$condition .= "isset(";
	$condition .= "$";
	$condition .= "_POST['".$campos[$i]."'])";

        //Se agrega && para continuar la condicional
	if($i!=(sizeof($campos)-1)) 
		$condition .= " && ";
}

$condition .= "){"; //Se cierrael IF "..){"

eval($condition); //Escrible el IF con su condicional
	echo "Formulario enviado con éxito";
eval("}"); //Cierra la llave del IF escrito con EVAL

?>
Supuestamente (o según yo mas bien), deberia resultar esto escrito con el EVAL:

Código:
if(isset($_POST['nombre']) && isset($_POST['mail']) && isset($_POST['telefono']) && isset($_POST['empresa']) && isset($_POST['mensaje'])){
Sin embargo me da el siguiente error:

Código:
Parse error: syntax error, unexpected $end in /home/espacio/public_html/test.php(21) : eval()'d code on line 1
Ya me harté, asi que recurro a los sabios de ForosDelWeb

Les dejo un form.html para que puedan probar el POST con ese mismo código y no se molesten en hacerlo:

Código:
<html>
<head>
<title>Form</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="test.php">
  <input name="nombre" type="text" id="nombre" value="Elias Equis" />
  <input name="empresa" type="text" id="empresa" value="Indeep" />
  <input name="mail" type="text" id="mail" value="[email protected]" />
  <input name="mensaje" type="text" id="mensaje" value="Mi mensaje es lala " />
  <input name="telefono" type="text" id="telefono" value="55 98 76 4112" />
  <input type="submit" name="button" id="button" value="Submit" />
</form>
</body>
</html>
¿Porqué quiero q haga eso automáticamente?, aunque es irrelevante, contestare que estoy haciendo un script que genere automáticamente formularios para usuarios y además los valide.

Muchísimas gracias de antemano.