Comunidad de diseño web y desarrollo en internet online

Problema con $_POST y clases en PHP5

Citar            
MensajeEscrito el 01 Ago 2007 05:25 pm
Hola a todos

En PHP 5 tengo 2 archivos, uno con una clase que genera un formulario de envio, formulario.php y un archivo que procesa el submit, formulario_submit.php que guarda la información en una base de datos.

El problema que tengo es con la comprobación de las variables que llegan por $_POST en formulario_submit.php, es decir, no funciona !$_POST['titulo'] o empty($_POST['titulo'].

En el archivo formulario_submit.php tengo algo como esto:

Código :

$modulo = $_POST['modulo'];
$nombre = $_POST['nombre'];
$titulo = $_POST['titulo'];
$orden = $_POST['orden'];

if ( !($_POST['titulo']))
{
 echo 'Falta el Titulo';
 exit;
}
else
{

if (isset($_POST['modulo']) && trim($_POST['modulo'])!='')
{   // Actualización
  $modulo = $_POST['modulo'];

  $sql = "update novedades
    set nombre = '$nombre',
        titulo = '$titulo',
         orden = $orden,
  where modulo = $modulo";
}
else {  // Nueva
  $sql = "insert into novedades
            (modulo, nombre, titulo, orden)
          values
            (NULL, '$nombre', '$titulo', $orden)";
}

$result = mysql_query($sql, $conn);

if (!$result) {
  print 'Hubo un error en la Base de Datos.';
  print mysql_error();
  exit;
}

Invariablemente, aunque este puesto $_POST['titulo'], sale el cartel "Falta el Titulo", aunque inserta correctamente los datos en la base de datos. Si remuevo la comprobación if ( !($_POST['titulo'])), me sale el cartel "Hubo un error en la Base de Datos." aunque nuevamente inserta todo bien en la Base de datos.

Si hago un print_r($_POST) me da:
Array ( [modulo] => 3 [nombre] => Nombre [titulo] => Titulo [orden] => 1 )

Lo unico que pude descubrir hasta ahora es que el problema parece estar en las variables $_POST que vienen de la clase de PHP5, porque si saco la clase todo el codigo funciona correctamente.

Espero que me puedn ayudar, gracias de antemano.

Por guille2

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ago 2007 06:30 pm
Por el detalle que das me suena a que estas entrando dos veces a la clase, una con variables post y otra sin estas.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 01 Ago 2007 07:04 pm
No se como puedo entra 2 veces a la clase, ya que son 2 archivos: uno con una clase que genera un formulario de envio, formulario.php y un archivo aparte que procesa el submit, formulario_submit.php
La clase solo esta en formulario.php
Una vez que se procesa el formulario con formulario_submit.php (otro archivo, no es una clase) no vuelve a formulario.php

Por guille2

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ago 2007 07:05 pm
Podrías mostrarnos las clases? Puede ser un problema de parametros o cualquier cosa.

Por zickedhelik

93 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Ago 2007 09:23 pm
No está terminada, pero por ahora tengo:

Código :

class Formulario
{

public function Set_modulo($nuevo_modulo)
  {
    $this->modulo = $nuevo_modulo;
  }
 
  
static $titulo;


public function DisplayEncabezado() 
{

?>
<form action="modulos/boton_submit.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="modulo" value="">
<div align="center">
<table width="95%" border="0" cellspacing="0" cellpadding="5">
<tr>
  <td align="center" ><strong>Nombre:</strong><br /><td>
</tr>
<tr>
  <td align="center" ><input size="60" name="nombre" value="" class="required"><br /><br /></td>
</tr>
<?php
}

public function DisplayTitulo()
{
?>
<tr>
  <td align="center" ><strong>Título:</strong><br /><td>
</tr>
<tr>
  <td align="center" ><input size="60" name="titulo" value=""><br /><br /></td>
</tr>
<?php
}


public function DisplayOrden()
{
?>
<tr>
  <td align="center" ><br />Orden (*)</td>
</tr>
<tr>
  <td><input size="2" name="orden" value="" class="required"><br /><br /></td>
</tr>
<?php
}

public function DisplayCamposReq()
{
?>
<tr><td align="center">
     <br />(*) Campos obligatorios requeridos.<br /><br />
  </td>
</tr>
<tr>
  <td colspan="3">&nbsp;</td>
</tr>
<?php
}

public function DisplaySubmit()
{
?>
<tr>
  <td>&nbsp;</td>
</tr>
<tr>
  <td align="center"><input type="submit" value="Enviar"><br /><br /><br /></td>
</tr>

</table>
</div>
</form>
<?php
} // Fin  DisplaySubmit

}  // Fin clase
?>

Por guille2

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.