Foros del Web » Programando para Internet » PHP »

¿que hago mal con mi sentencia? (if, else)

Estas en el tema de ¿que hago mal con mi sentencia? (if, else) en el foro de PHP en Foros del Web. hola a todos. tengo un form con varios campos y lo que quiero hacer es que si no estan llenos los campos (que sea obligatorio ...
  #1 (permalink)  
Antiguo 14/07/2009, 12:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta ¿que hago mal con mi sentencia? (if, else)

hola a todos. tengo un form con varios campos y lo que quiero hacer es que si no estan llenos los campos (que sea obligatorio llenarlos) me avise a través del php.. y si estan llenos, me diga que esta ok....

para esto, hice un php que coloco mas adelante.. me da los mensajes, pero si lleno solamente el ultimo dato (fecha_cont_ini).. me dice que esta todo ok al final.. que hago mal

espero me ayuden.. gracias

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>";

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

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

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

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

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

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 
}
?>
  #2 (permalink)  
Antiguo 14/07/2009, 12:59
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: ¿que hago mal con mi sentencia? (if, else)

a partir del segundo if coloquele antes un else

else if (Condicion)
{
Mensaje
exit o break para que pare el proceso.
}

a los post encierrelos en trim() para que quite los espacios de la variable que ese puede ser el problema
  #3 (permalink)  
Antiguo 14/07/2009, 13:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Respuesta: ¿que hago mal con mi sentencia? (if, else)

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 
}
?>
  #4 (permalink)  
Antiguo 14/07/2009, 13:48
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: ¿que hago mal con mi sentencia? (if, else)

no les puso trim por eso n ose los esta validando seguro le estan lelgand espacios en las variables por eso el if resulta falso intente con el trim y vera que estoy casi seguro que es eso
  #5 (permalink)  
Antiguo 14/07/2009, 14:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 4 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
  #6 (permalink)  
Antiguo 14/07/2009, 14:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 4 meses
Puntos: 0
De acuerdo Respuesta: ¿que hago mal con mi sentencia? (if, else)

nunca me fuincionó helacer.. pero muchismas gracias por tu tiempo...
y gracias a ti tb waty90 !!
al final lo solucioné así.... al que le sirva

Código PHP:
<?php
if ($_POST['nom_contrato']=='' or $_POST['nom_tecnico']=='' or $_POST['meses_duracion']=='' or $_POST['resolucion_inicio']=='' or $_POST['fecha_res_ini']=='' or $_POST['ubicacion']=='' or $_POST['region']=='' or $_POST['fecha_cont_ini']==''
{
echo 
$_SESSION["s_username"] . "<strong><font color='#FFFF00'>, Debes ingresar todos los campos</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 
}
?>

Última edición por icarocu; 14/07/2009 a las 14:27
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:06.