Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/07/2009, 14:02
waty90
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 5 meses
Puntos: 1
De acuerdo Respuesta: ¿que hago mal con mi sentencia? (if, else)

Cita:
Iniciado por icarocu Ver Mensaje
mira... hice lo que me dijiste.. pero ahora aunque deje vacios los campos solo me arroja que me falta el ultimo ...

alguien sabe como hacer para que si no me llena TODOS los campos de mi form.. no me permita continuar ?!?!?

Código PHP:
<?php
if ($_POST['nom_contrato']==''
{
echo 
"Falta ingresar el <strong><font color='#FFFF00'>Nombre Resúmen del Contrato / Licitación</font></strong> <br>";

else if (
$_POST['nom_tecnico']==''
{
echo 
"Falta ingresar el <strong><font color='#FFFF00'>Nombre Técnico del Contrato / Licitación</font></strong> <br>";
}
else if (
$_POST['meses_duracion']==''
{
echo 
"Falta ingresar la <strong><font color='#FFFF00'>Duracion del Contrato (meses)</font></strong> <br> ";

else if (
$_POST['resolucion_inicio']==''
{
echo 
"Falta ingresar la <strong><font color='#FFFF00'>Resolución que da Origen al Contrato</font></strong> <br> ";

else if (
$_POST['fecha_res_ini']==''
{
echo 
"Falta seleccionar la <strong><font color='#FFFF00'>fecha de la Resolución</font></strong> <br> ";

else if (
$_POST['ubicacion']==''
{
echo 
"Falta ingresar la <strong><font color='#FFFF00'>Ubicación / Localidad del Contrato</font></strong> <br> ";

else if (
$_POST['region']==''
{
echo 
"Falta seleccionar la <strong><font color='#FFFF00'>Región del Contrato</font></strong> <br> ";

else if (
$_POST['fecha_cont_ini']==''
{
echo 
"Falta seleccionar la <strong><font color='#FFFF00'>fecha de inicio del Contrato</font></strong> <br> ";
?>
          <script language="JavaScript" type="text/javascript"> 
        setTimeout("url()",3000); 
        function url() 
        { 
        window.history.back(); 
        } 
        </script>
<?php 

else
{

echo 
"Felicidades " $_SESSION["s_username"] . ", Has ingresado un nuevo Contrato exitosamente!!!";
?> 
    <script language="javascript"> 
        setTimeout("url()",2000); 
        function url() 
        { 
        window.location="../administracion.php";
        } 
    </script>          
<?php 
}
?>

hola, te explico como lo hago yo en mi sistema de usuarios por si te sirve de algo .

los errores se imprimen en el form para añadir los datos en este ejemplo en añadir.php


archivo: añadir.php

Código PHP:
<?php             
//iniciamos la sesion
    
@session_start();

//imprimimos los errores guardados en la sesion: ERRORES

    
if( isset($_SESSION['ERRORES']) && is_array($_SESSION['ERRORES']) && count($_SESSION['ERRORES']) >) {
        echo 
'<ul class="error-resultado">';
        foreach(
$_SESSION['ERRORES'] as $msg) {
            echo 
'<li>',$msg,'</li>'
        }
        echo 
'</ul>';
        unset(
$_SESSION['ERRORES']);
    }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</div><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>añadir nuevo trabajador</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>


 <div id="form-nuevo-contrato">

//aqui iria tu formulario.

</div>
</body>
</html>

procesa.php el archivo que comprueba los campos y si hay algun error lo imprime en añadir.php

Código PHP:
<?php
session_start
();

//iniciamos sesion

//creamos un array con los errores
    
$errores_array = array();
    
    
//hacemos un flag para la validacion
    
$errorflag false;
    
//aqui por ejemplo.... la conexion a la base de datos 



//aqui te dejo una funcion si quieres puedes quitarla limpia las variables POST 

//Function to sanitize values received from the form. Prevents SQL injection
    
function clean($str) {
        
$str = @trim($str);
        if(
get_magic_quotes_gpc()) {
            
$str stripslashes($str);
        }
        return 
mysql_real_escape_string($str);
    }
    
    
//Sanear las variables pasadas por POST
    
                
$nombre clean($_POST['nombre']);
    
$apellidos clean($_POST['apellidos']);
    
$fecha clean($_POST['fecha']);
    
// y todos los campos que tengas.    etc....
    

//ahora el input para validar el error


if($nombre== '') {
        
$errores_array[] = 'introduzca su nombre';
        
$errorflag true;
    }
    if(
$apellidos== '') {
        
$errores_array[] = 'introduzca su apellido';
        
$errorflag true;
    }
    if(
$fecha== '') {
        
$errores_array[] = 'introduzca una fecha';
        
$errorflag true;
    }
    


//comprueba y redirreciona a si no estan rellenados los campos.
    
if($errorflag) {
        
$_SESSION['ERRORES'] = $errores_array;
        
session_write_close();
        
header("location: añadir.php");
        exit();
    }

// aqui iria la sentencia sql para insertar los datos.

espero que lo hayas entendido y te sirva de ayuda..

saludos

Última edición por waty90; 14/07/2009 a las 14:07